diff --git a/include/ZeroTierSockets.h b/include/ZeroTierSockets.h index b8776ca..e95163a 100644 --- a/include/ZeroTierSockets.h +++ b/include/ZeroTierSockets.h @@ -924,7 +924,7 @@ ZTS_API int ZTCALL zts_central_api_get_self(int *http_response_code); * * @return Standard HTTP response codes. */ -ZTS_API int ZTCALL zts_central_api_get_network(int *http_response_code, int64_t nwid); +ZTS_API int ZTCALL zts_central_api_get_network(int *http_response_code, uint64_t nwid); /** * @brief Update or create a Network. @@ -936,7 +936,7 @@ ZTS_API int ZTCALL zts_central_api_get_network(int *http_response_code, int64_t * * @return Standard HTTP response codes. */ -ZTS_API int ZTCALL zts_central_api_update_network(int *http_response_code, int64_t nwid); +ZTS_API int ZTCALL zts_central_api_update_network(int *http_response_code, uint64_t nwid); /** * @brief Delete a Network. @@ -946,7 +946,7 @@ ZTS_API int ZTCALL zts_central_api_update_network(int *http_response_code, int64 * * @return Standard HTTP response codes. */ -ZTS_API int ZTCALL zts_central_api_delete_network(int *http_response_code, int64_t nwid); +ZTS_API int ZTCALL zts_central_api_delete_network(int *http_response_code, uint64_t nwid); /** * @brief Get All Viewable Networks. @@ -961,7 +961,7 @@ ZTS_API int ZTCALL zts_central_api_get_networks(int *http_response_code); * * @return Standard HTTP response codes. */ -ZTS_API int ZTCALL zts_central_api_get_member(int *http_response_code, int64_t nwid, int64_t nodeid); +ZTS_API int ZTCALL zts_central_api_get_member(int *http_response_code, int64_t nwid, uint64_t nodeid); /** * @brief Update or add a Member. @@ -970,7 +970,7 @@ ZTS_API int ZTCALL zts_central_api_get_member(int *http_response_code, int64_t n * * @return Standard HTTP response codes. */ -ZTS_API int ZTCALL zts_central_api_update_member(int *http_response_code, int64_t nwid, int64_t nodeid, char *post_data); +ZTS_API int ZTCALL zts_central_api_update_member(int *http_response_code, uint64_t nwid, uint64_t nodeid, char *post_data); /** * @brief Authorize or (De)authorize a node on a network. This operation is idempotent. @@ -980,7 +980,7 @@ ZTS_API int ZTCALL zts_central_api_update_member(int *http_response_code, int64_ * @param is_authed Boolean value for whether this node should be authorized * @return Standard HTTP response codes. ZTS_ERR_ARG invalid argument specified. */ -ZTS_API int ZTCALL zts_set_node_auth(int *http_response_code, int64_t nwid, int64_t nodeid, int8_t is_authed); +ZTS_API int ZTCALL zts_set_node_auth(int *http_response_code, uint64_t nwid, uint64_t nodeid, uint64_t is_authed); /** * @brief Get All Members of a Network. @@ -989,7 +989,7 @@ ZTS_API int ZTCALL zts_set_node_auth(int *http_response_code, int64_t nwid, int6 * * @return Standard HTTP response codes. */ -ZTS_API int ZTCALL zts_central_api_get_members_of_network(int *http_response_code, int64_t nwid); +ZTS_API int ZTCALL zts_central_api_get_members_of_network(int *http_response_code, uint64_t nwid); #endif // NO_CENTRAL_API diff --git a/src/Central.cpp b/src/Central.cpp index 35a5bcd..e43ed53 100644 --- a/src/Central.cpp +++ b/src/Central.cpp @@ -223,21 +223,21 @@ int zts_central_api_get_self(int *http_response_code) return _central_req(HTTP_GET, central_api_url, (char*)"/api/self", central_api_token, http_response_code, NULL); } -int zts_central_api_get_network(int *http_response_code, int64_t nwid) +int zts_central_api_get_network(int *http_response_code, uint64_t nwid) { char req[64]; sprintf(req, "/api/network/%llx", nwid); return _central_req(HTTP_GET, central_api_url, req, central_api_token, http_response_code, NULL); } -int zts_central_api_update_network(int *http_response_code, int64_t nwid) +int zts_central_api_update_network(int *http_response_code, uint64_t nwid) { char req[64]; sprintf(req, "/api/network/%llx", nwid); return _central_req(HTTP_POST, central_api_url, req, central_api_token, http_response_code, NULL); } -int zts_central_api_delete_network(int *http_response_code, int64_t nwid) +int zts_central_api_delete_network(int *http_response_code, uint64_t nwid) { char req[64]; sprintf(req, "/api/network/%llx", nwid); @@ -249,7 +249,7 @@ int zts_central_api_get_networks(int *http_response_code) return _central_req(HTTP_GET, central_api_url, (char*)"/api/network", central_api_token, http_response_code, NULL); } -int zts_central_api_get_member(int *http_response_code, int64_t nwid, int64_t nodeid) +int zts_central_api_get_member(int *http_response_code, uint64_t nwid, uint64_t nodeid) { if (nwid == 0 || nodeid == 0) { return ZTS_ERR_ARG; @@ -259,7 +259,7 @@ int zts_central_api_get_member(int *http_response_code, int64_t nwid, int64_t no return _central_req(HTTP_GET, central_api_url, req, central_api_token, http_response_code, NULL); } -int zts_central_api_update_member(int *http_response_code, int64_t nwid, int64_t nodeid, char *post_data) +int zts_central_api_update_member(int *http_response_code, uuint64_t nwid, uuint64_t nodeid, char *post_data) { if (nwid == 0 || nodeid == 0 || post_data == NULL) { return ZTS_ERR_ARG; @@ -269,7 +269,7 @@ int zts_central_api_update_member(int *http_response_code, int64_t nwid, int64_t return _central_req(HTTP_POST, central_api_url, req, central_api_token, http_response_code, post_data); } -int zts_set_node_auth(int *http_response_code, int64_t nwid, int64_t nodeid, int8_t is_authed) +int zts_set_node_auth(int *http_response_code, uint64_t nwid, uint64_t nodeid, int8_t is_authed) { if (is_authed != 0 && is_authed != 1) { return ZTS_ERR_ARG; @@ -284,7 +284,7 @@ int zts_set_node_auth(int *http_response_code, int64_t nwid, int64_t nodeid, int return zts_central_api_update_member(http_response_code, nwid, nodeid, config_data); } -int zts_central_api_get_members_of_network(int *http_response_code, int64_t nwid) +int zts_central_api_get_members_of_network(int *http_response_code, uint64_t nwid) { char req[64]; sprintf(req, "/api/network/%llx/member", nwid); diff --git a/src/Controls.cpp b/src/Controls.cpp index 00a9f9c..fc62ca7 100644 --- a/src/Controls.cpp +++ b/src/Controls.cpp @@ -132,9 +132,16 @@ int zts_start_with_identity(const char *key_pair_str, uint16_t key_buf_len, // an application restart is required now return ZTS_ERR_SERVICE; } - if (port < 0 || port > 0xFFFF) { + #ifdef SDK_JNI + _userEventCallbackFunc = callback; +#else + _userEventCallbackFunc = callback; +#endif + if (!_isCallbackRegistered()) { + // Must have a callback return ZTS_ERR_ARG; } + serviceParameters *params = new serviceParameters(); params->port = port; params->path = ""; @@ -147,18 +154,10 @@ int zts_start_with_identity(const char *key_pair_str, uint16_t key_buf_len, } } if (!id) { + delete params; return ZTS_ERR_ARG; } -#ifdef SDK_JNI - _userEventCallbackFunc = callback; -#else - _userEventCallbackFunc = callback; -#endif - if (!_isCallbackRegistered()) { - // Must have a callback - return ZTS_ERR_ARG; - } int err; int retval = ZTS_ERR_OK; @@ -261,11 +260,7 @@ int zts_start(const char *path, void (*callback)(void *), uint16_t port) if (!path) { return ZTS_ERR_ARG; } - if (port < 0 || port > 0xFFFF) { - return ZTS_ERR_ARG; - } serviceParameters *params = new serviceParameters(); - params->port = port; params->path = std::string(path); @@ -357,6 +352,7 @@ JNIEXPORT void JNICALL Java_com_zerotier_libzt_ZeroTier_stop( } #endif +// TODO: Make sure this woks with user-provided identities int zts_restart() { serviceLock.lock(); diff --git a/src/NodeService.cpp b/src/NodeService.cpp index 0522a54..fe237ec 100644 --- a/src/NodeService.cpp +++ b/src/NodeService.cpp @@ -67,25 +67,6 @@ uint8_t disableLocalStorage; // Off by default typedef VirtualTap EthernetTap; -static std::string _trimString(const std::string &s) -{ - unsigned long end = (unsigned long)s.length(); - while (end) { - char c = s[end - 1]; - if ((c == ' ')||(c == '\r')||(c == '\n')||(!c)||(c == '\t')) - --end; - else break; - } - unsigned long start = 0; - while (start < end) { - char c = s[start]; - if ((c == ' ')||(c == '\r')||(c == '\n')||(!c)||(c == '\t')) - ++start; - else break; - } - return s.substr(start,end - start); -} - class NodeServiceImpl; static int SnodeVirtualNetworkConfigFunction(ZT_Node *node,void *uptr,void *tptr,uint64_t nwid,void **nuptr,enum ZT_VirtualNetworkConfigOperation op,const ZT_VirtualNetworkConfig *nwconf); @@ -120,9 +101,9 @@ public: Node *_node; bool _updateAutoApply; unsigned int _multipathMode = 0; - unsigned int _primaryPort; + unsigned int _primaryPort = 0; unsigned int _secondaryPort = 0; - unsigned int _tertiaryPort; + unsigned int _tertiaryPort = 0; volatile unsigned int _udpPortPickerCounter; // @@ -253,7 +234,7 @@ public: #endif } - virtual ReasonForTermination run() + virtual ReasonForTermination run() override { try { { @@ -472,19 +453,19 @@ public: return _termReason; } - virtual ReasonForTermination reasonForTermination() const + virtual ReasonForTermination reasonForTermination() const override { Mutex::Lock _l(_termReason_m); return _termReason; } - virtual std::string fatalErrorMessage() const + virtual std::string fatalErrorMessage() const override { Mutex::Lock _l(_termReason_m); return _fatalErrorMessage; } - virtual std::string portDeviceName(uint64_t nwid) const + virtual std::string portDeviceName(uint64_t nwid) const override { Mutex::Lock _l(_nets_m); std::map::const_iterator n(_nets.find(nwid)); @@ -498,7 +479,7 @@ public: return _homePath; } - void getRoutes(uint64_t nwid, void *routeArray, unsigned int *numRoutes) + void getRoutes(uint64_t nwid, void *routeArray, unsigned int *numRoutes) override { Mutex::Lock _l(_nets_m); NetworkState &n = _nets[nwid]; @@ -509,12 +490,12 @@ public: } } - virtual Node *getNode() + virtual Node *getNode() override { return _node; } - virtual void terminate() + virtual void terminate() override { _run_m.lock(); _run = false; @@ -522,7 +503,7 @@ public: _phy.whack(); } - virtual bool getNetworkSettings(const uint64_t nwid,NetworkSettings &settings) const + virtual bool getNetworkSettings(const uint64_t nwid,NetworkSettings &settings) const override { Mutex::Lock _l(_nets_m); std::map::const_iterator n(_nets.find(nwid)); @@ -814,12 +795,12 @@ public: // Copy and convert address structures nd->assignedAddressCount = n.config.assignedAddressCount; - for (int i=0; iassignedAddresses[i]), &(n.config.assignedAddresses[i])); } nd->routeCount = n.config.routeCount; - for (int i=0; iroutes[i].target), &(n.config.routes[i].target)); native_ss_to_zts_ss(&(nd->routes[i].via), &(n.config.routes[i].via)); nd->routes[i].flags = n.config.routes[i].flags; @@ -844,7 +825,7 @@ public: for(std::map::iterator n(_nets.begin());n!=_nets.end();++n) { int mostRecentStatus = n->second.config.status; VirtualTap *tap = n->second.tap; - uint64_t nwid = n->first; + // uint64_t nwid = n->first; if (n->second.tap->_networkStatus == mostRecentStatus) { continue; // No state change } @@ -890,26 +871,26 @@ public: } if (pl->peers[i].pathCount == 0) { bShouldCopyPeerInfo=true; - eventCode = ZTS_EVENT_PEER_RELAY, (void*)pd; + eventCode = ZTS_EVENT_PEER_RELAY; } } // Previously known peer, update status else { if (peerCache[pl->peers[i].address] < pl->peers[i].pathCount) { bShouldCopyPeerInfo=true; - eventCode = ZTS_EVENT_PEER_PATH_DISCOVERED, (void*)pd; + eventCode = ZTS_EVENT_PEER_PATH_DISCOVERED; } if (peerCache[pl->peers[i].address] > pl->peers[i].pathCount) { bShouldCopyPeerInfo=true; - eventCode = ZTS_EVENT_PEER_PATH_DEAD, (void*)pd; + eventCode = ZTS_EVENT_PEER_PATH_DEAD; } if (peerCache[pl->peers[i].address] == 0 && pl->peers[i].pathCount > 0) { bShouldCopyPeerInfo=true; - eventCode = ZTS_EVENT_PEER_DIRECT, (void*)pd; + eventCode = ZTS_EVENT_PEER_DIRECT; } if (peerCache[pl->peers[i].address] > 0 && pl->peers[i].pathCount == 0) { bShouldCopyPeerInfo=true; - eventCode = ZTS_EVENT_PEER_RELAY, (void*)pd; + eventCode = ZTS_EVENT_PEER_RELAY; } } if (bShouldCopyPeerInfo) { @@ -928,17 +909,17 @@ public: _node->freeQueryResult((void *)pl); } - inline void join(uint64_t nwid) + inline void join(uint64_t nwid) override { _node->join(nwid, NULL, NULL); } - inline void leave(uint64_t nwid) + inline void leave(uint64_t nwid) override { _node->leave(nwid, NULL, NULL); } - inline void getIdentity(char *key_pair_str, uint16_t *key_buf_len) + inline void getIdentity(char *key_pair_str, uint16_t *key_buf_len) override { if (key_pair_str == NULL || *key_buf_len < ZT_IDENTITY_STRING_BUFFER_LENGTH) { return; @@ -1051,7 +1032,7 @@ public: inline int nodeStateGetFunction(enum ZT_StateObjectType type,const uint64_t id[2],void *data,unsigned int maxlen) { char p[4096]; - int keylen = 0; + unsigned int keylen = 0; switch(type) { case ZT_STATE_OBJECT_IDENTITY_PUBLIC: if (disableLocalStorage) { @@ -1309,25 +1290,57 @@ public: } }; -static int SnodeVirtualNetworkConfigFunction(ZT_Node *node,void *uptr,void *tptr,uint64_t nwid,void **nuptr,enum ZT_VirtualNetworkConfigOperation op,const ZT_VirtualNetworkConfig *nwconf) -{ return reinterpret_cast(uptr)->nodeVirtualNetworkConfigFunction(nwid,nuptr,op,nwconf); } -static void SnodeEventCallback(ZT_Node *node,void *uptr,void *tptr,enum ZT_Event event,const void *metaData) -{ reinterpret_cast(uptr)->nodeEventCallback(event,metaData); } -static void SnodeStatePutFunction(ZT_Node *node,void *uptr,void *tptr,enum ZT_StateObjectType type,const uint64_t id[2],const void *data,int len) -{ reinterpret_cast(uptr)->nodeStatePutFunction(type,id,data,len); } -static int SnodeStateGetFunction(ZT_Node *node,void *uptr,void *tptr,enum ZT_StateObjectType type,const uint64_t id[2],void *data,unsigned int maxlen) -{ return reinterpret_cast(uptr)->nodeStateGetFunction(type,id,data,maxlen); } -static int SnodeWirePacketSendFunction(ZT_Node *node,void *uptr,void *tptr,int64_t localSocket,const struct sockaddr_storage *addr,const void *data,unsigned int len,unsigned int ttl) -{ return reinterpret_cast(uptr)->nodeWirePacketSendFunction(localSocket,addr,data,len,ttl); } -static void SnodeVirtualNetworkFrameFunction(ZT_Node *node,void *uptr,void *tptr,uint64_t nwid,void **nuptr,uint64_t sourceMac,uint64_t destMac,unsigned int etherType,unsigned int vlanId,const void *data,unsigned int len) -{ reinterpret_cast(uptr)->nodeVirtualNetworkFrameFunction(nwid,nuptr,sourceMac,destMac,etherType,vlanId,data,len); } -static int SnodePathCheckFunction(ZT_Node *node,void *uptr,void *tptr,uint64_t ztaddr,int64_t localSocket,const struct sockaddr_storage *remoteAddr) -{ return reinterpret_cast(uptr)->nodePathCheckFunction(ztaddr,localSocket,remoteAddr); } -static int SnodePathLookupFunction(ZT_Node *node,void *uptr,void *tptr,uint64_t ztaddr,int family,struct sockaddr_storage *result) -{ return reinterpret_cast(uptr)->nodePathLookupFunction(ztaddr,family,result); } -static void StapFrameHandler(void *uptr,void *tptr,uint64_t nwid,const MAC &from,const MAC &to,unsigned int etherType,unsigned int vlanId,const void *data,unsigned int len) -{ reinterpret_cast(uptr)->tapFrameHandler(nwid,from,to,etherType,vlanId,data,len); } +static int SnodeVirtualNetworkConfigFunction(ZT_Node *node,void *uptr,void *tptr,uint64_t nwid, + void **nuptr,enum ZT_VirtualNetworkConfigOperation op,const ZT_VirtualNetworkConfig *nwconf) +{ + return reinterpret_cast(uptr)->nodeVirtualNetworkConfigFunction(nwid,nuptr,op,nwconf); +} +static void SnodeEventCallback(ZT_Node *node,void *uptr,void *tptr,enum ZT_Event event,const void *metaData) +{ + reinterpret_cast(uptr)->nodeEventCallback(event,metaData); +} + +static void SnodeStatePutFunction(ZT_Node *node,void *uptr,void *tptr,enum ZT_StateObjectType type, + const uint64_t id[2],const void *data,int len) +{ + reinterpret_cast(uptr)->nodeStatePutFunction(type,id,data,len); +} + +static int SnodeStateGetFunction(ZT_Node *node,void *uptr,void *tptr,enum ZT_StateObjectType type, + const uint64_t id[2],void *data,unsigned int maxlen) +{ + return reinterpret_cast(uptr)->nodeStateGetFunction(type,id,data,maxlen); +} + +static int SnodeWirePacketSendFunction(ZT_Node *node,void *uptr,void *tptr,int64_t localSocket, + const struct sockaddr_storage *addr,const void *data,unsigned int len,unsigned int ttl) +{ + return reinterpret_cast(uptr)->nodeWirePacketSendFunction(localSocket,addr,data,len,ttl); +} + +static void SnodeVirtualNetworkFrameFunction(ZT_Node *node,void *uptr,void *tptr,uint64_t nwid, + void **nuptr,uint64_t sourceMac,uint64_t destMac,unsigned int etherType,unsigned int vlanId,const void *data,unsigned int len) +{ + reinterpret_cast(uptr)->nodeVirtualNetworkFrameFunction(nwid,nuptr,sourceMac,destMac,etherType,vlanId,data,len); +} + +static int SnodePathCheckFunction(ZT_Node *node,void *uptr,void *tptr,uint64_t ztaddr,int64_t localSocket, + const struct sockaddr_storage *remoteAddr) +{ + return reinterpret_cast(uptr)->nodePathCheckFunction(ztaddr,localSocket,remoteAddr); +} + +static int SnodePathLookupFunction(ZT_Node *node,void *uptr,void *tptr,uint64_t ztaddr,int family,struct sockaddr_storage *result) +{ + return reinterpret_cast(uptr)->nodePathLookupFunction(ztaddr,family,result); +} + +static void StapFrameHandler(void *uptr,void *tptr,uint64_t nwid,const MAC &from,const MAC &to, + unsigned int etherType,unsigned int vlanId,const void *data,unsigned int len) +{ + reinterpret_cast(uptr)->tapFrameHandler(nwid,from,to,etherType,vlanId,data,len); +} std::string NodeService::platformDefaultHomePath() { diff --git a/src/Sockets.cpp b/src/Sockets.cpp index 4ce7cdb..8c8df85 100644 --- a/src/Sockets.cpp +++ b/src/Sockets.cpp @@ -458,7 +458,7 @@ JNIEXPORT int JNICALL Java_com_zerotier_libzt_ZeroTier_ioctl( ssize_t zts_send(int fd, const void *buf, size_t len, int flags) { - if (!buf || len <= 0) { + if (!buf) { return ZTS_ERR_ARG; } if (!(_serviceStateFlags & ZTS_STATE_NET_SERVICE_RUNNING)) { @@ -480,7 +480,7 @@ JNIEXPORT jint JNICALL Java_com_zerotier_libzt_ZeroTier_send( ssize_t zts_sendto(int fd, const void *buf, size_t len, int flags, const struct zts_sockaddr *addr,zts_socklen_t addrlen) { - if (!addr || !buf || len <= 0) { + if (!addr || !buf) { return ZTS_ERR_ARG; } if (addrlen > (int)sizeof(struct zts_sockaddr_storage) || addrlen < (int)sizeof(struct zts_sockaddr_in)) { @@ -634,7 +634,7 @@ ssize_t zts_readv(int s, const struct zts_iovec *iov, int iovcnt) ssize_t zts_write(int fd, const void *buf, size_t len) { - if (!buf || len <= 0) { + if (!buf) { return ZTS_ERR_ARG; } if (!(_serviceStateFlags & ZTS_STATE_NET_SERVICE_RUNNING)) { diff --git a/src/VirtualTap.cpp b/src/VirtualTap.cpp index 45eb853..35344c4 100644 --- a/src/VirtualTap.cpp +++ b/src/VirtualTap.cpp @@ -129,7 +129,7 @@ bool VirtualTap::hasIpv4Addr() std::vector::iterator it(_ips.begin()); while (it != _ips.end()) { if ((*it).isV4()) { return true; } - it++; + ++it; } return false; } @@ -140,7 +140,7 @@ bool VirtualTap::hasIpv6Addr() std::vector::iterator it(_ips.begin()); while (it != _ips.end()) { if ((*it).isV6()) { return true; } - it++; + ++it; } return false; } @@ -223,7 +223,6 @@ void VirtualTap::scanMulticastGroups(std::vector &added, newGroups.push_back(MulticastGroup::deriveMulticastGroupForAddressResolution(*ip)); std::sort(newGroups.begin(),newGroups.end()); - std::unique(newGroups.begin(),newGroups.end()); for (std::vector::iterator m(newGroups.begin());m!=newGroups.end();++m) { if (!std::binary_search(_multicastGroups.begin(),_multicastGroups.end(),*m)) @@ -510,6 +509,7 @@ bool _lwip_is_netif_up(void *n) return result; } +/* static struct zts_netif_details *_lwip_prepare_netif_status_msg(struct netif *n) { if (!n || !n->state) { @@ -560,6 +560,7 @@ static void _netif_link_callback(struct netif *n) _enqueueEvent(ZTS_EVENT_NETIF_LINK_DOWN, (void*)_lwip_prepare_netif_status_msg(n)); } } +*/ static err_t _netif_init4(struct netif *n) { @@ -613,7 +614,6 @@ static err_t _netif_init6(struct netif *n) void _lwip_init_interface(void *tapref, const InetAddress &ip) { - char ipbuf[INET6_ADDRSTRLEN]; char macbuf[ZTS_MAC_ADDRSTRLEN]; VirtualTap *vtap = (VirtualTap*)tapref; @@ -634,7 +634,6 @@ void _lwip_init_interface(void *tapref, const InetAddress &ip) netif_set_remove_callback(n, _netif_remove_callback); netif_set_link_callback(n, _netif_link_callback); */ - char nmbuf[INET6_ADDRSTRLEN]; static ip4_addr_t ip4, netmask, gw; IP4_ADDR(&gw,127,0,0,1); ip4.addr = *((u32_t *)ip.rawIpData()); @@ -646,8 +645,12 @@ void _lwip_init_interface(void *tapref, const InetAddress &ip) snprintf(macbuf, ZTS_MAC_ADDRSTRLEN, "%02x:%02x:%02x:%02x:%02x:%02x", n->hwaddr[0], n->hwaddr[1], n->hwaddr[2], n->hwaddr[3], n->hwaddr[4], n->hwaddr[5]); - //DEBUG_INFO("initialized netif=%p as [mac=%s, addr=%s, nm=%s, tap=%p]",n, - // macbuf, ip.toString(ipbuf), ip.netmask().toString(nmbuf), vtap); + /* + char nmbuf[INET6_ADDRSTRLEN]; + char ipbuf[INET6_ADDRSTRLEN]; + DEBUG_INFO("initialized netif=%p as [mac=%s, addr=%s, nm=%s, tap=%p]",n, + macbuf, ip.toString(ipbuf), ip.netmask().toString(nmbuf), vtap); + */ } if (ip.isV6()) { if (vtap->netif6) { @@ -681,8 +684,10 @@ void _lwip_init_interface(void *tapref, const InetAddress &ip) snprintf(macbuf, ZTS_MAC_ADDRSTRLEN, "%02x:%02x:%02x:%02x:%02x:%02x", n->hwaddr[0], n->hwaddr[1], n->hwaddr[2], n->hwaddr[3], n->hwaddr[4], n->hwaddr[5]); - //DEBUG_INFO("initialized netif=%p as [mac=%s, addr=%s, tap=%p]", n, - // macbuf, ip.toString(ipbuf), vtap); + /* + DEBUG_INFO("initialized netif=%p as [mac=%s, addr=%s, tap=%p]", n, + macbuf, ip.toString(ipbuf), vtap); + */ } }