diff options
author | darrenr <darrenr@FreeBSD.org> | 2000-07-19 14:02:09 +0000 |
---|---|---|
committer | darrenr <darrenr@FreeBSD.org> | 2000-07-19 14:02:09 +0000 |
commit | 9f3624548b71b3532a679d6cedf8b009eae2f3f4 (patch) | |
tree | a1b269f2d3702644341af5c980c8526d65859bae /sys/contrib/ipfilter/netinet/ip_rcmd_pxy.c | |
parent | 464e3d57b81373743909c947d624bd49985749fb (diff) | |
download | FreeBSD-src-9f3624548b71b3532a679d6cedf8b009eae2f3f4.zip FreeBSD-src-9f3624548b71b3532a679d6cedf8b009eae2f3f4.tar.gz |
fix conflicts
Diffstat (limited to 'sys/contrib/ipfilter/netinet/ip_rcmd_pxy.c')
-rw-r--r-- | sys/contrib/ipfilter/netinet/ip_rcmd_pxy.c | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/sys/contrib/ipfilter/netinet/ip_rcmd_pxy.c b/sys/contrib/ipfilter/netinet/ip_rcmd_pxy.c index ad60752..112171f 100644 --- a/sys/contrib/ipfilter/netinet/ip_rcmd_pxy.c +++ b/sys/contrib/ipfilter/netinet/ip_rcmd_pxy.c @@ -1,5 +1,5 @@ /* - * $Id: ip_rcmd_pxy.c,v 1.4.2.1 2000/05/06 11:19:34 darrenr Exp $ + * $Id: ip_rcmd_pxy.c,v 1.4.2.2 2000/07/15 12:38:30 darrenr Exp $ */ /* * Simple RCMD transparent proxy for in-kernel use. For use with the NAT @@ -94,8 +94,17 @@ nat_t *nat; #endif tcp = (tcphdr_t *)fin->fin_dp; + + if (tcp->th_flags & TH_SYN) { + *(u_32_t *)aps->aps_data = htonl(ntohl(tcp->th_seq) + 1); + return 0; + } + + if ((*(u_32_t *)aps->aps_data != 0) && + (tcp->th_seq != *(u_32_t *)aps->aps_data)) + return 0; + off = (ip->ip_hl << 2) + (tcp->th_off << 2); - m = *(mb_t **)fin->fin_mp; #if SOLARIS m = fin->fin_qfm; @@ -104,13 +113,11 @@ nat_t *nat; bzero(portbuf, sizeof(portbuf)); copyout_mblk(m, off, MIN(sizeof(portbuf), dlen), portbuf); #else + m = *(mb_t **)fin->fin_mp; dlen = mbufchainlen(m) - off; bzero(portbuf, sizeof(portbuf)); m_copydata(m, off, MIN(sizeof(portbuf), dlen), portbuf); #endif - if ((*(u_32_t *)aps->aps_data != 0) && - (tcp->th_seq != *(u_32_t *)aps->aps_data)) - return 0; portbuf[sizeof(portbuf) - 1] = '\0'; s = portbuf; |