Browse Source

don't allow a useless handshake with yourself (#402)

* don't allow a useless handshake with yourself

* remove helper
Ryan Huber 4 years ago
parent
commit
3aaaea6309
1 changed files with 8 additions and 0 deletions
  1. 8 0
      handshake_ix.go

+ 8 - 0
handshake_ix.go

@@ -107,6 +107,14 @@ func ixHandshakeStage1(f *Interface, addr *udpAddr, packet []byte, h *Header) {
 	certName := remoteCert.Details.Name
 	certName := remoteCert.Details.Name
 	fingerprint, _ := remoteCert.Sha256Sum()
 	fingerprint, _ := remoteCert.Sha256Sum()
 
 
+	if vpnIP == ip2int(f.certState.certificate.Details.Ips[0].IP) {
+		l.WithField("vpnIp", IntIp(vpnIP)).WithField("udpAddr", addr).
+			WithField("certName", certName).
+			WithField("fingerprint", fingerprint).
+			WithField("handshake", m{"stage": 1, "style": "ix_psk0"}).Error("Refusing to handshake with myself")
+		return
+	}
+
 	myIndex, err := generateIndex()
 	myIndex, err := generateIndex()
 	if err != nil {
 	if err != nil {
 		l.WithError(err).WithField("vpnIp", IntIp(vpnIP)).WithField("udpAddr", addr).
 		l.WithError(err).WithField("vpnIp", IntIp(vpnIP)).WithField("udpAddr", addr).