Adam Ierymenko пре 9 година
родитељ
комит
05677f57e2
3 измењених фајлова са 19 додато и 1 уклоњено
  1. 1 0
      .gitignore
  2. 17 0
      mkworld.cpp
  3. 1 1
      node/World.hpp

+ 1 - 0
.gitignore

@@ -31,6 +31,7 @@ Thumbs.db
 /ZeroTierOneInstaller-*
 /examples/docker/zerotier-one
 /examples/docker/test-*.env
+/mkworld
 
 # Miscellaneous file types that we don't want to check in
 *.log

+ 17 - 0
mkworld.cpp

@@ -144,10 +144,27 @@ int main(int argc,char **argv)
 
 	Buffer<ZT_WORLD_MAX_SERIALIZED_LENGTH> outtmp;
 	nw.serialize(outtmp,false);
+	World testw;
+	testw.deserialize(outtmp,0);
+	if (testw != nw) {
+		fprintf(stderr,"FATAL: serialization test failed!"ZT_EOL_S);
+		return 1;
+	}
 	fwrite(outtmp.data(),outtmp.size(),1,stdout);
 	fflush(stdout);
 
 	fprintf(stderr,"INFO: wrote %u bytes to stdout"ZT_EOL_S,outtmp.size());
 
+	fprintf(stderr,ZT_EOL_S);
+	fprintf(stderr,"#define ZT_DEFAULT_WORLD_LENGTH %u"ZT_EOL_S,outtmp.size());
+	fprintf(stderr,"static const unsigned char ZT_DEFAULT_WORLD[ZT_DEFAULT_WORLD_LENGTH] = {");
+	for(unsigned int i=0;i<outtmp.size();++i) {
+		const unsigned char *d = (const unsigned char *)outtmp.data();
+		if (i > 0)
+			fprintf(stderr,",");
+		fprintf(stderr,"0x%.2x",(unsigned int)d[i]);
+	}
+	fprintf(stderr,"};"ZT_EOL_S);
+
 	return 0;
 }

+ 1 - 1
node/World.hpp

@@ -225,7 +225,7 @@ public:
 		return (p - startAt);
 	}
 
-	inline bool operator==(const World &w) const throw() { return ((_id == w._id)&&(_ts == w._ts)&&(_roots == w._roots)); }
+	inline bool operator==(const World &w) const throw() { return ((_id == w._id)&&(_ts == w._ts)&&(_updateSigningKey == w._updateSigningKey)&&(_signature == w._signature)&&(_roots == w._roots)); }
 	inline bool operator!=(const World &w) const throw() { return (!(*this == w)); }
 
 protected: