diff options
Diffstat (limited to 'fw/src/fw.c')
| -rw-r--r-- | fw/src/fw.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/fw/src/fw.c b/fw/src/fw.c index 8901c2a..6ae38df 100644 --- a/fw/src/fw.c +++ b/fw/src/fw.c @@ -378,6 +378,7 @@ flowadd(Pkt *p) void servenet(char*, char*, char*); int etheropen(char*, uchar*); void ethersetaddr(uchar*, uchar*, int); +int etherforme(uchar*, int); int etherisarp(uchar*, int); int etherisip(uchar*, int); int etherwriteip(uchar*, int, uchar*, int, uchar*); @@ -1093,6 +1094,8 @@ etherin(void *a) } if(debug > 1) fprint(2, "wire: %d bytes type %.4ux\n", n, (buf[12]<<8)|buf[13]); + if(!etherforme(buf, n)) /* the wire's, not ours */ + continue; if(etherisarp(buf, n)) continue; if(!etherisip(buf, n)) |
