summaryrefslogtreecommitdiff
path: root/sys/src/9/ip
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@felloff.net>2016-10-23 00:31:42 +0200
committercinap_lenrek <cinap_lenrek@felloff.net>2016-10-23 00:31:42 +0200
commit055f8370432d2c128ce8fd28b059320181d8f3ef (patch)
tree0508e40bd051cd4877dc5fa4de31d60ed5b17e57 /sys/src/9/ip
parent75c6ab45e02640959260fa98449180e9408141bc (diff)
ip: simplify code as packblock() and concatblock() will never error
Diffstat (limited to 'sys/src/9/ip')
-rw-r--r--sys/src/9/ip/gre.c12
-rw-r--r--sys/src/9/ip/il.c9
-rw-r--r--sys/src/9/ip/ipmux.c5
-rw-r--r--sys/src/9/ip/rudp.c9
-rw-r--r--sys/src/9/ip/tcp.c5
-rw-r--r--sys/src/9/ip/udp.c11
6 files changed, 13 insertions, 38 deletions
diff --git a/sys/src/9/ip/gre.c b/sys/src/9/ip/gre.c
index dd7ce5b96..ff1430734 100644
--- a/sys/src/9/ip/gre.c
+++ b/sys/src/9/ip/gre.c
@@ -647,17 +647,7 @@ greiput(Proto *proto, Ipifc *, Block *bp)
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
diff --git a/sys/src/9/ip/il.c b/sys/src/9/ip/il.c
index 89ec60bd0..0368da2e2 100644
--- a/sys/src/9/ip/il.c
+++ b/sys/src/9/ip/il.c
@@ -923,17 +923,12 @@ ilpullup(Conv *s)
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);
}
diff --git a/sys/src/9/ip/ipmux.c b/sys/src/9/ip/ipmux.c
index ef45ea0ac..2eeca4153 100644
--- a/sys/src/9/ip/ipmux.c
+++ b/sys/src/9/ip/ipmux.c
@@ -745,10 +745,7 @@ yes:
/* 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;
}
diff --git a/sys/src/9/ip/rudp.c b/sys/src/9/ip/rudp.c
index ff17c257d..739126f44 100644
--- a/sys/src/9/ip/rudp.c
+++ b/sys/src/9/ip/rudp.c
@@ -574,17 +574,16 @@ rudpiput(Proto *rudp, Ipifc *ifc, Block *bp)
}
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);
}
diff --git a/sys/src/9/ip/tcp.c b/sys/src/9/ip/tcp.c
index 2fb8acd85..4147f36cf 100644
--- a/sys/src/9/ip/tcp.c
+++ b/sys/src/9/ip/tcp.c
@@ -2437,10 +2437,7 @@ reset:
* 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;
diff --git a/sys/src/9/ip/udp.c b/sys/src/9/ip/udp.c
index b897d1e4b..a10ce02f5 100644
--- a/sys/src/9/ip/udp.c
+++ b/sys/src/9/ip/udp.c
@@ -495,18 +495,15 @@ udpiput(Proto *udp, Ipifc *ifc, Block *bp)
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);
}