ref: e44a085d033cfc789ab81811977fc71e438dd379
parent: 636c5c40af34d101526c610655e7453996d6e3cc
author: cinap_lenrek <cinap_lenrek@felloff.net>
date: Sat Oct 22 20:31:42 EDT 2016
ip: simplify code as packblock() and concatblock() will never error
--- a/sys/src/9/ip/gre.c
+++ b/sys/src/9/ip/gre.c
@@ -647,17 +647,7 @@
return;
}
- /*
- * Can't delimit packet so pull it all into one block.
- */
- if(qlen(c->rq) > GREqlen)
- freeb(bp);
- else{- bp = concatblock(bp);
- if(bp == 0)
- panic("greiput");- qpass(c->rq, bp);
- }
+ qpass(c->rq, bp);
}
int
--- a/sys/src/9/ip/il.c
+++ b/sys/src/9/ip/il.c
@@ -923,17 +923,12 @@
bp->list = nil;
dlen = nhgets(oh->illen)-IL_HDRSIZE;
bp = trimblock(bp, IL_IPSIZE+IL_HDRSIZE, dlen);
+
/*
* Upper levels don't know about multiple-block
* messages so copy all into one (yick).
*/
- bp = concatblock(bp);
- if(bp == 0)
- panic("ilpullup");- bp = packblock(bp);
- if(bp == 0)
- panic("ilpullup2");- qpass(s->rq, bp);
+ qpass(s->rq, packblock(concatblock(bp)));
}
qunlock(&ic->outo);
}
--- a/sys/src/9/ip/ipmux.c
+++ b/sys/src/9/ip/ipmux.c
@@ -745,10 +745,7 @@
/* tack on interface address */
bp = padblock(bp, IPaddrlen);
ipmove(bp->rp, ifc->lifc->local);
- bp = concatblock(bp);
- if(bp != nil)
- if(qpass(c->rq, bp) < 0)
- print("Q");+ qpass(c->rq, concatblock(bp));
return;
}
--- a/sys/src/9/ip/rudp.c
+++ b/sys/src/9/ip/rudp.c
@@ -574,17 +574,16 @@
}
break;
}
- if(bp->next)
- bp = concatblock(bp);
if(qfull(c->rq)) {netlog(f, Logrudp, "rudp: qfull %I.%d -> %I.%d\n", raddr, rport,
laddr, lport);
freeblist(bp);
- }
- else
+ } else {+ if(bp->next)
+ bp = concatblock(bp);
qpass(c->rq, bp);
-
+ }
qunlock(ucb);
}
--- a/sys/src/9/ip/tcp.c
+++ b/sys/src/9/ip/tcp.c
@@ -2437,10 +2437,7 @@
* receive queue
*/
if(bp) {- bp = packblock(bp);
- if(bp == nil)
- panic("tcp packblock");- qpassnolim(s->rq, bp);
+ qpassnolim(s->rq, packblock(bp));
bp = nil;
}
tcb->rcv.nxt += length;
--- a/sys/src/9/ip/udp.c
+++ b/sys/src/9/ip/udp.c
@@ -495,18 +495,15 @@
break;
}
- if(bp->next)
- bp = concatblock(bp);
-
if(qfull(c->rq)){- qunlock(c);
netlog(f, Logudp, "udp: qfull %I.%d -> %I.%d\n", raddr, rport,
laddr, lport);
freeblist(bp);
- return;
+ } else {+ if(bp->next)
+ bp = concatblock(bp);
+ qpass(c->rq, bp);
}
-
- qpass(c->rq, bp);
qunlock(c);
}
--
⑨