summaryrefslogtreecommitdiff
path: root/sys/src/9
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@felloff.net>2022-12-30 15:09:07 +0000
committercinap_lenrek <cinap_lenrek@felloff.net>2022-12-30 15:09:07 +0000
commit6b5de9ee6738c0f52122978130d4a8a508d75739 (patch)
tree1c2063893d5313da3276a9ca249257c0d274e54f /sys/src/9
parentf8ddcb23b9dd969875dd4e961591700c79b7d5f7 (diff)
icmp: only forward EchoRequest, Timestamp(request), InfoRequest and AddrMaskRequest
Diffstat (limited to 'sys/src/9')
-rw-r--r--sys/src/9/ip/icmp.c11
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);