diff options
Diffstat (limited to 'sys/src/9/ip/ip.c')
| -rw-r--r-- | sys/src/9/ip/ip.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/sys/src/9/ip/ip.c b/sys/src/9/ip/ip.c index 7166619dd..f1cd74c10 100644 --- a/sys/src/9/ip/ip.c +++ b/sys/src/9/ip/ip.c @@ -180,6 +180,7 @@ ipoput4(Fs *f, Block *bp, int gating, int ttl, int tos, Routehint *rh) runlock(ifc); nexterror(); } + if(ifc->m == nil) goto raise; @@ -196,7 +197,7 @@ ipoput4(Fs *f, Block *bp, int gating, int ttl, int tos, Routehint *rh) eh->cksum[0] = 0; eh->cksum[1] = 0; hnputs(eh->cksum, ipcsum(&eh->vihl)); - ifc->m->bwrite(ifc, concatblock(bp), V4, gate); + ipifcoput(ifc, bp, V4, gate); runlock(ifc); poperror(); return 0; @@ -280,7 +281,7 @@ if((eh->frag[0] & (IP_DF>>8)) && !gating) print("%V: DF set\n", eh->dst); feh->cksum[0] = 0; feh->cksum[1] = 0; hnputs(feh->cksum, ipcsum(&feh->vihl)); - ifc->m->bwrite(ifc, nb, V4, gate); + ipifcoput(ifc, nb, V4, gate); ip->stats[FragCreates]++; } ip->stats[FragOKs]++; |
