mirror of
https://github.com/zerotier/ZeroTierOne.git
synced 2025-01-18 02:40:13 +00:00
Ground work for reincorporating software updater for select platforms.
This commit is contained in:
parent
e285a6e75f
commit
b6698d8415
@ -5,9 +5,9 @@
|
|||||||
|
|
||||||
export PATH=/bin:/usr/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/sbin
|
export PATH=/bin:/usr/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/sbin
|
||||||
|
|
||||||
enabled=`system_profiler SPNetworkDataType|grep "HTTP Proxy Enabled"|awk {'sub(/^.*:[ \t]*/, "", $0); print $0;'}`
|
enabled=`system_profiler SPNetworkDataType|grep "HTTP Proxy Enabled"|awk {'sub(/^.*:[ \t]*/, "", $0); print $0;'} 2>/dev/null`
|
||||||
port=`system_profiler SPNetworkDataType|grep "HTTP Proxy Port"|awk {'sub(/^.*:[ \t]*/, "", $0); print $0;'}`
|
port=`system_profiler SPNetworkDataType|grep "HTTP Proxy Port"|awk {'sub(/^.*:[ \t]*/, "", $0); print $0;'} 2>/dev/null`
|
||||||
serv=`system_profiler SPNetworkDataType|grep "HTTP Proxy Server"|awk {'sub(/^.*:[ \t]*/, "", $0); print $0;'}`
|
serv=`system_profiler SPNetworkDataType|grep "HTTP Proxy Server"|awk {'sub(/^.*:[ \t]*/, "", $0); print $0;'} 2>/dev/null`
|
||||||
|
|
||||||
if [ "$enabled" = "Yes" ]; then
|
if [ "$enabled" = "Yes" ]; then
|
||||||
if [ "$serv" ]; then
|
if [ "$serv" ]; then
|
||||||
|
20
make-mac.mk
20
make-mac.mk
@ -13,18 +13,13 @@ OBJS+=osdep/OSXEthernetTap.o
|
|||||||
CODESIGN=echo
|
CODESIGN=echo
|
||||||
CODESIGN_CERT=
|
CODESIGN_CERT=
|
||||||
|
|
||||||
|
# For internal use only -- signs everything with ZeroTier's developer cert
|
||||||
ifeq ($(ZT_OFFICIAL_RELEASE),1)
|
ifeq ($(ZT_OFFICIAL_RELEASE),1)
|
||||||
# For use by ZeroTier Networks -- sign with developer cert
|
DEFS+=-DZT_OFFICIAL_RELEASE -DZT_AUTO_UPDATE
|
||||||
ZT_AUTO_UPDATE=1
|
|
||||||
DEFS+=-DZT_OFFICIAL_RELEASE
|
|
||||||
CODESIGN=codesign
|
CODESIGN=codesign
|
||||||
CODESIGN_CERT="Developer ID Application: ZeroTier Networks LLC (8ZD9JUCZ4V)"
|
CODESIGN_CERT="Developer ID Application: ZeroTier Networks LLC (8ZD9JUCZ4V)"
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(ZT_AUTO_UPDATE),1)
|
|
||||||
DEFS+=-DZT_AUTO_UPDATE
|
|
||||||
endif
|
|
||||||
|
|
||||||
# Build with ZT_ENABLE_NETWORK_CONTROLLER=1 to build with the Sqlite network controller
|
# Build with ZT_ENABLE_NETWORK_CONTROLLER=1 to build with the Sqlite network controller
|
||||||
ifeq ($(ZT_ENABLE_NETWORK_CONTROLLER),1)
|
ifeq ($(ZT_ENABLE_NETWORK_CONTROLLER),1)
|
||||||
DEFS+=-DZT_ENABLE_NETWORK_CONTROLLER
|
DEFS+=-DZT_ENABLE_NETWORK_CONTROLLER
|
||||||
@ -35,6 +30,7 @@ endif
|
|||||||
# Enable SSE-optimized Salsa20 -- all Intel macs support SSE2
|
# Enable SSE-optimized Salsa20 -- all Intel macs support SSE2
|
||||||
DEFS+=-DZT_SALSA20_SSE
|
DEFS+=-DZT_SALSA20_SSE
|
||||||
|
|
||||||
|
# Debug mode -- dump trace output, build binary with -g
|
||||||
ifeq ($(ZT_DEBUG),1)
|
ifeq ($(ZT_DEBUG),1)
|
||||||
DEFS+=-DZT_TRACE
|
DEFS+=-DZT_TRACE
|
||||||
CFLAGS=-Wall -g -pthread $(INCLUDES) $(DEFS)
|
CFLAGS=-Wall -g -pthread $(INCLUDES) $(DEFS)
|
||||||
@ -63,10 +59,18 @@ selftest: $(OBJS) selftest.o
|
|||||||
$(CXX) $(CXXFLAGS) -o zerotier-selftest selftest.o $(OBJS) $(LIBS)
|
$(CXX) $(CXXFLAGS) -o zerotier-selftest selftest.o $(OBJS) $(LIBS)
|
||||||
$(STRIP) zerotier-selftest
|
$(STRIP) zerotier-selftest
|
||||||
|
|
||||||
sign-pkg: FORCE
|
# Requires Packages: http://s.sudre.free.fr/Software/Packages/about.html
|
||||||
|
mac-dist-pkg: FORCE
|
||||||
|
cd ext/installfiles/mac ; packagesbuild "ZeroTier One.pkgproj"
|
||||||
$(CODESIGN) -f -s $(CODESIGN_CERT) "ZeroTier One.pkg"
|
$(CODESIGN) -f -s $(CODESIGN_CERT) "ZeroTier One.pkg"
|
||||||
$(CODESIGN) -vvv "ZeroTier One.pkg"
|
$(CODESIGN) -vvv "ZeroTier One.pkg"
|
||||||
|
|
||||||
|
# For internal use only
|
||||||
|
official: FORCE
|
||||||
|
make clean
|
||||||
|
make -j 4 ZT_OFFICIAL_RELEASE=1
|
||||||
|
make ZT_OFFICIAL_RELEASE=1 mac-dist-pkg
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -rf *.dSYM build-* *.pkg *.dmg *.o node/*.o controller/*.o service/*.o osdep/*.o ext/http-parser/*.o ext/lz4/*.o ext/json-parser/*.o zerotier-one zerotier-idtool zerotier-selftest zerotier-cli ZeroTierOneInstaller-*
|
rm -rf *.dSYM build-* *.pkg *.dmg *.o node/*.o controller/*.o service/*.o osdep/*.o ext/http-parser/*.o ext/lz4/*.o ext/json-parser/*.o zerotier-one zerotier-idtool zerotier-selftest zerotier-cli ZeroTierOneInstaller-*
|
||||||
|
|
||||||
|
3
one.cpp
3
one.cpp
@ -888,6 +888,9 @@ static void printHelp(const char *cn,FILE *out)
|
|||||||
{
|
{
|
||||||
fprintf(out,"ZeroTier One version %d.%d.%d"ZT_EOL_S"(c)2011-2015 ZeroTier, Inc."ZT_EOL_S,ZEROTIER_ONE_VERSION_MAJOR,ZEROTIER_ONE_VERSION_MINOR,ZEROTIER_ONE_VERSION_REVISION);
|
fprintf(out,"ZeroTier One version %d.%d.%d"ZT_EOL_S"(c)2011-2015 ZeroTier, Inc."ZT_EOL_S,ZEROTIER_ONE_VERSION_MAJOR,ZEROTIER_ONE_VERSION_MINOR,ZEROTIER_ONE_VERSION_REVISION);
|
||||||
fprintf(out,"Licensed under the GNU General Public License v3"ZT_EOL_S""ZT_EOL_S);
|
fprintf(out,"Licensed under the GNU General Public License v3"ZT_EOL_S""ZT_EOL_S);
|
||||||
|
std::string updateUrl(OneService::autoUpdateUrl());
|
||||||
|
if (updateUrl.length())
|
||||||
|
fprintf(out,"Automatic update enabled:"ZT_EOL_S" %s"ZT_EOL_S""ZT_EOL_S,updateUrl.c_str());
|
||||||
fprintf(out,"Usage: %s [-switches] [home directory]"ZT_EOL_S""ZT_EOL_S,cn);
|
fprintf(out,"Usage: %s [-switches] [home directory]"ZT_EOL_S""ZT_EOL_S,cn);
|
||||||
fprintf(out,"Available switches:"ZT_EOL_S);
|
fprintf(out,"Available switches:"ZT_EOL_S);
|
||||||
fprintf(out," -h - Display this help"ZT_EOL_S);
|
fprintf(out," -h - Display this help"ZT_EOL_S);
|
||||||
|
@ -96,6 +96,8 @@ namespace ZeroTier { typedef BSDEthernetTap EthernetTap; }
|
|||||||
|
|
||||||
namespace ZeroTier {
|
namespace ZeroTier {
|
||||||
|
|
||||||
|
namespace {
|
||||||
|
|
||||||
class OneServiceImpl;
|
class OneServiceImpl;
|
||||||
|
|
||||||
static int SnodeVirtualNetworkConfigFunction(ZT1_Node *node,void *uptr,uint64_t nwid,enum ZT1_VirtualNetworkConfigOperation op,const ZT1_VirtualNetworkConfig *nwconf);
|
static int SnodeVirtualNetworkConfigFunction(ZT1_Node *node,void *uptr,uint64_t nwid,enum ZT1_VirtualNetworkConfigOperation op,const ZT1_VirtualNetworkConfig *nwconf);
|
||||||
@ -903,6 +905,8 @@ static int ShttpOnMessageComplete(http_parser *parser)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
} // anonymous namespace
|
||||||
|
|
||||||
std::string OneService::platformDefaultHomePath()
|
std::string OneService::platformDefaultHomePath()
|
||||||
{
|
{
|
||||||
#ifdef __UNIX_LIKE__
|
#ifdef __UNIX_LIKE__
|
||||||
@ -939,6 +943,30 @@ std::string OneService::platformDefaultHomePath()
|
|||||||
#endif // __UNIX_LIKE__ or not...
|
#endif // __UNIX_LIKE__ or not...
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::string OneService::autoUpdateUrl()
|
||||||
|
{
|
||||||
|
#ifdef ZT_AUTO_UPDATE
|
||||||
|
|
||||||
|
/*
|
||||||
|
#if defined(__LINUX__) && ( defined(__i386__) || defined(__x86_64) || defined(__x86_64__) || defined(__amd64) || defined(__i386) )
|
||||||
|
if (sizeof(void *) == 8)
|
||||||
|
return "http://download.zerotier.com/ZeroTierOneInstaller-linux-x64-LATEST.nfo";
|
||||||
|
else return "http://download.zerotier.com/ZeroTierOneInstaller-linux-x86-LATEST.nfo";
|
||||||
|
#endif
|
||||||
|
*/
|
||||||
|
|
||||||
|
#if defined(__APPLE__) && ( defined(__i386__) || defined(__x86_64) || defined(__x86_64__) || defined(__amd64) || defined(__i386) )
|
||||||
|
return "http://download.zerotier.com/update/mac_intel/LATEST.nfo";
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef __WINDOWS__
|
||||||
|
return "http://download.zerotier.com/update/win_intel/LATEST.nfo";
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif // ZT_AUTO_UPDATE
|
||||||
|
return std::string();
|
||||||
|
}
|
||||||
|
|
||||||
OneService *OneService::newInstance(const char *hp,unsigned int port,const char *overrideRootTopology) { return new OneServiceImpl(hp,port,overrideRootTopology); }
|
OneService *OneService::newInstance(const char *hp,unsigned int port,const char *overrideRootTopology) { return new OneServiceImpl(hp,port,overrideRootTopology); }
|
||||||
OneService::~OneService() {}
|
OneService::~OneService() {}
|
||||||
|
|
||||||
|
@ -34,6 +34,15 @@ namespace ZeroTier {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Local service for ZeroTier One as system VPN/NFV provider
|
* Local service for ZeroTier One as system VPN/NFV provider
|
||||||
|
*
|
||||||
|
* If built with ZT_ENABLE_NETWORK_CONTROLLER defined, this includes and
|
||||||
|
* runs controller/SqliteNetworkController with a database called
|
||||||
|
* controller.db in the specified home directory.
|
||||||
|
*
|
||||||
|
* If built with ZT_AUTO_UPDATE, an official ZeroTier update URL is
|
||||||
|
* periodically checked and updates are automatically downloaded, verified
|
||||||
|
* against a built-in list of update signing keys, and installed. This is
|
||||||
|
* only supported for certain platforms.
|
||||||
*/
|
*/
|
||||||
class OneService
|
class OneService
|
||||||
{
|
{
|
||||||
@ -69,6 +78,11 @@ public:
|
|||||||
*/
|
*/
|
||||||
static std::string platformDefaultHomePath();
|
static std::string platformDefaultHomePath();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return Auto-update URL or empty string if auto-updates unsupported or not enabled
|
||||||
|
*/
|
||||||
|
static std::string autoUpdateUrl();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create a new instance of the service
|
* Create a new instance of the service
|
||||||
*
|
*
|
||||||
|
Loading…
Reference in New Issue
Block a user