diff --git a/src/yggdrasil/admin.go b/src/yggdrasil/admin.go index 26d2db99..05e5c9a1 100644 --- a/src/yggdrasil/admin.go +++ b/src/yggdrasil/admin.go @@ -425,13 +425,10 @@ func (a *admin) startTunWithMTU(ifname string, iftapmode bool, ifmtu int) error func (a *admin) getData_getSelf() *admin_nodeInfo { table := a.core.switchTable.table.Load().(lookupTable) - addr := (*a.core.GetAddress())[:] - subnet := (*a.core.GetSubnet())[:] - subnet = append(subnet, 0, 0, 0, 0, 0, 0, 0, 0) coords := table.self.getCoords() self := admin_nodeInfo{ - {"ip", net.IP(addr[:]).String()}, - {"subnet", fmt.Sprintf("%s/64", net.IP(subnet[:]).String())}, + {"ip", a.core.GetAddress().String()}, + {"subnet", a.core.GetSubnet().String()}, {"coords", fmt.Sprint(coords)}, } return &self diff --git a/src/yggdrasil/core.go b/src/yggdrasil/core.go index 0527b54f..a4b50fdb 100644 --- a/src/yggdrasil/core.go +++ b/src/yggdrasil/core.go @@ -48,7 +48,7 @@ func (c *Core) init(bpub *boxPubKey, // This is pretty much required to completely avoid race conditions util_initByteStore() if c.log == nil { - c.log = log.New(ioutil.Discard, "", 0) + c.log = log.New(ioutil.Discard, "", 0) } c.boxPub, c.boxPriv = *bpub, *bpriv c.sigPub, c.sigPriv = *spub, *spriv @@ -156,13 +156,16 @@ func (c *Core) GetTreeID() *TreeID { } // Gets the IPv6 address of the Yggdrasil node. This is always a /128. -func (c *Core) GetAddress() *address { - return address_addrForNodeID(c.GetNodeID()) +func (c *Core) GetAddress() *net.IP { + address := net.IP(address_addrForNodeID(c.GetNodeID())[:]) + return &address } // Gets the routed IPv6 subnet of the Yggdrasil node. This is always a /64. -func (c *Core) GetSubnet() *subnet { - return address_subnetForNodeID(c.GetNodeID()) +func (c *Core) GetSubnet() *net.IPNet { + subnet := address_subnetForNodeID(c.GetNodeID())[:] + subnet = append(subnet, 0, 0, 0, 0, 0, 0, 0, 0) + return &net.IPNet{ IP: subnet, Mask: net.CIDRMask(64, 128) } } // Sets the output logger of the Yggdrasil node after startup. This may be diff --git a/src/yggdrasil/multicast.go b/src/yggdrasil/multicast.go index f3355916..c86159c7 100644 --- a/src/yggdrasil/multicast.go +++ b/src/yggdrasil/multicast.go @@ -16,10 +16,10 @@ type multicast struct { func (m *multicast) init(core *Core) { m.core = core m.groupAddr = "[ff02::114]:9001" - // Check if we've been given any expressions - if len(m.core.ifceExpr) == 0 { - return - } + // Check if we've been given any expressions + if len(m.core.ifceExpr) == 0 { + return + } // Ask the system for network interfaces allifaces, err := net.Interfaces() if err != nil { @@ -72,7 +72,7 @@ func (m *multicast) start() error { go m.listen() go m.announce() } - return nil + return nil } func (m *multicast) announce() { diff --git a/src/yggdrasil/tcp.go b/src/yggdrasil/tcp.go index 17d52468..c152d0d1 100644 --- a/src/yggdrasil/tcp.go +++ b/src/yggdrasil/tcp.go @@ -302,14 +302,14 @@ func (iface *tcpInterface) reader(sock net.Conn, in func([]byte)) { sock.SetReadDeadline(timeout) n, err := sock.Read(bs[len(frag):]) if err != nil || n == 0 { - // iface.core.log.Println(err) + // iface.core.log.Println(err) break } frag = bs[:len(frag)+n] for { msg, ok, err := tcp_chop_msg(&frag) if err != nil { - // iface.core.log.Println(err) + // iface.core.log.Println(err) return } if !ok { diff --git a/yggdrasil.go b/yggdrasil.go index 4f98b6a8..8a8ab2ef 100644 --- a/yggdrasil.go +++ b/yggdrasil.go @@ -4,7 +4,6 @@ import "encoding/hex" import "flag" import "fmt" import "io/ioutil" -import "net" import "os" import "os/signal" import "syscall" @@ -238,11 +237,10 @@ func main() { }() // Make some nice output that tells us what our IPv6 address and subnet are. // This is just logged to stdout for the user. - address := (*n.core.GetAddress())[:] - subnet := (*n.core.GetSubnet())[:] - subnet = append(subnet, 0, 0, 0, 0, 0, 0, 0, 0) - logger.Printf("Your IPv6 address is %s", net.IP(address).String()) - logger.Printf("Your IPv6 subnet is %s/64", net.IP(subnet).String()) + address := n.core.GetAddress() + subnet := n.core.GetSubnet() + logger.Printf("Your IPv6 address is %s", address.String()) + logger.Printf("Your IPv6 subnet is %s", subnet.String()) // Catch interrupts from the operating system to exit gracefully. c := make(chan os.Signal, 1) signal.Notify(c, os.Interrupt, syscall.SIGTERM)