diff options
author | cinap_lenrek <cinap_lenrek@felloff.net> | 2022-12-30 15:09:07 +0000 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@felloff.net> | 2022-12-30 15:09:07 +0000 |
commit | 6b5de9ee6738c0f52122978130d4a8a508d75739 (patch) | |
tree | 1c2063893d5313da3276a9ca249257c0d274e54f /sys | |
parent | f8ddcb23b9dd969875dd4e961591700c79b7d5f7 (diff) |
icmp: only forward EchoRequest, Timestamp(request), InfoRequest and AddrMaskRequest
Diffstat (limited to 'sys')
-rw-r--r-- | sys/src/9/ip/icmp.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/sys/src/9/ip/icmp.c b/sys/src/9/ip/icmp.c index 2b8218a51..7dd9c861a 100644 --- a/sys/src/9/ip/icmp.c +++ b/sys/src/9/ip/icmp.c @@ -564,6 +564,17 @@ icmpforward(Proto *icmp, Block *bp, Route *r) Translation *q; p = (Icmp*)(bp->rp); + switch(p->type){ + case EchoRequest: + case Timestamp: + case InfoRequest: + case AddrMaskRequest: + break; + default: + /* no icmpid, can't translate back */ + freeblist(bp); + return nil; + } v4tov6(sa, p->src); v4tov6(da, p->dst); id = nhgets(p->icmpid); |