summaryrefslogtreecommitdiff
path: root/sys/src/9/ip
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@felloff.net>2016-03-12 23:07:58 +0100
committercinap_lenrek <cinap_lenrek@felloff.net>2016-03-12 23:07:58 +0100
commit8f2d9a139fa48e964e46be4bc8b7b451a0a721c9 (patch)
tree71c9bb99d43bb5338eeb49d3970d4a3f3ec50b45 /sys/src/9/ip
parent090a40473261a31a5bd0b08976b39cb4ee09bdc9 (diff)
devip: handle ignoreadvice flag for all protocols
Diffstat (limited to 'sys/src/9/ip')
-rw-r--r--sys/src/9/ip/esp.c2
-rw-r--r--sys/src/9/ip/icmp.c2
-rw-r--r--sys/src/9/ip/icmp6.c2
-rw-r--r--sys/src/9/ip/il.c2
-rw-r--r--sys/src/9/ip/rudp.c2
-rw-r--r--sys/src/9/ip/tcp.c2
6 files changed, 11 insertions, 1 deletions
diff --git a/sys/src/9/ip/esp.c b/sys/src/9/ip/esp.c
index 9023e08a5..75c48a1ff 100644
--- a/sys/src/9/ip/esp.c
+++ b/sys/src/9/ip/esp.c
@@ -595,7 +595,7 @@ espadvise(Proto *esp, Block *bp, char *msg)
qlock(esp);
c = convlookup(esp, vers.spi);
- if(c != nil) {
+ if(c != nil && !c->ignoreadvice) {
qhangup(c->rq, msg);
qhangup(c->wq, msg);
}
diff --git a/sys/src/9/ip/icmp.c b/sys/src/9/ip/icmp.c
index d1652147a..fc32696b6 100644
--- a/sys/src/9/ip/icmp.c
+++ b/sys/src/9/ip/icmp.c
@@ -449,6 +449,8 @@ icmpadvise(Proto *icmp, Block *bp, char *msg)
s = *c;
if(s->lport == recid)
if(ipcmp(s->raddr, dst) == 0){
+ if(s->ignoreadvice)
+ break;
qhangup(s->rq, msg);
qhangup(s->wq, msg);
break;
diff --git a/sys/src/9/ip/icmp6.c b/sys/src/9/ip/icmp6.c
index 75419f918..bade6b4de 100644
--- a/sys/src/9/ip/icmp6.c
+++ b/sys/src/9/ip/icmp6.c
@@ -224,6 +224,8 @@ icmpadvise6(Proto *icmp, Block *bp, char *msg)
for(c = icmp->conv; *c; c++) {
s = *c;
if(s->lport == recid && ipcmp(s->raddr, p->dst) == 0){
+ if(s->ignoreadvice)
+ break;
qhangup(s->rq, msg);
qhangup(s->wq, msg);
break;
diff --git a/sys/src/9/ip/il.c b/sys/src/9/ip/il.c
index 478fd4101..2549fa49e 100644
--- a/sys/src/9/ip/il.c
+++ b/sys/src/9/ip/il.c
@@ -1334,6 +1334,8 @@ iladvise(Proto *il, Block *bp, char *msg)
if(s->lport == psource)
if(ipcmp(s->laddr, source) == 0)
if(ipcmp(s->raddr, dest) == 0){
+ if(s->ignoreadvice)
+ break;
qunlock(il);
ic = (Ilcb*)s->ptcl;
switch(ic->state){
diff --git a/sys/src/9/ip/rudp.c b/sys/src/9/ip/rudp.c
index 8f3de5e6d..ff17c257d 100644
--- a/sys/src/9/ip/rudp.c
+++ b/sys/src/9/ip/rudp.c
@@ -648,6 +648,8 @@ rudpadvise(Proto *rudp, Block *bp, char *msg)
if(s->lport == psource)
if(ipcmp(s->raddr, dest) == 0)
if(ipcmp(s->laddr, source) == 0){
+ if(s->ignoreadvice)
+ break;
qhangup(s->rq, msg);
qhangup(s->wq, msg);
break;
diff --git a/sys/src/9/ip/tcp.c b/sys/src/9/ip/tcp.c
index f19391a68..2fb8acd85 100644
--- a/sys/src/9/ip/tcp.c
+++ b/sys/src/9/ip/tcp.c
@@ -3254,6 +3254,8 @@ tcpadvise(Proto *tcp, Block *bp, char *msg)
if(tcb->state != Closed)
if(ipcmp(s->raddr, dest) == 0)
if(ipcmp(s->laddr, source) == 0){
+ if(s->ignoreadvice)
+ break;
qlock(s);
qunlock(tcp);
switch(tcb->state){