diff --git a/netconf-service/netconf.cpp b/netconf-service/netconf.cpp index a4f225278..a7e1f257f 100644 --- a/netconf-service/netconf.cpp +++ b/netconf-service/netconf.cpp @@ -298,9 +298,9 @@ int main(int argc,char **argv) netconf["ts"] = buf; netconf["peer"] = peerIdentity.address().toString(); sprintf(buf,"%x",mcb); - netconf["mcb"] = mcb; + netconf["mcb"] = buf; sprintf(buf,"%x",mcd); - netconf["mcd"] = mcd; + netconf["mcd"] = buf; if (!isOpen) { // TODO: handle closed networks, look up private membership, diff --git a/node/Network.hpp b/node/Network.hpp index 3e428ac27..299c4a6dc 100644 --- a/node/Network.hpp +++ b/node/Network.hpp @@ -325,7 +325,10 @@ public: const_iterator mcb(find("mcb")); if (mcb == end()) return ZT_MULTICAST_DEFAULT_PROPAGATION_BREADTH; - return Utils::hexStrToUInt(mcb->second.c_str()); + unsigned int mcb2 = Utils::hexStrToUInt(mcb->second.c_str()); + if (mcb2) + return mcb2; + return ZT_MULTICAST_DEFAULT_PROPAGATION_BREADTH; } /** @@ -336,7 +339,10 @@ public: const_iterator mcd(find("mcd")); if (mcd == end()) return ZT_MULTICAST_DEFAULT_PROPAGATION_DEPTH; - return Utils::hexStrToUInt(mcd->second.c_str()); + unsigned int mcd2 = Utils::hexStrToUInt(mcd->second.c_str()); + if (mcd2) + return mcd2; + return ZT_MULTICAST_DEFAULT_PROPAGATION_DEPTH; } /**