@cryptotaxi247 / kubo / commits / cb2fb9cfe

print NAT if detected

Jeromy committed Nov 2, 2014 at 21:59 UTC cb2fb9cfe6abd9ab8f0a1d3b52482f7ed2812e94
1 file changed +17 -3
net/conn/handshake.go
+17 -3
@@ -3,6 +3,7 @@ package conn
3 import (
4 "errors"
5 "fmt"
6 + "strings"
7
8 handshake "github.com/jbenet/go-ipfs/net/handshake"
9 hspb "github.com/jbenet/go-ipfs/net/handshake/pb"
@@ -105,6 +106,14 @@ func Handshake3(ctx context.Context, c Conn) error {
106 return err
107 }
108
109 + nat, err := CheckNAT(remoteH.GetObservedAddr())
110 + if err != nil {
111 + log.Errorf("Error in NAT detection: %s", err)
112 + }
113 + if nat {
114 + log.Warning("We are probably behind a NAT!")
115 + }
116 +
117 return nil
118 }
119
@@ -117,8 +126,13 @@ func CheckNAT(obsaddr string) (bool, error) {
126 if err != nil {
127 return false, err
128 }
120 - _ = oma
121 - _ = addrs
129
123 - panic("not yet implemented!")
130 + omastr := oma.String()
131 + for _, addr := range addrs {
132 + if strings.HasPrefix(addr.String(), omastr) {
133 + return false, nil
134 + }
135 + }
136 +
137 + return true, nil
138 }