aboutsummaryrefslogtreecommitdiff
path: root/sys/netinet/ip_rcmd_pxy.c
diff options
context:
space:
mode:
authorDarren Reed <darrenr@FreeBSD.org>2000-07-19 14:02:09 +0000
committerDarren Reed <darrenr@FreeBSD.org>2000-07-19 14:02:09 +0000
commit72130853fb9af795e1f1236d9dabf5fad92297fc (patch)
tree4a7e27968b5241ea401005e2cf464630a1ceeca6 /sys/netinet/ip_rcmd_pxy.c
parentc0230397c7f9abd15e5a7954426a9c6eef3fa918 (diff)
downloadsrc-72130853fb9af795e1f1236d9dabf5fad92297fc.tar.gz
src-72130853fb9af795e1f1236d9dabf5fad92297fc.zip
fix conflicts
Notes
Notes: svn path=/head/; revision=63523
Diffstat (limited to 'sys/netinet/ip_rcmd_pxy.c')
-rw-r--r--sys/netinet/ip_rcmd_pxy.c17
1 files changed, 12 insertions, 5 deletions
diff --git a/sys/netinet/ip_rcmd_pxy.c b/sys/netinet/ip_rcmd_pxy.c
index ad60752d9a90..112171f815ba 100644
--- a/sys/netinet/ip_rcmd_pxy.c
+++ b/sys/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;