|
@@ -68,7 +68,7 @@ func ixHandshakeStage0(f *Interface, vpnIp iputil.VpnIp, hostinfo *HostInfo) {
|
|
|
hostinfo.handshakeStart = time.Now()
|
|
|
}
|
|
|
|
|
|
-func ixHandshakeStage1(f *Interface, addr *udp.Addr, via interface{}, packet []byte, h *header.H) {
|
|
|
+func ixHandshakeStage1(f *Interface, addr *udp.Addr, via *ViaSender, packet []byte, h *header.H) {
|
|
|
ci := f.newConnectionState(f.l, false, noise.HandshakeIX, []byte{}, 0)
|
|
|
// Mark packet 1 as seen so it doesn't show up as missed
|
|
|
ci.window.Update(f.l, 1)
|
|
@@ -240,14 +240,13 @@ func ixHandshakeStage1(f *Interface, addr *udp.Addr, via interface{}, packet []b
|
|
|
}
|
|
|
return
|
|
|
} else {
|
|
|
- via2 := via.(*ViaSender)
|
|
|
- if via2 == nil {
|
|
|
+ if via == nil {
|
|
|
f.l.Error("Handshake send failed: both addr and via are nil.")
|
|
|
return
|
|
|
}
|
|
|
- hostinfo.relayState.InsertRelayTo(via2.relayHI.vpnIp)
|
|
|
- f.SendVia(via2.relayHI, via2.relay, msg, make([]byte, 12), make([]byte, mtu), false)
|
|
|
- f.l.WithField("vpnIp", existing.vpnIp).WithField("relay", via2.relayHI.vpnIp).
|
|
|
+ hostinfo.relayState.InsertRelayTo(via.relayHI.vpnIp)
|
|
|
+ f.SendVia(via.relayHI, via.relay, msg, make([]byte, 12), make([]byte, mtu), false)
|
|
|
+ f.l.WithField("vpnIp", existing.vpnIp).WithField("relay", via.relayHI.vpnIp).
|
|
|
WithField("handshake", m{"stage": 2, "style": "ix_psk0"}).WithField("cached", true).
|
|
|
Info("Handshake message sent")
|
|
|
return
|
|
@@ -315,14 +314,13 @@ func ixHandshakeStage1(f *Interface, addr *udp.Addr, via interface{}, packet []b
|
|
|
Info("Handshake message sent")
|
|
|
}
|
|
|
} else {
|
|
|
- via2 := via.(*ViaSender)
|
|
|
- if via2 == nil {
|
|
|
+ if via == nil {
|
|
|
f.l.Error("Handshake send failed: both addr and via are nil.")
|
|
|
return
|
|
|
}
|
|
|
- hostinfo.relayState.InsertRelayTo(via2.relayHI.vpnIp)
|
|
|
- f.SendVia(via2.relayHI, via2.relay, msg, make([]byte, 12), make([]byte, mtu), false)
|
|
|
- f.l.WithField("vpnIp", vpnIp).WithField("relay", via2.relayHI.vpnIp).
|
|
|
+ hostinfo.relayState.InsertRelayTo(via.relayHI.vpnIp)
|
|
|
+ f.SendVia(via.relayHI, via.relay, msg, make([]byte, 12), make([]byte, mtu), false)
|
|
|
+ f.l.WithField("vpnIp", vpnIp).WithField("relay", via.relayHI.vpnIp).
|
|
|
WithField("certName", certName).
|
|
|
WithField("fingerprint", fingerprint).
|
|
|
WithField("issuer", issuer).
|
|
@@ -338,7 +336,7 @@ func ixHandshakeStage1(f *Interface, addr *udp.Addr, via interface{}, packet []b
|
|
|
return
|
|
|
}
|
|
|
|
|
|
-func ixHandshakeStage2(f *Interface, addr *udp.Addr, via interface{}, hostinfo *HostInfo, packet []byte, h *header.H) bool {
|
|
|
+func ixHandshakeStage2(f *Interface, addr *udp.Addr, via *ViaSender, hostinfo *HostInfo, packet []byte, h *header.H) bool {
|
|
|
if hostinfo == nil {
|
|
|
// Nothing here to tear down, got a bogus stage 2 packet
|
|
|
return true
|
|
@@ -482,8 +480,7 @@ func ixHandshakeStage2(f *Interface, addr *udp.Addr, via interface{}, hostinfo *
|
|
|
if addr != nil {
|
|
|
hostinfo.SetRemote(addr)
|
|
|
} else {
|
|
|
- via2 := via.(*ViaSender)
|
|
|
- hostinfo.relayState.InsertRelayTo(via2.relayHI.vpnIp)
|
|
|
+ hostinfo.relayState.InsertRelayTo(via.relayHI.vpnIp)
|
|
|
}
|
|
|
|
|
|
// Build up the radix for the firewall if we have subnets in the cert
|