Commit f038ac8f authored by Ilpo Järvinen's avatar Ilpo Järvinen Committed by David S. Miller

[TCP]: cleanup tcp_parse_options deep indented switch

Removed case indentation level & combined some nested ifs, mostly
within 80 lines now. This is a leftover from indent patch, it
just had to be done manually to avoid messing it up completely.
Signed-off-by: default avatarIlpo Järvinen <ilpo.jarvinen@helsinki.fi>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent dbb1db8b
...@@ -3278,81 +3278,80 @@ void tcp_parse_options(struct sk_buff *skb, struct tcp_options_received *opt_rx, ...@@ -3278,81 +3278,80 @@ void tcp_parse_options(struct sk_buff *skb, struct tcp_options_received *opt_rx,
int opsize; int opsize;
switch (opcode) { switch (opcode) {
case TCPOPT_EOL: case TCPOPT_EOL:
return;
case TCPOPT_NOP: /* Ref: RFC 793 section 3.1 */
length--;
continue;
default:
opsize = *ptr++;
if (opsize < 2) /* "silly options" */
return; return;
case TCPOPT_NOP: /* Ref: RFC 793 section 3.1 */ if (opsize > length)
length--; return; /* don't parse partial options */
continue; switch (opcode) {
default: case TCPOPT_MSS:
opsize=*ptr++; if (opsize == TCPOLEN_MSS && th->syn && !estab) {
if (opsize < 2) /* "silly options" */ u16 in_mss = ntohs(get_unaligned((__be16 *)ptr));
return; if (in_mss) {
if (opsize > length) if (opt_rx->user_mss &&
return; /* don't parse partial options */ opt_rx->user_mss < in_mss)
switch (opcode) { in_mss = opt_rx->user_mss;
case TCPOPT_MSS: opt_rx->mss_clamp = in_mss;
if (opsize==TCPOLEN_MSS && th->syn && !estab) {
u16 in_mss = ntohs(get_unaligned((__be16 *)ptr));
if (in_mss) {
if (opt_rx->user_mss && opt_rx->user_mss < in_mss)
in_mss = opt_rx->user_mss;
opt_rx->mss_clamp = in_mss;
}
}
break;
case TCPOPT_WINDOW:
if (opsize==TCPOLEN_WINDOW && th->syn && !estab)
if (sysctl_tcp_window_scaling) {
__u8 snd_wscale = *(__u8 *) ptr;
opt_rx->wscale_ok = 1;
if (snd_wscale > 14) {
if (net_ratelimit())
printk(KERN_INFO "tcp_parse_options: Illegal window "
"scaling value %d >14 received.\n",
snd_wscale);
snd_wscale = 14;
}
opt_rx->snd_wscale = snd_wscale;
}
break;
case TCPOPT_TIMESTAMP:
if (opsize==TCPOLEN_TIMESTAMP) {
if ((estab && opt_rx->tstamp_ok) ||
(!estab && sysctl_tcp_timestamps)) {
opt_rx->saw_tstamp = 1;
opt_rx->rcv_tsval = ntohl(get_unaligned((__be32 *)ptr));
opt_rx->rcv_tsecr = ntohl(get_unaligned((__be32 *)(ptr+4)));
}
} }
break; }
case TCPOPT_SACK_PERM: break;
if (opsize==TCPOLEN_SACK_PERM && th->syn && !estab) { case TCPOPT_WINDOW:
if (sysctl_tcp_sack) { if (opsize == TCPOLEN_WINDOW && th->syn &&
opt_rx->sack_ok = 1; !estab && sysctl_tcp_window_scaling) {
tcp_sack_reset(opt_rx); __u8 snd_wscale = *(__u8 *)ptr;
} opt_rx->wscale_ok = 1;
if (snd_wscale > 14) {
if (net_ratelimit())
printk(KERN_INFO "tcp_parse_options: Illegal window "
"scaling value %d >14 received.\n",
snd_wscale);
snd_wscale = 14;
} }
break; opt_rx->snd_wscale = snd_wscale;
}
break;
case TCPOPT_TIMESTAMP:
if ((opsize == TCPOLEN_TIMESTAMP) &&
((estab && opt_rx->tstamp_ok) ||
(!estab && sysctl_tcp_timestamps))) {
opt_rx->saw_tstamp = 1;
opt_rx->rcv_tsval = ntohl(get_unaligned((__be32 *)ptr));
opt_rx->rcv_tsecr = ntohl(get_unaligned((__be32 *)(ptr+4)));
}
break;
case TCPOPT_SACK_PERM:
if (opsize == TCPOLEN_SACK_PERM && th->syn &&
!estab && sysctl_tcp_sack) {
opt_rx->sack_ok = 1;
tcp_sack_reset(opt_rx);
}
break;
case TCPOPT_SACK: case TCPOPT_SACK:
if ((opsize >= (TCPOLEN_SACK_BASE + TCPOLEN_SACK_PERBLOCK)) && if ((opsize >= (TCPOLEN_SACK_BASE + TCPOLEN_SACK_PERBLOCK)) &&
!((opsize - TCPOLEN_SACK_BASE) % TCPOLEN_SACK_PERBLOCK) && !((opsize - TCPOLEN_SACK_BASE) % TCPOLEN_SACK_PERBLOCK) &&
opt_rx->sack_ok) { opt_rx->sack_ok) {
TCP_SKB_CB(skb)->sacked = (ptr - 2) - (unsigned char *)th; TCP_SKB_CB(skb)->sacked = (ptr - 2) - (unsigned char *)th;
} }
break; break;
#ifdef CONFIG_TCP_MD5SIG #ifdef CONFIG_TCP_MD5SIG
case TCPOPT_MD5SIG: case TCPOPT_MD5SIG:
/* /*
* The MD5 Hash has already been * The MD5 Hash has already been
* checked (see tcp_v{4,6}_do_rcv()). * checked (see tcp_v{4,6}_do_rcv()).
*/ */
break; break;
#endif #endif
} }
ptr+=opsize-2; ptr += opsize-2;
length-=opsize; length -= opsize;
} }
} }
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment