diff --git a/.gitignore b/.gitignore index b5d71690f..1cb16da59 100755 --- a/.gitignore +++ b/.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 diff --git a/mkworld.cpp b/mkworld.cpp index 2b41d735f..baf693fcb 100644 --- a/mkworld.cpp +++ b/mkworld.cpp @@ -144,10 +144,27 @@ int main(int argc,char **argv) Buffer 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 0) + fprintf(stderr,","); + fprintf(stderr,"0x%.2x",(unsigned int)d[i]); + } + fprintf(stderr,"};"ZT_EOL_S); + return 0; } diff --git a/node/World.hpp b/node/World.hpp index 7ccd2c536..c6d20d842 100644 --- a/node/World.hpp +++ b/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: