summaryrefslogtreecommitdiffstats
path: root/contrib/ipfilter/ipft_tx.c
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/ipfilter/ipft_tx.c')
-rw-r--r--contrib/ipfilter/ipft_tx.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/contrib/ipfilter/ipft_tx.c b/contrib/ipfilter/ipft_tx.c
index 36372a1..9a5f139 100644
--- a/contrib/ipfilter/ipft_tx.c
+++ b/contrib/ipfilter/ipft_tx.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 1995-1997 by Darren Reed.
+ * Copyright (C) 1995-1998 by Darren Reed.
*
* Redistribution and use in source and binary forms are permitted
* provided that this notice is preserved and due credit is given
@@ -43,7 +43,7 @@
#if !defined(lint)
static const char sccsid[] = "@(#)ipft_tx.c 1.7 6/5/96 (C) 1993 Darren Reed";
-static const char rcsid[] = "@(#)$Id: ipft_tx.c,v 2.0.2.11.2.3 1998/05/23 19:20:32 darrenr Exp $";
+static const char rcsid[] = "@(#)$Id: ipft_tx.c,v 2.1 1999/08/04 17:30:05 darrenr Exp $";
#endif
extern int opts;
@@ -196,7 +196,7 @@ int cnt, *dir;
*dir = 0;
if (!parseline(line, (ip_t *)buf, ifn, dir))
#if 0
- return sizeof(struct tcpiphdr);
+ return sizeof(*ip) + sizeof(tcphdr_t);
#else
return sizeof(ip_t);
#endif
@@ -263,6 +263,9 @@ int *out;
tx_proto = "icmp";
}
cpp++;
+ } else if (isdigit(**cpp) && !index(*cpp, '.')) {
+ ip->ip_p = atoi(*cpp);
+ cpp++;
} else
ip->ip_p = IPPROTO_IP;
@@ -308,6 +311,8 @@ int *out;
if (tcp->th_flags)
cpp++;
assert(tcp->th_flags != 0);
+ tcp->th_win = htons(4096);
+ tcp->th_off = sizeof(*tcp) >> 2;
} else if (*cpp && ip->ip_p == IPPROTO_ICMP) {
extern char *tx_icmptypes[];
char **s, *t;
@@ -340,5 +345,6 @@ int *out;
else if (ip->ip_p == IPPROTO_ICMP)
bcopy((char *)ic, ((char *)ip) + (ip->ip_hl << 2),
sizeof(*ic));
+ ip->ip_len = htons(ip->ip_len);
return 0;
}
OpenPOWER on IntegriCloud