From 9c37fc1a5fbd4f4b11de0ef5974ffb0c53e08c24 Mon Sep 17 00:00:00 2001 From: Adam Ierymenko Date: Wed, 25 Sep 2019 13:32:46 -0700 Subject: [PATCH] . --- go/pkg/zerotier/multicastgroup.go | 7 +++++++ go/pkg/zerotier/network.go | 6 ++++++ go/pkg/zerotier/node.go | 6 ++++++ 3 files changed, 19 insertions(+) diff --git a/go/pkg/zerotier/multicastgroup.go b/go/pkg/zerotier/multicastgroup.go index 62832d4a7..f659c2426 100644 --- a/go/pkg/zerotier/multicastgroup.go +++ b/go/pkg/zerotier/multicastgroup.go @@ -13,12 +13,19 @@ package zerotier +import "fmt" + // MulticastGroup represents a normal Ethernet multicast or broadcast address plus 32 additional ZeroTier-specific bits type MulticastGroup struct { MAC MAC ADI uint32 } +// String returns MAC#ADI +func (mg *MulticastGroup) String() string { + return fmt.Sprintf("%s#%.8x", mg.MAC.String(), mg.ADI) +} + // Less returns true if this MulticastGroup is less than another. func (mg *MulticastGroup) Less(mg2 *MulticastGroup) bool { return (mg.MAC < mg2.MAC || (mg.MAC == mg2.MAC && mg.ADI < mg2.ADI)) diff --git a/go/pkg/zerotier/network.go b/go/pkg/zerotier/network.go index 5db7afe82..d0ebc2449 100644 --- a/go/pkg/zerotier/network.go +++ b/go/pkg/zerotier/network.go @@ -196,6 +196,7 @@ func (n *Network) SetLocalSettings(ls *NetworkLocalSettings) { n.updateConfig(ni // MulticastSubscribe subscribes to a multicast group func (n *Network) MulticastSubscribe(mg *MulticastGroup) { + n.node.log.Printf("%.16x joined multicast group %s", mg.String()) k := mg.key() n.multicastSubscriptionsLock.Lock() if _, have := n.multicastSubscriptions[k]; have { @@ -209,6 +210,7 @@ func (n *Network) MulticastSubscribe(mg *MulticastGroup) { // MulticastUnsubscribe removes a subscription to a multicast group func (n *Network) MulticastUnsubscribe(mg *MulticastGroup) { + n.node.log.Printf("%.16x left multicast group %s", mg.String()) n.multicastSubscriptionsLock.Lock() delete(n.multicastSubscriptions, mg.key()) n.multicastSubscriptionsLock.Unlock() @@ -297,6 +299,7 @@ func (n *Network) updateConfig(nc *NetworkConfig, ls *NetworkLocalSettings) { k := ipNetToKey(&ip) wantAssignedIPs[k] = true if _, have := haveAssignedIPs[k]; !have { + n.node.log.Printf("%.16x adding managed IP %s", n.ID, ip.String()) n.tap.AddIP(&ip) } } @@ -304,6 +307,7 @@ func (n *Network) updateConfig(nc *NetworkConfig, ls *NetworkLocalSettings) { } for k, ip := range haveAssignedIPs { if _, want := wantAssignedIPs[k]; !want { + n.node.log.Printf("%.16x removing managed IP %s", n.ID, ip.String()) n.tap.RemoveIP(ip) } } @@ -324,6 +328,7 @@ func (n *Network) updateConfig(nc *NetworkConfig, ls *NetworkLocalSettings) { k := r.key() wantManagedRoutes[k] = true if _, have := haveManagedRoutes[k]; !have { + n.node.log.Printf("%.16x adding managed route %s", n.ID, r.Target.String()) n.tap.AddRoute(&r) } } @@ -331,6 +336,7 @@ func (n *Network) updateConfig(nc *NetworkConfig, ls *NetworkLocalSettings) { } for k, r := range haveManagedRoutes { if _, want := wantManagedRoutes[k]; !want { + n.node.log.Printf("%.16x removing managed route %s", n.ID, r.Target.String()) n.tap.RemoveRoute(r) } } diff --git a/go/pkg/zerotier/node.go b/go/pkg/zerotier/node.go index d204a6ad1..a6cdbea9f 100644 --- a/go/pkg/zerotier/node.go +++ b/go/pkg/zerotier/node.go @@ -540,6 +540,7 @@ func (n *Node) AddStaticRoot(id *Identity, addrs []InetAddress) { // RemoveStaticRoot removes a statically defined root server from this node. func (n *Node) RemoveStaticRoot(id *Identity) { + n.log.Printf("removing static root %s", id.String()) ids := C.CString(id.String()) C.ZT_Node_removeStaticRoot(unsafe.Pointer(n.zn), ids) C.free(unsafe.Pointer(ids)) @@ -550,6 +551,7 @@ func (n *Node) RemoveStaticRoot(id *Identity) { // to use if (or until) one can be fetched via DNS. func (n *Node) AddDynamicRoot(dnsName string, locator []byte) { dn := C.CString(dnsName) + n.log.Printf("adding dynamic root %s", dnsName) if len(locator) > 0 { C.ZT_Node_setDynamicRoot(unsafe.Pointer(n.zn), dn, unsafe.Pointer(&locator[0]), C.uint(len(locator))) } else { @@ -560,6 +562,7 @@ func (n *Node) AddDynamicRoot(dnsName string, locator []byte) { // RemoveDynamicRoot removes a dynamic root from this node. func (n *Node) RemoveDynamicRoot(dnsName string) { + n.log.Printf("removing dynamic root %s", dnsName) dn := C.CString(dnsName) C.ZT_Node_removeDynamicRoot(unsafe.Pointer(n.zn), dn) C.free(unsafe.Pointer(dn)) @@ -730,6 +733,9 @@ func (n *Node) stateObjectGet(objType int, id [2]uint64) ([]byte, bool) { } func (n *Node) handleTrace(traceMessage string) { + if len(traceMessage) > 0 { + n.log.Print("TRACE: " + traceMessage) + } } func (n *Node) handleUserMessage(originAddress, messageTypeID uint64, data []byte) {