Small fixes. [rsc] --rw-rw-r-- M 195156 presotto sys 18054 Dec 13 13:35 sys/src/9/ip/icmp6.c /n/sourcesdump/2005/1213/plan9/sys/src/9/ip/icmp6.c:337,343 - /n/sourcesdump/2005/1214/plan9/sys/src/9/ip/icmp6.c:337,343 * sends out an ICMPv6 neighbor solicitation * suni == SRC_UNSPEC or SRC_UNI, * tuni == TARG_MULTI => multicast for address resolution, - * and tflag == TARG_UNI => neighbor reachability. + * and tuni == TARG_UNI => neighbor reachability. */ extern void /n/sourcesdump/2005/1213/plan9/sys/src/9/ip/icmp6.c:831,837 - /n/sourcesdump/2005/1214/plan9/sys/src/9/ip/icmp6.c:831,836 freeblist(bp); } - ipriv->out[NbrSolicit]++; break; case NbrAdvert: [rsc] --rw-rw-r-- M 195156 glenda sys 27226 Dec 13 13:35 sys/src/9/ip/il.c /n/sourcesdump/2005/1213/plan9/sys/src/9/ip/il.c:70,75 - /n/sourcesdump/2005/1214/plan9/sys/src/9/ip/il.c:70,77 DefByteRate = 100, /* assume a megabit link */ DefRtt = 50, /* cross country on a great day */ + + Maxrq = 64*1024, }; enum /n/sourcesdump/2005/1213/plan9/sys/src/9/ip/il.c:163,168 - /n/sourcesdump/2005/1214/plan9/sys/src/9/ip/il.c:165,171 Retrans, /* retransmissions */ DupMsg, DupBytes, + DroppedMsgs, Nstats, }; /n/sourcesdump/2005/1213/plan9/sys/src/9/ip/il.c:178,183 - /n/sourcesdump/2005/1214/plan9/sys/src/9/ip/il.c:181,187 [Retrans] "Retrans", [DupMsg] "DupMsg", [DupBytes] "DupBytes", + [DroppedMsgs] "DroppedMsgs", }; typedef struct Ilpriv Ilpriv; /n/sourcesdump/2005/1213/plan9/sys/src/9/ip/il.c:415,421 - /n/sourcesdump/2005/1214/plan9/sys/src/9/ip/il.c:419,425 static void ilcreate(Conv *c) { - c->rq = qopen(64*1024, 0, 0, c); + c->rq = qopen(Maxrq, 0, 0, c); c->wq = qbypass(ilkick, c); } /n/sourcesdump/2005/1213/plan9/sys/src/9/ip/il.c:722,727 - /n/sourcesdump/2005/1214/plan9/sys/src/9/ip/il.c:726,742 freeblist(bp); break; case Ildata: + /* + * avoid consuming all the mount rpc buffers in the + * system. if the input queue is too long, drop this + * packet. + */ + if (s->rq && qlen(s->rq) >= Maxrq) { + priv->stats[DroppedMsgs]++; + freeblist(bp); + break; + } + ilackto(ic, ack, bp); iloutoforder(s, h, bp); ilpullup(s); /n/sourcesdump/2005/1213/plan9/sys/src/9/ip/il.c:912,918 - /n/sourcesdump/2005/1214/plan9/sys/src/9/ip/il.c:927,933 bp = packblock(bp); if(bp == 0) panic("ilpullup2"); - qpassnolim(s->rq, bp); + qpass(s->rq, bp); } qunlock(&ic->outo); } [rsc] --rw-rw-r-- M 195156 glenda sys 45226 Dec 13 13:34 sys/src/9/port/devtls.c /n/sourcesdump/2005/1213/plan9/sys/src/9/port/devtls.c:155,161 - /n/sourcesdump/2005/1214/plan9/sys/src/9/port/devtls.c:155,161 {EDecryptionFailed, EIllegalParameter, EDecryptionFailed, 1, "decryption failed"}, {ERecordOverflow, EIllegalParameter, ERecordOverflow, 1, "record too long"}, {EDecompressionFailure, EDecompressionFailure, EDecompressionFailure, 1, "decompression failed"}, - {EHandshakeFailure, EHandshakeFailure, EHandshakeFailure, 1, "could not negotiate acceptable security paramters"}, + {EHandshakeFailure, EHandshakeFailure, EHandshakeFailure, 1, "could not negotiate acceptable security parameters"}, {ENoCertificate, ENoCertificate, ECertificateUnknown, 1, "no appropriate certificate available"}, {EBadCertificate, EBadCertificate, EBadCertificate, 1, "corrupted or invalid certificate"}, {EUnsupportedCertificate, EUnsupportedCertificate, EUnsupportedCertificate, 1, "unsupported certificate type"},