소스 검색

Testnet sort of works! spins up supernodes.

Adam Ierymenko 10 년 전
부모
커밋
5c7cd53f13
2개의 변경된 파일17개의 추가작업 그리고 18개의 파일을 삭제
  1. 9 11
      make-mac.mk
  2. 8 7
      testnet.cpp

+ 9 - 11
make-mac.mk

@@ -5,24 +5,29 @@ INCLUDES=
 DEFS=
 LIBS=
 
+include objects.mk
+OBJS+=osnet/BSDRoutingTable.o osnet/OSXEthernetTap.o osnet/OSXEthernetTapFactory.o
+TESTNET_OBJS=testnet/SimNet.o testnet/SimNetSocketManager.o testnet/TestEthernetTap.o testnet/TestEthernetTapFactory.o testnet/TestRoutingTable.o
+
 # Disable codesign since open source users will not have ZeroTier's certs
 CODESIGN=echo
 CODESIGN_CERT=
 
 ifeq ($(ZT_OFFICIAL_RELEASE),1)
+	# For use by ZeroTier Networks -- sign with developer cert
 	ZT_AUTO_UPDATE=1
 	DEFS+=-DZT_OFFICIAL_RELEASE 
 	CODESIGN=codesign
 	CODESIGN_CERT="Developer ID Application: ZeroTier Networks LLC (8ZD9JUCZ4V)"
 endif
+
 ifeq ($(ZT_AUTO_UPDATE),1)
 	DEFS+=-DZT_AUTO_UPDATE 
 endif
 
-# Enable SSE-optimized Salsa20
+# Enable SSE-optimized Salsa20 -- all Intel macs support SSE2
 DEFS+=-DZT_SALSA20_SSE
 
-# "make debug" is a shortcut for this
 ifeq ($(ZT_DEBUG),1)
 #	DEFS+=-DZT_TRACE -DZT_LOG_STDOUT 
 	CFLAGS=-Wall -g -pthread $(INCLUDES) $(DEFS)
@@ -37,10 +42,6 @@ endif
 
 CXXFLAGS=$(CFLAGS) -fno-rtti
 
-include objects.mk
-OBJS+=osnet/BSDRoutingTable.o osnet/OSXEthernetTap.o osnet/OSXEthernetTapFactory.o
-TESTNET_OBJS=testnet/SimNet.o testnet/SimNetSocketManager.o testnet/TestEthernetTap.o testnet/TestEthernetTapFactory.o testnet/TestRoutingTable.o
-
 all: one
 
 one:	$(OBJS) main.o
@@ -53,7 +54,7 @@ selftest: $(OBJS) sefltest.o
 	$(CXX) $(CXXFLAGS) -o zerotier-selftest selftest.o $(OBJS) $(LIBS)
 	$(STRIP) zerotier-selftest
 
-testnet: $(OBJS) $(TESTNET_OBJS) testnet.o
+testnet: $(TESTNET_OBJS) $(OBJS) testnet.o
 	$(CXX) $(CXXFLAGS) -o zerotier-testnet testnet.o $(OBJS) $(TESTNET_OBJS) $(LIBS)
 	$(STRIP) zerotier-testnet
 
@@ -67,10 +68,7 @@ mac-ui: FORCE
 	$(CODESIGN) -vvv "build-ZeroTierUI-release/ZeroTier One.app"
 
 clean:
-	rm -rf *.dSYM testnet.o selftest.o build-* $(OBJS) $(TEST_OBJS) zerotier-* ZeroTierOneInstaller-* "ZeroTier One.zip" "ZeroTier One.dmg"
-
-debug:	FORCE
-	make -j 4 ZT_DEBUG=1
+	rm -rf *.dSYM testnet.o selftest.o build-* $(OBJS) $(TESTNET_OBJS) zerotier-* ZeroTierOneInstaller-* "ZeroTier One.zip" "ZeroTier One.dmg"
 
 # For our use -- builds official signed binary, packages in installer and download DMG
 official: FORCE

+ 8 - 7
testnet.cpp

@@ -40,6 +40,7 @@
 #include "node/Identity.hpp"
 #include "node/Thread.hpp"
 #include "node/CMWC4096.hpp"
+#include "node/Dictionary.hpp"
 
 #include "testnet/SimNet.hpp"
 #include "testnet/SimNetSocketManager.hpp"
@@ -136,9 +137,9 @@ static Identity makeNodeHome(bool super)
 	mkdir(path.c_str(),0700);
 #endif
 
-	if (!Utils::writeFile((path + ZT_PATH_SEPARATOR_S + "identity.secret"),id.toString(true)))
+	if (!Utils::writeFile((path + ZT_PATH_SEPARATOR_S + "identity.secret").c_str(),id.toString(true)))
 		return Identity();
-	if (!Utils::writeFile((path + ZT_PATH_SEPARATOR_S + "identity.public"),id.toString(false)))
+	if (!Utils::writeFile((path + ZT_PATH_SEPARATOR_S + "identity.public").c_str(),id.toString(false)))
 		return Identity();
 
 	return id;
@@ -180,8 +181,8 @@ static std::vector<Address> initSupernodes()
 
 	for(std::vector< std::pair<Identity,InetAddress> >::iterator i(snids.begin());i!=snids.end();++i) {
 		SimNode *n = new SimNode(net,(basePath + ZT_PATH_SEPARATOR_S + "S" + i->first.address().toString()),rootTopology.c_str(),true,i->second);
-		nodes[id.address()] = n;
-		newNodes.push_back(id.address());
+		nodes[i->first.address()] = n;
+		newNodes.push_back(i->first.address());
 	}
 
 	return newNodes;
@@ -221,7 +222,7 @@ static void doHelp(const std::vector<std::string> &cmd)
 	printf("---------- listnetworks <address/*>"ZT_EOL_S);
 	printf("---------- listpeers <address/*>"ZT_EOL_S);
 	printf("---------- alltoall"ZT_EOL_S);
-	printf("---------- quit"ZT_EOL_S)
+	printf("---------- quit"ZT_EOL_S);
 }
 
 static void doMKSN(const std::vector<std::string> &cmd)
@@ -231,7 +232,7 @@ static void doMKSN(const std::vector<std::string> &cmd)
 		return;
 	}
 	if (nodes.size() > 0) {
-		printf("---------- mksn error: mksn can only be called once (network already exists)"ZT_EOL_S,(unsigned int)nodes.size());
+		printf("---------- mksn error: mksn can only be called once (network already exists)"ZT_EOL_S);
 		return;
 	}
 
@@ -304,7 +305,7 @@ int main(int argc,char **argv)
 	printf(ZT_EOL_S);
 
 	{
-		printf("---------- scanning '%s' for existing network..."ZT_EOL_S);
+		printf("---------- scanning '%s' for existing network..."ZT_EOL_S,basePath.c_str());
 		std::vector<Address> snodes(initSupernodes());
 		if (snodes.empty()) {
 			printf("---------- no existing network found; use 'mksn' to create one."ZT_EOL_S);