TUN-6531: Implement ICMP proxy for Windows using IcmpSendEcho

This commit is contained in:
Chung-Ting Huang
2022-08-29 18:49:07 +01:00
parent 7a19798682
commit 3e0ff3a771
7 changed files with 472 additions and 17 deletions

View File

@@ -58,12 +58,11 @@ func (ip *icmpProxy) Request(pk *packet.ICMP, responder packet.FlowResponder) er
if pk == nil {
return errPacketNil
}
switch body := pk.Message.Body.(type) {
case *icmp.Echo:
return ip.sendICMPEchoRequest(pk, body, responder)
default:
return fmt.Errorf("sending ICMP %s is not implemented", pk.Type)
echo, err := getICMPEcho(pk)
if err != nil {
return err
}
return ip.sendICMPEchoRequest(pk, echo, responder)
}
func (ip *icmpProxy) Serve(ctx context.Context) error {