Compare commits

...
21 Commits
Author SHA1 Message Date
Adam Ierymenko 7fdca150a9 VERSION 0.6.13: small bug fix, UI work
This is just a small bug fix and some UI work. Version bumps will be
coming faster too to test auto-update.
2014-02-04 22:15:57 -08:00
Adam Ierymenko 165de71754 Quick start rev. 2014-02-04 22:08:42 -08:00
Adam Ierymenko 6b1a4b6e64 Undo last commit... 2014-02-04 17:06:50 -08:00
Adam Ierymenko aaf0ef6b19 Pull static image version of quick start guide. 2014-02-04 16:31:23 -08:00
Adam Ierymenko fb2745ba3b Remove another script that doesn't really belong here. 2014-02-04 14:26:09 -08:00
Adam Ierymenko d452ed7db8 Fix inverted sense bug in new skip-stale-relay logic. 2014-02-03 21:15:29 -08:00
Adam Ierymenko 8f5cd0a361 VERSION 0.6.12: code cleanup in peers and IP address enumeration improvements
This version ties up some stuff that remains in the core before binary release.
It adds support for direct interface IP enumeration on *nix systems, as well
as a fix for IPv6 link-local addresses on OSX. This also contains some cleanup
in Peer and some improvements to help detect and route around dead or unreachable
supernodes.

Getting close!
2014-02-03 16:53:38 -08:00
Adam Ierymenko d7bc3c6f4a Fix infinite loop bug introduced in last commit. 2014-02-03 12:28:23 -08:00
Adam Ierymenko d04e5a1fe0 Add a simple but very nice mechanism for avoiding potentially dead supernodes. 2014-02-03 11:09:09 -08:00
Adam Ierymenko bf5f09a0c7 Yank a code path it turns out we probably don't want. 2014-02-03 10:46:37 -08:00
Adam Ierymenko a154d660d9 Some work on background service that runs the actual zerotier-one process. 2014-02-02 23:48:44 -08:00
Adam Ierymenko 7a49d50187 Windows installer work... 2014-02-02 17:38:22 -08:00
Adam Ierymenko ce0bd93289 Make software update run a little more often for now. 2014-02-02 16:46:27 -08:00
Adam Ierymenko 0fdefdf7a4 So Linux has getifaddrs() too! Yay! 2014-02-02 02:21:09 -05:00
Adam Ierymenko 8236f20759 Private struct ifmaddrs for OSX cause struct ifmaddrs is missing too on OSX 10.6. 2014-02-01 23:18:31 -08:00
Adam Ierymenko e16b2a8831 Real implementation of ips() on OSX, now for Linux. 2014-02-01 23:10:04 -08:00
Adam Ierymenko f7fbc6f633 Remove submit script. 2014-02-01 22:31:52 -08:00
Adam Ierymenko 3a9b0cf132 UI quick start guide. 2014-02-01 21:55:32 -08:00
Adam Ierymenko 2a3e646b94 Manually generate IPv6 link-local address only on Mac. 2014-02-01 14:02:14 -08:00
Adam Ierymenko 64231aa3f0 Fix for GitHub issue #36 on OSX... results in a duplicate entry for IPv6 link-local but seems okay... need to test on OSX 10.6 though. 2014-01-31 15:55:45 -08:00
Adam Ierymenko 117e6fb356 Remove some more junk from tap driver tree. 2014-01-31 12:40:06 -08:00
35 changed files with 589 additions and 474 deletions

No files matched your search

+1
View File
@@ -29,3 +29,4 @@
/ZeroTier One.zip
/ZeroTier One.dmg
/windows/x64
/windows/ZeroTierOneInstaller/ZeroTierOneInstaller
Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.
+2 -1
View File
@@ -104,7 +104,8 @@ FORMS += mainwindow.ui \
aboutwindow.ui \
networkwidget.ui \
installdialog.ui \
licensedialog.ui
licensedialog.ui \
quickstartdialog.ui
RESOURCES += \
resources.qrc
+17
View File
@@ -51,6 +51,7 @@
#include "aboutwindow.h"
#include "networkwidget.h"
#include "ui_mainwindow.h"
#include "ui_quickstartdialog.h"
#ifdef __APPLE__
#include <stdio.h>
@@ -144,6 +145,13 @@ void MainWindow::timerEvent(QTimerEvent *event) // event can be null since code
if (this->firstTimerTick) {
this->firstTimerTick = false;
this->killTimer(this->pollServiceTimerId);
if (!settings->value("shown_quickStart",false).toBool()) {
on_actionQuick_Start_triggered();
settings->setValue("shown_quickStart",true);
settings->sync();
}
this->pollServiceTimerId = this->startTimer(1500);
}
@@ -387,3 +395,12 @@ void MainWindow::on_addressButton_clicked()
{
QApplication::clipboard()->setText(this->myAddress);
}
void MainWindow::on_actionQuick_Start_triggered()
{
Ui::QuickstartDialog qd;
QDialog *qdd = new QDialog(this);
qd.setupUi(qdd);
qdd->setModal(false);
qdd->show();
}
+1
View File
@@ -79,6 +79,7 @@ private slots:
void on_actionAbout_triggered();
void on_networkIdLineEdit_textChanged(const QString &text);
void on_addressButton_clicked();
void on_actionQuick_Start_triggered();
private:
Ui::MainWindow *ui;
+5 -9
View File
@@ -246,6 +246,7 @@
<string>Help</string>
</property>
<addaction name="actionAbout"/>
<addaction name="actionQuick_Start"/>
</widget>
<widget class="QMenu" name="menuFile">
<property name="title">
@@ -268,20 +269,15 @@
<property name="text">
<string>About</string>
</property>
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
</action>
<action name="actionExit">
<property name="text">
<string>Exit</string>
</property>
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</action>
<action name="actionQuick_Start">
<property name="text">
<string>Quick Start</string>
</property>
</action>
</widget>
+170
View File
@@ -0,0 +1,170 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>QuickstartDialog</class>
<widget class="QDialog" name="QuickstartDialog">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>800</width>
<height>480</height>
</rect>
</property>
<property name="windowTitle">
<string>Quick Start</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<property name="spacing">
<number>0</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QScrollArea" name="scrollArea">
<property name="frameShape">
<enum>QFrame::NoFrame</enum>
</property>
<property name="widgetResizable">
<bool>true</bool>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
<widget class="QWidget" name="scrollAreaWidgetContents">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>785</width>
<height>800</height>
</rect>
</property>
<layout class="QHBoxLayout" name="horizontalLayout_2">
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QLabel" name="label">
<property name="styleSheet">
<string notr="true">background: #000000;</string>
</property>
<property name="text">
<string/>
</property>
<property name="textFormat">
<enum>Qt::PlainText</enum>
</property>
<property name="pixmap">
<pixmap resource="resources.qrc">:/img/ZT1GUI.png</pixmap>
</property>
<property name="scaledContents">
<bool>false</bool>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
</layout>
</widget>
</widget>
</item>
<item>
<widget class="QWidget" name="widget" native="true">
<layout class="QHBoxLayout" name="horizontalLayout">
<property name="leftMargin">
<number>6</number>
</property>
<property name="topMargin">
<number>6</number>
</property>
<property name="rightMargin">
<number>6</number>
</property>
<property name="bottomMargin">
<number>6</number>
</property>
<item>
<widget class="QLabel" name="label_2">
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<property name="text">
<string>Select Help -&gt; Quick Start to see this screen again.</string>
</property>
<property name="textFormat">
<enum>Qt::PlainText</enum>
</property>
<property name="textInteractionFlags">
<set>Qt::NoTextInteraction</set>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>702</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QPushButton" name="okButton">
<property name="text">
<string>OK</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
<resources>
<include location="resources.qrc"/>
</resources>
<connections>
<connection>
<sender>okButton</sender>
<signal>clicked()</signal>
<receiver>QuickstartDialog</receiver>
<slot>accept()</slot>
<hints>
<hint type="sourcelabel">
<x>753</x>
<y>457</y>
</hint>
<hint type="destinationlabel">
<x>399</x>
<y>239</y>
</hint>
</hints>
</connection>
</connections>
</ui>
+1
View File
@@ -1,6 +1,7 @@
<RCC>
<qresource prefix="/img">
<file>zt1icon.png</file>
<file>ZT1GUI.png</file>
</qresource>
<qresource prefix="/css">
<file>stylesheet.css</file>
-51
View File
@@ -1,51 +0,0 @@
#!/bin/bash
#
# This script signs an installer, creates its .NFO file, and
# copies it to a destination directory. This in turn can be
# uploaded to the official ZeroTier Networks update site for
# auto-updating binary distribution users.
#
# It's in attic/ because end-users won't find it particularly
# useful. You must have the ZeroTier One official signing
# identity secret keys to sign binary releases for auto-update,
# and of course you'd also have to upload it to our servers.
#
# Build the app and the installer, then run this from the root
# of the source tree. It'll need the zerotier-idtool symlink
# that will be placed there after a build, too.
export PATH=/bin:/usr/bin:/sbin:/usr/sbin
if [ "$#" -ne 1 ]; then
echo "Usage: $0 <path to secret signing identity>"
exit 1
fi
if [ ! -e zerotier-idtool ]; then
echo "Unable to find zerotier-idtool in current directory."
exit 1
fi
secret="$1"
if [ ! -e "$secret" ]; then
echo "Can't find $secret"
exit 1
fi
rm -f *.nfo
for inst in `ls ZeroTierOneInstaller-*-*-*_*_*`; do
echo "Found installer: $inst"
nfo="$inst.nfo"
rm -f "$nfo"
echo "tss=`date`" >>"$nfo"
echo "vMajor=`echo $inst | cut -d - -f 4 | cut -d _ -f 1`" >>"$nfo"
echo "vMinor=`echo $inst | cut -d - -f 4 | cut -d _ -f 2`" >>"$nfo"
echo "vRevision=`echo $inst | cut -d - -f 4 | cut -d _ -f 3`" >>"$nfo"
echo "signedBy=`cat $secret | cut -d : -f 1`" >>"$nfo"
echo "ed25519=`./zerotier-idtool sign $secret $inst`" >>"$nfo"
echo "url=http://download.zerotier.com/$inst" >>"$nfo"
done
-9
View File
@@ -1,9 +0,0 @@
#!/bin/bash
# Completely useless to outsiders. :)
scp ZeroTierOneInstaller-*-*-*_*_* nyarlathotep.zerotier.com:/www/download.zerotier.com/htdocs
if [ -f 'ZeroTier One.dmg' ]; then
scp 'ZeroTier One.dmg' nyarlathotep.zerotier.com:/www/download.zerotier.com/htdocs/dist
fi
-141
View File
@@ -1,141 +0,0 @@
November 1, 2011:
o Make the netmask address family fix work without knowledge of the struct
ifaddr definition. This fixes a crash on Lion, where the layout of the
structure has been changed, but at the cost of the fix no longer working for
IPv6. I think this is OK though, since mDNSResponder has been fixed on
Leopard and beyond to no longer require the hack.
o Proper multicast address checking for tun; multicast should now work reliably
with IP and IPv6 on tun also.
o A quite comprehensive test suite has been added that allows for quick release
testing.
o PPC support has been dropped due to XCode 4 no longer supporting PPC arch.
September 13, 2009:
o Change linker options to produce 64 bit kext bundle for Snow Leopard.
o Switch from kmem_alloc and friends to OSAlloc for memory allocation and
avoid the delay() call. Respective symbols are not available on 64 bit
kernels anymore.
September 5, 2009:
o Initial Snow Leopard port. Thanks to various people contributing patches in
the bugtracker. The new official version can only be compiled on Snow
Leopard but has been tested to work on all Tiger, Leopard and Snow Leopard
o Clean up unused locking code and switch to rwlocks even for simple mutexes,
which avoids a symbol incompatibility for Tiger and Leopard.
o Clean up compilation flags in the Makefiles.
July 4, 2008:
o Adapt the former Leopard package to also be installable on Tiger systems.
This obsoletes the Tiger version, both Leopard and Tiger are now supported
by a single package.
June 7, 2008:
o Protect the selwakeup() call by the lock. This fixes incorrect select()
behaviour, thanks to Roland Wendelin for reporting this.
o Fix tuntap_mbuf_queue::size initialization
o Use a proper wait condition for synchronization when detaching the network
interface. The old code would crash if the if_detached() handler was called
from a different thread than unregister_interface().
January 21, 2008:
o Work around an issue in the Darwin kernel. When unregistering an interface,
addresses are not properly removed from the interface. This leads to
crashes and other problems when reusing the interface. Introduce an ugly
hack that tries to remove all interface addresses when shutting the
interface down.
o Fix a small mbuf leak that could occur when the output queue was full.
Thanks to Oleg Dolgov for reporting this.
December 21, 2007:
o Fix paths in the startup item postflight scripts
o Check if_ioctl arguments more defensively after a report of a panic after
receiving a NULL arg.
November 14, 2007:
o I have done a complete rework of the installer package generation. The
package is now edited in PackageMaker. The distribution package can still
be built from the commandline though.
o Fix incorrect permission & ownership of the installed files.
Oktober 11, 2007:
o Fix the permissions of the postflight scripts. Installer packages should work
again.
o Drop the kmod and kmodc++ in the linker command, they seem to be unneeded
with Leopard.
September 20, 2007:
o Initial Leopard port, it's basically the latest Tiger version with some
Leopard-related fixes and s/Tiger/Leopard/g
o I have switched to a proper version management system (git) and could
remove some of the CVS hacks subsequently.
o The installation packages have been reworked a bit, they now install into
/System/Extensions and /System/StartupItems directly by using
DestinationPaths.
May 13, 2006:
o This version is not stable, it may crash, sorry.
o Universal binaries that run on ppc and intel macs.
o Adds tap MAC address randomization
o Redesigned locking.
o Better multicast support
o mDNSResponder workaround, so that the tap interfaces should get picked up
now. Note that we are fixing ifconfig/kernel behaviour here.
o All tapX and tunX devices are visible in /dev at all times, network
interfaces still created dynamically, though.
o Startup items moved to /Library/StartupItems
May 17, 2005:
o Initial Tiger port. We now have KPI-style interfaces. I guess the Tiger
version is little slower than the Panther version because of all the
wrapping and hiding in the kernel.
o The kernel extensions moved to /Library/Extensions. That is the place where
non-Apple kexts are supposed to live.
April 21, 2005:
o I added support in tun for AF prepending like some BSDs do. Thanks to Dennis
kSchneider for mailing the initial patch. You can also set the value of
AF_INET6 to be used.
o I finally found that major bug causing crashes (especially on multiprocessor
machines). It also caused a memory leak (lost mbufs), and might have caused
performance/througput/data-loss problems. Everyone is recommended to upgrade.
April 6, 2005:
o I rewrote the common part concerning the tun and tap initialization and
cleanup. This should make the code more maintainable (less duplication).
o The devices now reinitialize to the state they were started in when they
are closed by an application. This concerns IP addresses for example.
o I changed the package building system to use PackageMaker.app in batch
mode. The packages also check for version 10.3 now, so nobody should be
able to install tun/tap on 10.2 using installer packages. Furthermore I
have sprinkled some warnings telling you not to use tun/tap on SMP machines
over the installation process ;-)
o Some minor locking fixes.
November 19, 2004:
o Jamie Wood reported that the packet queue in the driver could be considered
empty even if there were packets in it. This was probably caused by a
synchronization problem that should be fixed now. People encountering
timeouts etc. should try the new version.
o I finally implemented support for changing the interface MTU. The driver
enforces the MTU when writing packets to the character device now. However,
packets coming from the kernel are not checked.
September 9, 2004:
o Marcello Teodori told me that the tun driver wasn't working with openvpn.
The problem was the fcntl call, fixed that. Should work now. Thanks
Marcello!
o changed the tun driver not to prepend the address family field before each
and every packet (which is the behaviour of OpenBSD). As there is currently
only IPv4 and IPv6 support there is no problem with the standard tun
approach used on other OSes. This should make the driver much more
compatible.
o Did a script and makefile support so that the installer packages can now be
built from the command prompt. Unfortunately this might break things
someday as I am not using the 'official' way to build the packages
o Cleaned up installer packages a little.
August 24, 2004:
o initial version put online
o basic tun/tap support, tap working with qemu
File renamed without changes.
+6 -1
View File
@@ -2,7 +2,12 @@ Building the tap for both x86_64 and i386 requires an older version of the
Xcode tools than what now ships for Mavericks (10.9). The newer version
does not support creating i386 kernel images.
These can be obtained from:
At the moment this is done on an OSX 10.6 virtual image that is used for
building. (It doesn't have to be done often.) Then the kext is signed on
the regular build system. That's because images built on newer OSX don't
seem to load on 10.6 but 10.6 built kexts seem fine on 10.9. Go figure.
Older Xcode can also be found at:
https://developer.apple.com/downloads
@@ -1,11 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist SYSTEM "file://localhost/System/Library/DTDs/PropertyList.dtd">
<plist version="0.9">
<dict>
<key>ethertap device kernel extension</key>
<string>ethertap kernel extension</string>
<key>Initializing tap devices</key>
<string>Initializing tap devices</string>
</dict>
</plist>
@@ -1,6 +0,0 @@
{
Description = "ethertap device kernel extension";
Provides = ("ethertap");
Requires = ("Network Configuration");
OrderPreference = "None";
}
-33
View File
@@ -1,33 +0,0 @@
#!/bin/sh
##
# load the tap kext
##
. /etc/rc.common
StartService ()
{
ConsoleMessage "Initializing tap devices"
if [ -d /Library/Extensions/tap.kext ]; then
kextload /Library/Extensions/tap.kext
fi
}
StopService ()
{
if [ -d /Library/Extensions/tap.kext ]; then
kextunload /Library/Extensions/tap.kext
fi
}
RestartService ()
{
if [ -d /Library/Extensions/tap.kext ]; then
kextunload /Library/Extensions/tap.kext
kextload /Library/Extensions/tap.kext
fi
}
RunService "$1"
@@ -1,11 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist SYSTEM "file://localhost/System/Library/DTDs/PropertyList.dtd">
<plist version="0.9">
<dict>
<key>ip tunnel device kernel extension</key>
<string>ip tunnel kernel extension</string>
<key>Initializing tun devices</key>
<string>Initializing tun devices</string>
</dict>
</plist>
@@ -1,6 +0,0 @@
{
Description = "ip tunnel device kernel extension";
Provides = ("tun");
Requires = ("Network Configuration");
OrderPreference = "None";
}
-33
View File
@@ -1,33 +0,0 @@
#!/bin/sh
##
# load the tun kext
##
. /etc/rc.common
StartService ()
{
ConsoleMessage "Initializing tun devices"
if [ -d /Library/Extensions/tun.kext ]; then
kextload /Library/Extensions/tun.kext
fi
}
StopService ()
{
if [ -d /Library/Extensions/tun.kext ]; then
kextunload /Library/Extensions/tun.kext
fi
}
RestartService ()
{
if [ -d /Library/Extensions/tun.kext ]; then
kextunload /Library/Extensions/tun.kext
kextload /Library/Extensions/tun.kext
fi
}
RunService "$1"
Loaded 20 of 35 files, more files were not shown because too many files have changed in this diff. Show more