for anyone interested here's the diffs for what I've done so far
--- chillispot-1.1.0/src/tun.c Mon Sep 25 03:48:25 2006
+++ src/tun.c Tue Feb 24 09:00:03 2009
@@ -366,7 +366,7 @@
this->addrs++;
return 0;
-#elif defined (__FreeBSD__) defined (__OpenBSD__) || defined (__NetBSD__) || defined (__APPLE__)
+#elif defined (__FreeBSD__) || defined (__OpenBSD__) || defined (__NetBSD__) || defined (__APPLE__)
int fd;
struct ifaliasreq areq;
@@ -445,7 +445,7 @@
#if defined(__linux__)
ifr.ifr_netmask.sa_family = AF_INET;
-#elif defined(__FreeBSD__) defined (__OpenBSD__) || defined (__NetBSD__) || defined (__APPLE__)
+#elif defined(__FreeBSD__) || defined (__OpenBSD__) || defined (__NetBSD__) || defined (__APPLE__)
((struct sockaddr_in *) &ifr.ifr_addr)->sin_len =
sizeof (struct sockaddr_in);
((struct sockaddr_in *) &ifr.ifr_dstaddr)->sin_len =
@@ -497,7 +497,7 @@
((struct sockaddr_in *) &ifr.ifr_netmask)->sin_addr.s_addr =
netmask->s_addr;
-#elif defined(__FreeBSD__) defined (__OpenBSD__) || defined (__NetBSD__) || defined (__APPLE__)
+#elif defined(__FreeBSD__) || defined (__OpenBSD__) || defined (__NetBSD__) || defined (__APPLE__)
((struct sockaddr_in *) &ifr.ifr_addr)->sin_addr.s_addr =
netmask->s_addr;
@@ -585,7 +585,7 @@
close(fd);
return 0;
-#elif defined(__FreeBSD__) defined (__OpenBSD__) || defined (__NetBSD__) || defined (__APPLE__)
+#elif defined(__FreeBSD__) || defined (__OpenBSD__) || defined (__NetBSD__) || defined (__APPLE__)
struct {
struct rt_msghdr rt;
@@ -674,7 +674,7 @@
#if defined(__linux__)
struct ifreq ifr;
-#elif defined(__FreeBSD__) defined (__OpenBSD__) || defined (__NetBSD__) || defined (__APPLE__)
+#elif defined(__FreeBSD__) || defined (__OpenBSD__) || defined (__NetBSD__) || defined (__APPLE__)
char devname[IFNAMSIZ+5]; /* "/dev/" + ifname */
int devnum;
struct ifaliasreq areq;
@@ -722,7 +722,7 @@
ioctl((*tun)->fd, TUNSETNOCSUM, 1); /* Disable checksums */
return 0;
-#elif defined(__FreeBSD__) defined (__OpenBSD__) || defined (__NetBSD__) || defined (__APPLE__)
+#elif defined(__FreeBSD__) || defined (__OpenBSD__) || defined (__NetBSD__) || defined (__APPLE__)
/* Find suitable device */
for (devnum = 0; devnum < 255; devnum++) { /* TODO 255 */
--- chillispot-1.1.0/src/chilli.c Mon Sep 25 03:48:25 2006
+++ src/chilli.c Tue Feb 24 08:35:04 2009
@@ -3888,8 +3888,12 @@
struct itimerval itval;
/* open a connection to the syslog daemon */
- /*openlog(PACKAGE, LOG_PID, LOG_DAEMON);*/
+
+ #if defined(__sun__)
+ openlog(PACKAGE, LOG_PID, LOG_DAEMON);
+ #else /* this is not POSIX */
openlog(PACKAGE, (LOG_PID | LOG_PERROR), LOG_DAEMON);
+ #endif
/* Process options given in configuration file and command line */
if (process_options(argc, argv, 1))
--- chillispot-1.1.0/src/dhcp.c Mon Sep 25 03:48:25 2006
+++ src/dhcp.c Tue Feb 24 09:12:57 2009
@@ -84,6 +84,12 @@
#include <net/if_dl.h>
#include <net/if_types.h>
#include <ifaddrs.h>
+
+#elif defined (__sun__)
+#include <stropts.h>
+#include <sys/sockio.h>
+#include <net/if.h>
+#include <net/if_tun.h>
#endif
#ifdef HAVE_NET_ETHERNET_H
Plus a couple of things
./configure LIBS="-lsocket -lresolv -lnsl"
Configure doesn't appear to include these on solaris system
Download http://vtun.sourceforge.net/tun/tun-1.1.tar.gz
gzip -d tun-1.1.tar.gz
tar -xf tun-1.1.tar
cp tun-1.1/solaris/if_tun.h /usr/include/net
Solaris development doesn't include this file by default.