]> Sergey Matveev's repositories - btrtrc.git/blobdiff - ipport.go
Include count of peer conns in status
[btrtrc.git] / ipport.go
index d65624c34d139b6c760f59adab4c7c840dc285d8..9fe9e42d80e5df97d524d26fa632be72b2b9cb8f 100644 (file)
--- a/ipport.go
+++ b/ipport.go
@@ -17,7 +17,7 @@ func addrPortOrZero(addr net.Addr) int {
                if err != nil {
                        return 0
                }
-               i64, err := strconv.ParseInt(port, 0, 0)
+               i64, err := strconv.ParseUint(port, 0, 16)
                if err != nil {
                        panic(err)
                }
@@ -56,12 +56,15 @@ func (me ipPortAddr) String() string {
        return net.JoinHostPort(me.IP.String(), strconv.FormatInt(int64(me.Port), 10))
 }
 
-func tryIpPortFromNetAddr(na net.Addr) (ret ipPortAddr, ok bool) {
-       ret.IP = addrIpOrNil(na)
-       if ret.IP == nil {
-               return
+func tryIpPortFromNetAddr(addr PeerRemoteAddr) (ipPortAddr, bool) {
+       ok := true
+       host, port, err := net.SplitHostPort(addr.String())
+       if err != nil {
+               ok = false
        }
-       ret.Port = addrPortOrZero(na)
-       ok = true
-       return
+       portI64, err := strconv.ParseInt(port, 10, 0)
+       if err != nil {
+               ok = false
+       }
+       return ipPortAddr{net.ParseIP(host), int(portI64)}, ok
 }