Woohoo! tinc now compiles, runs and actually *works* on Solaris!
[tinc] / src / route.c
index 5bf0b55..dc91940 100644 (file)
@@ -17,7 +17,7 @@
     along with this program; if not, write to the Free Software
     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 
-    $Id: route.c,v 1.1.2.16 2001/07/20 13:54:19 guus Exp $
+    $Id: route.c,v 1.1.2.18 2001/07/21 20:21:25 guus Exp $
 */
 
 #include "config.h"
@@ -28,7 +28,7 @@
 #include <sys/socket.h>
 #include <netinet/in.h>
 #ifdef HAVE_SOLARIS
- #include <netinet/if.h>
+ #include <net/if.h>
  #define ETHER_ADDR_LEN 6
 #else
  #include <net/ethernet.h>
@@ -78,7 +78,7 @@ cp
       for(node = connection_tree->head; node; node = node->next)
         {
           p = (connection_t *)node->data;
-          if(p->status.active && p!= myself)
+          if(p->status.active)
             send_add_subnet(p, subnet);
         }
     }
@@ -107,10 +107,15 @@ connection_t *route_ipv4(vpn_packet_t *packet)
   ipv4_t dest;
   subnet_t *subnet;
 cp
+#ifdef HAVE_SOLARIS
+  /* The other form gives bus errors on a SparcStation 20. */
+  dest = ((packet->data[30] * 0x100 + packet->data[31]) * 0x100 + packet->data[32]) * 0x100 + packet->data[33];
+#else
   dest = ntohl(*((unsigned long*)(&packet->data[30])));
-  
+#endif
+cp  
   subnet = lookup_subnet_ipv4(&dest);
-
+cp
   if(!subnet)
     {
       if(debug_lvl >= DEBUG_TRAFFIC)