mirror of
https://github.com/torvalds/linux.git
synced 2024-11-30 16:11:38 +00:00
Merge git://github.com/davem330/net
* git://github.com/davem330/net: tcp: fix validation of D-SACK tcp: fix build error if !CONFIG_SYN_COOKIES
This commit is contained in:
commit
1f0772fe27
@ -431,17 +431,34 @@ extern int tcp_disconnect(struct sock *sk, int flags);
|
|||||||
extern __u32 syncookie_secret[2][16-4+SHA_DIGEST_WORDS];
|
extern __u32 syncookie_secret[2][16-4+SHA_DIGEST_WORDS];
|
||||||
extern struct sock *cookie_v4_check(struct sock *sk, struct sk_buff *skb,
|
extern struct sock *cookie_v4_check(struct sock *sk, struct sk_buff *skb,
|
||||||
struct ip_options *opt);
|
struct ip_options *opt);
|
||||||
|
#ifdef CONFIG_SYN_COOKIES
|
||||||
extern __u32 cookie_v4_init_sequence(struct sock *sk, struct sk_buff *skb,
|
extern __u32 cookie_v4_init_sequence(struct sock *sk, struct sk_buff *skb,
|
||||||
__u16 *mss);
|
__u16 *mss);
|
||||||
|
#else
|
||||||
|
static inline __u32 cookie_v4_init_sequence(struct sock *sk,
|
||||||
|
struct sk_buff *skb,
|
||||||
|
__u16 *mss)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
extern __u32 cookie_init_timestamp(struct request_sock *req);
|
extern __u32 cookie_init_timestamp(struct request_sock *req);
|
||||||
extern bool cookie_check_timestamp(struct tcp_options_received *opt, bool *);
|
extern bool cookie_check_timestamp(struct tcp_options_received *opt, bool *);
|
||||||
|
|
||||||
/* From net/ipv6/syncookies.c */
|
/* From net/ipv6/syncookies.c */
|
||||||
extern struct sock *cookie_v6_check(struct sock *sk, struct sk_buff *skb);
|
extern struct sock *cookie_v6_check(struct sock *sk, struct sk_buff *skb);
|
||||||
|
#ifdef CONFIG_SYN_COOKIES
|
||||||
extern __u32 cookie_v6_init_sequence(struct sock *sk, struct sk_buff *skb,
|
extern __u32 cookie_v6_init_sequence(struct sock *sk, struct sk_buff *skb,
|
||||||
__u16 *mss);
|
__u16 *mss);
|
||||||
|
#else
|
||||||
|
static inline __u32 cookie_v6_init_sequence(struct sock *sk,
|
||||||
|
struct sk_buff *skb,
|
||||||
|
__u16 *mss)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
/* tcp_output.c */
|
/* tcp_output.c */
|
||||||
|
|
||||||
extern void __tcp_push_pending_frames(struct sock *sk, unsigned int cur_mss,
|
extern void __tcp_push_pending_frames(struct sock *sk, unsigned int cur_mss,
|
||||||
|
@ -1124,7 +1124,7 @@ static int tcp_is_sackblock_valid(struct tcp_sock *tp, int is_dsack,
|
|||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
/* ...Then it's D-SACK, and must reside below snd_una completely */
|
/* ...Then it's D-SACK, and must reside below snd_una completely */
|
||||||
if (!after(end_seq, tp->snd_una))
|
if (after(end_seq, tp->snd_una))
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
if (!before(start_seq, tp->undo_marker))
|
if (!before(start_seq, tp->undo_marker))
|
||||||
|
Loading…
Reference in New Issue
Block a user