http://www-user.rhrk.uni-kl.de/~nissler/tuntap/

Note: The TunTap project has been moved to Sourceforge. Please update your bookmarks to http://tuntaposx.sourceforge.net

Panther version (Mac OS X 10.3.x), ppc only

After some problems with kernel crashes tun/tap is quite mature on Panther (now that Panther is history for most people *g*). I have made an installer package that makes it easy to install the drivers. For the interested I also provide the complete source tree:

  • tuntap.tar.gz - installer package, please see the included README.installer file for more information
  • tuntap_src.tar.gz - complete source tree. See INSTALL for build instructions

Panther Changelog

May 1, 2005:
  • This version should fix the kernel crash problems (see the testing versions below). Kernel crash warnings removed.

Please consult the Changelog file in the source archive for the full Changelog.

Tiger version (Mac OS X 10.4.x), universal binaries

Well, many people asked for tun/tap on intel macs, so I decided I have to do something about it. This version comes with a lot of bugfixes and also includes universal binaries that run on the new intel macs.

Grab your packages here:

Tiger Changelog

May 13, 2006:
  • This version is not stable, it may crash, sorry. [edit: Actually, it works just fine during normal operation)]
  • Universal binaries that run on ppc and intel macs.
  • Adds tap MAC address randomization
  • Redesigned locking.
  • Better multicast support
  • mDNSResponder workaround, so that the tap interfaces should get picked up now. Note that we are fixing ifconfig/kernel behaviour here.
  • All tapX and tunX devices are visible in /dev at all times, network interfaces still created dynamically, though.
  • Startup items moved to /Library/StartupItems
May 17, 2005:
  • 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.
  • The kernel extensions moved to /Library/Extensions. That is the place where non-Apple kexts are supposed to live.

Please consult the Changelog file in the source archive for the full Changelog.

Source tarball for Leopard

Seems the Leopard transition goes much smoother for tuntap than the switch to Panther. Grab your package below.

A huge thank you goes to mozilla.com for giving me a brand new Mac Mini. Without it, the Leopard version (especially the installer package) wouldn't be available in its current form. Thanks to everyone who made this possible!

Here we go:

Leopard Changelog

June 7, 2008:
  • Protect the selwakeup() call by the lock. This fixes incorrect select() behaviour, thanks to Roland Wendelin for reporting this.
  • Fix tuntap_mbuf_queue::size initialization
  • 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:
  • 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.
  • Fix a small mbuf leak that could occur when the output queue was full. Thanks to Oleg Dolgov for reporting this.
December 21, 2007:
  • Fix paths in the startup item postflight scripts
  • Check if_ioctl arguments more defensively after a report of a panic after receiving a NULL arg.
November 14, 2007:
  • 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.
  • Fix incorrect permission & ownership of the installed files.
Oktober 11, 2007:
  • Fix the permissions of the postflight scripts. Installer packages should work again.
  • Drop the kmod and kmodc++ in the linker command, they seem to be unneeded with Leopard.
September 20, 2007:
  • Initial Leopard port, it's basically the latest Tiger version with some Leopard-related fixes and s/Tiger/Leopard/g
  • I have switched to a proper version management system (git) and could remove some of the CVS hacks subsequently.
  • The installation packages have been reworked a bit, they now install into /System/Extensions and /System/StartupItems directly by using DestinationPaths.

Please consult the Changelog file in the source archive for the full Changelog.

PayPal donations

Because many of you asked about that (while waiting for the Tiger version *g*), you can now donate via PayPal in order to show your gratitude. I am not planning to make tun/tap commercial in any way, so you are also welcome to use it without donating ;-)

(click image to donate)


Copyright © 2007 Mattias Nissler <mattias dot nissler at gmx dot de>



Reply via email to