summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-x.gitignore1
-rw-r--r--Makefile.linux3
-rwxr-xr-xbuildinstaller.sh8
-rw-r--r--file2lz4c.cpp4
-rw-r--r--installer.cpp8
-rwxr-xr-xinstaller/linux/init.d/zerotier-one2
-rwxr-xr-xinstaller/linux/uninstall.sh13
7 files changed, 26 insertions, 13 deletions
diff --git a/.gitignore b/.gitignore
index def2ee7a..13ae8d3b 100755
--- a/.gitignore
+++ b/.gitignore
@@ -30,3 +30,4 @@ mac-tap/tuntap/tap.kext
*.tlog
/installer-build
/zt1-*-install
+/file2lz4c
diff --git a/Makefile.linux b/Makefile.linux
index 1bae1c3b..83953ac1 100644
--- a/Makefile.linux
+++ b/Makefile.linux
@@ -38,6 +38,9 @@ idtool: $(OBJS)
file2lz4c: ext/lz4/lz4hc.o FORCE
$(CXX) $(CXXFLAGS) -o file2lz4c file2lz4c.cpp node/Utils.cpp node/Salsa20.cpp ext/lz4/lz4hc.o
+installer: one FORCE
+ ./buildinstaller.sh
+
clean:
rm -f $(OBJS) file2lz4c zerotier-* zt1-*-install
rm -rf installer-build
diff --git a/buildinstaller.sh b/buildinstaller.sh
index a669ab59..f47b2d52 100755
--- a/buildinstaller.sh
+++ b/buildinstaller.sh
@@ -1,6 +1,6 @@
#!/bin/bash
-make -j 4 one file2lz4c
+make file2lz4c
if [ ! -f file2lz4c ]; then
echo "Build of file2lz4c utility failed, aborting installer build."
@@ -8,7 +8,7 @@ if [ ! -f file2lz4c ]; then
fi
if [ ! -f zerotier-one ]; then
- echo "Build of zerotier-one failed, aborting installer build."
+ echo "Could not find 'zerotier-one' binary, please build before running this script."
exit 2
fi
@@ -50,10 +50,10 @@ case "$system" in
./file2lz4c installer/linux/uninstall.sh uninstall_sh >installer-build/uninstall_sh.h
./file2lz4c installer/linux/init.d/zerotier-one linux__init_d__zerotier_one >installer-build/linux__init_d__zerotier_one.h
- ls -l installer-build
-
g++ -Os -o "zt1-${vmajor}_${vminor}_${revision}-linux-${machine}-install" installer.cpp ext/lz4/lz4.o ext/lz4/lz4hc.o
+ ls -l zt1-*-install
+
;;
Darwin)
diff --git a/file2lz4c.cpp b/file2lz4c.cpp
index 7715ba87..aa0acd0b 100644
--- a/file2lz4c.cpp
+++ b/file2lz4c.cpp
@@ -69,8 +69,8 @@ int main(int argc,char **argv)
for(int i=0;i<complen;++i) {
if (!(i % 15))
std::cout << std::endl << '\t';
- Utils::snprintf(tmp,sizeof(tmp),"%.2x",(unsigned int)compbuf[i]);
- std::cout << "0x" << tmp;
+ Utils::snprintf(tmp,sizeof(tmp),"0x%.2x",(unsigned int)compbuf[i]);
+ std::cout << tmp;
if (i != (complen - 1))
std::cout << ',';
}
diff --git a/installer.cpp b/installer.cpp
index 0bc911dc..a2165597 100644
--- a/installer.cpp
+++ b/installer.cpp
@@ -90,7 +90,7 @@
static unsigned char *_unlz4(const void *lz4,int decompressedLen)
{
unsigned char *buf = new unsigned char[decompressedLen];
- if (LZ4_decompress_fast((const char *)lz4,(char *)buf,decompressedLen) != decompressedLen) {
+ if (LZ4_decompress_fast((const char *)lz4,(char *)buf,decompressedLen) <= 0) {
delete [] buf;
return (unsigned char *)0;
}
@@ -173,6 +173,10 @@ int main(int argc,char **argv)
chown(buf,0,0);
printf("write %s\n",buf);
+ unlink("/usr/bin/zerotier-cli");
+ symlink(buf,"/usr/bin/zerotier-cli");
+ printf("link %s /usr/bin/zerotier-cli\n",buf);
+
sprintf(buf,"%s/uninstall.sh",zthome);
if (!putBlob(uninstall_sh,buf)) {
printf("! unable to write %s\n",buf);
@@ -236,6 +240,8 @@ int main(int argc,char **argv)
printf("link /etc/init.d/zerotier-one /etc/rc4.d/S11zerotier-one\n");
symlink("/etc/init.d/zerotier-one","/etc/rc5.d/S11zerotier-one");
printf("link /etc/init.d/zerotier-one /etc/rc5.d/S11zerotier-one\n");
+ symlink("/etc/init.d/zerotier-one","/etc/rc6.d/S11zerotier-one");
+ printf("link /etc/init.d/zerotier-one /etc/rc6.d/S11zerotier-one\n");
#endif
printf("# Done!\n");
diff --git a/installer/linux/init.d/zerotier-one b/installer/linux/init.d/zerotier-one
index 4c8c5038..fdb8522a 100755
--- a/installer/linux/init.d/zerotier-one
+++ b/installer/linux/init.d/zerotier-one
@@ -56,7 +56,7 @@ fi
case "$1" in
start)
- if [ $running -eq 0 ]; then
+ if [ $running -gt 0 ]; then
echo "ZeroTier One already running."
exit 0
fi
diff --git a/installer/linux/uninstall.sh b/installer/linux/uninstall.sh
index 1a8fe34c..292ac22f 100755
--- a/installer/linux/uninstall.sh
+++ b/installer/linux/uninstall.sh
@@ -9,7 +9,7 @@ fi
echo
-echo "Going to uninstall zerotier-one, hit CTRL+C to abort."
+echo "This will uninstall ZeroTier One, hit CTRL+C to abort."
echo "Waiting 5 seconds..."
sleep 5
@@ -18,14 +18,17 @@ killall -q -TERM zerotier-one
sleep 2
killall -q -KILL zerotier-one
+echo "Removing SysV init items..."
+rm -fv /etc/init.d/zerotier-one
+find /etc/rc*.d -name '???zerotier-one' -print0 | xargs -0 rm -fv
+
echo "Erasing binary and support files..."
cd /var/lib/zerotier-one
-rm -fv zerotier-one *.persist authtoken.secret identity.public *.log
+rm -fv zerotier-one *.persist authtoken.secret identity.public *.log *.pid
rm -rfv updates.d networks.d iddb.d
-echo "Removing init items..."
-rm -fv /etc/init.d/zerotier-one
-find /etc/rc*.d -name '???zerotier-one' -print0 | xargs -0 rm -fv
+echo "Erasing anything installed into system bin directories..."
+rm -fv /usr/local/bin/zerotier-* /usr/bin/zerotier-*
echo "Done."
echo