Browse Source

Fix for netconf advertising of multicast propagation parameters, and defaults in Network.hpp.

Adam Ierymenko 12 years ago
parent
commit
c26b64f24b
2 changed files with 10 additions and 4 deletions
  1. 2 2
      netconf-service/netconf.cpp
  2. 8 2
      node/Network.hpp

+ 2 - 2
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,

+ 8 - 2
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;
 		}
 
 		/**