Submitted by:	archie@whistle.com (archie cobbs)

take into account interraction between IPDIVERT and SKIP
This commit is contained in:
Julian Elischer 1998-03-07 00:34:09 +00:00
parent 8367423cad
commit e5dbcbbca6
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=10058

View File

@ -1,6 +1,6 @@
diff -ur --unidirectional-new-file skipsrc-1.0.orig/skip/freebsd/skip_es.c skipsrc-1.0/skip/freebsd/skip_es.c
--- skipsrc-1.0.orig/skip/freebsd/skip_es.c Fri Oct 25 13:12:42 1996
+++ skipsrc-1.0/skip/freebsd/skip_es.c Mon Dec 15 17:41:37 1997
+++ skipsrc-1.0/skip/freebsd/skip_es.c Tue Mar 3 16:58:54 1998
@@ -81,6 +81,11 @@
static unsigned short skip_pktid;
static skip_softc_t skip_softc[SKIP_MAX_OPENS];
@ -13,17 +13,19 @@ diff -ur --unidirectional-new-file skipsrc-1.0.orig/skip/freebsd/skip_es.c skips
/*
* statistics
*/
@@ -252,7 +257,8 @@
@@ -252,7 +257,10 @@
for (pr = inetdomain.dom_protosw;
pr < inetdomain.dom_protoswNPROTOSW; pr++) {
- pr->pr_input = skip_ifinput;
+ if (pr->pr_protocol == IPPROTO_DIVERT)
+ continue;
+ pr->pr_input =
+ (void (*)(struct mbuf *, int)) skip_ifinput;
}
splx(s);
}
@@ -788,7 +794,11 @@
@@ -788,7 +796,11 @@
static void
skip_inittimers()
{
@ -35,7 +37,7 @@ diff -ur --unidirectional-new-file skipsrc-1.0.orig/skip/freebsd/skip_es.c skips
}
/* skip_uninittimers()
@@ -800,7 +810,12 @@
@@ -800,7 +812,12 @@
static void
skip_uninittimers()
{
@ -48,7 +50,7 @@ diff -ur --unidirectional-new-file skipsrc-1.0.orig/skip/freebsd/skip_es.c skips
}
/* skip_timer()
@@ -819,7 +834,11 @@
@@ -819,7 +836,11 @@
* run through the key store
*/
skip_key_iterate(skip_key_check, NULL);
@ -60,7 +62,7 @@ diff -ur --unidirectional-new-file skipsrc-1.0.orig/skip/freebsd/skip_es.c skips
}
#ifdef notdef
@@ -1718,7 +1737,7 @@
@@ -1718,7 +1739,7 @@
*/
decryptbuf->m_data += iphlen;
@ -69,7 +71,7 @@ diff -ur --unidirectional-new-file skipsrc-1.0.orig/skip/freebsd/skip_es.c skips
decryptbuf->m_len, decryptbuf->m_data);
}
@@ -2005,7 +2024,7 @@
@@ -2005,7 +2026,7 @@
if (params.kp_alg) {
newip->ip_p = SKIP_NEXT_ESP;
} else {
@ -78,7 +80,7 @@ diff -ur --unidirectional-new-file skipsrc-1.0.orig/skip/freebsd/skip_es.c skips
}
}
skip_if->stats.skip_if_raw_out++;
@@ -2097,7 +2116,7 @@
@@ -2097,7 +2118,7 @@
register skip_param_t *params = &res->params;
register struct ip *ip = mtod(original, struct ip *);
int rc, s, iphlen;
@ -87,7 +89,7 @@ diff -ur --unidirectional-new-file skipsrc-1.0.orig/skip/freebsd/skip_es.c skips
SKIP_PRINT("skip_decrypt_done", params);
@@ -2125,7 +2144,7 @@
@@ -2125,7 +2146,7 @@
*/
outbuf = (res->modes & SKIP_CRYPT_ON) ? m : original;