ref: 829a451c2b866d502306bd0b8cbb1991a55faa45
parent: 0272fa04fd5da396d5f2b29d8c6c988822d2147b
author: cinap_lenrek <[email protected]>
date: Tue Apr 10 16:02:03 EDT 2018
devip: properly initialize the connection ignoreadvice and tos flags
--- a/sys/src/9/ip/devip.c
+++ b/sys/src/9/ip/devip.c
@@ -549,7 +549,7 @@
}
/* close all incoming calls since no listen will ever happen */
- for(nc = cv->incall; nc; nc = cv->incall){
+ for(nc = cv->incall; nc != nil; nc = cv->incall){
cv->incall = nc->next;
closeconv(nc);
}
@@ -561,9 +561,9 @@
while((mp = cv->multi) != nil)
ipifcremmulti(cv, mp->ma, mp->ia);
- cv->r = nil;
- cv->rgen = 0;
- cv->p->close(cv);
+ if(cv->p->close != nil)
+ (*cv->p->close)(cv);
+
cv->state = Idle;
qunlock(cv);
}
@@ -1318,7 +1318,9 @@
c->lport = 0;
c->rport = 0;
c->restricted = 0;
+ c->ignoreadvice = 0;
c->ttl = MAXTTL;
+ c->tos = 0;
qreopen(c->rq);
qreopen(c->wq);
qreopen(c->eq);
--- a/sys/src/9/ip/ip.h
+++ b/sys/src/9/ip/ip.h
@@ -181,9 +181,9 @@
Proto* p;
int restricted; /* remote port is restricted */
+ int ignoreadvice; /* don't terminate connection on icmp errors */
uint ttl; /* max time to live */
uint tos; /* type of service */
- int ignoreadvice; /* don't terminate connection on icmp errors */
uchar ipversion;
uchar laddr[IPaddrlen]; /* local IP address */