diff options
| author | Bruce M Simpson <bms@FreeBSD.org> | 2004-02-11 04:26:04 +0000 |
|---|---|---|
| committer | Bruce M Simpson <bms@FreeBSD.org> | 2004-02-11 04:26:04 +0000 |
| commit | 1cfd4b5326854e594bfcd5f31dec0f2b52ccaa71 (patch) | |
| tree | 7a14054c69fb5681c86f54e9b66a9128c1e16003 /sys/netinet/tcp_input.c | |
| parent | 33febf93d6e69967393353136a9e3a0829e1bd10 (diff) | |
Notes
Diffstat (limited to 'sys/netinet/tcp_input.c')
| -rw-r--r-- | sys/netinet/tcp_input.c | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/sys/netinet/tcp_input.c b/sys/netinet/tcp_input.c index 2b7f99af7e8b..6562368832be 100644 --- a/sys/netinet/tcp_input.c +++ b/sys/netinet/tcp_input.c @@ -35,6 +35,7 @@ */ #include "opt_ipfw.h" /* for ipfw_fwd */ +#include "opt_inet.h" #include "opt_inet6.h" #include "opt_ipsec.h" #include "opt_mac.h" @@ -349,7 +350,8 @@ tcp_input(m, off0) register struct inpcb *inp = NULL; u_char *optp = NULL; int optlen = 0; - int len, tlen, off; + int len = 0; + int tlen, off; int drop_hdrlen; register struct tcpcb *tp = 0; register int thflags; @@ -2524,6 +2526,19 @@ tcp_dooptions(to, cp, cnt, is_syn) (char *)&to->to_ccecho, sizeof(to->to_ccecho)); to->to_ccecho = ntohl(to->to_ccecho); break; +#ifdef TCP_SIGNATURE + /* + * XXX In order to reply to a host which has set the + * TCP_SIGNATURE option in its initial SYN, we have to + * record the fact that the option was observed here + * for the syncache code to perform the correct response. + */ + case TCPOPT_SIGNATURE: + if (optlen != TCPOLEN_SIGNATURE) + continue; + to->to_flags |= (TOF_SIGNATURE | TOF_SIGLEN); + break; +#endif /* TCP_SIGNATURE */ default: continue; } |
