PR: 5911
Submitted by: archie@whistle.com (archie cobbs) take into account interraction between IPDIVERT and SKIP
This commit is contained in:
parent
8367423cad
commit
e5dbcbbca6
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=10058
@ -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;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user