* and make it compile on Win32
authorBernd Petrovitsch <bernd@firmix.at>
Thu, 8 Nov 2007 23:23:13 +0000 (23:23 +0000)
committerBernd Petrovitsch <bernd@firmix.at>
Thu, 8 Nov 2007 23:23:13 +0000 (23:23 +0000)
lib/dyn_gw/src/olsrd_dyn_gw.c
src/olsr_switch/main.c
src/win32/compat.c
src/win32/ifnet.c
src/win32/kernel_routes.c
src/win32/net.c

index 67c354d..3d4f2c1 100644 (file)
@@ -37,7 +37,7 @@
  * to the project. For more information see the website or contact
  * the copyright holders.
  *
- * $Id: olsrd_dyn_gw.c,v 1.24 2007/11/08 22:47:39 bernd67 Exp $
+ * $Id: olsrd_dyn_gw.c,v 1.25 2007/11/08 23:23:13 bernd67 Exp $
  */
 
 /*
@@ -388,7 +388,7 @@ check_gw(union olsr_ip_addr *net, union olsr_ip_addr *mask, struct ping_list *th
 
     fclose(fp);      
     if(retval == 0){
-      olsr_printf(1, "HNA[%08x/%08x] is invalid\n", net->v4.s_addr, mask->v4.s_addr);
+      olsr_printf(1, "HNA[%08x/%08x] is invalid\n", (unsigned int)net->v4.s_addr, (unsigned int)mask->v4.s_addr);
     }  
     return retval;
 }
index be1e3f1..5039228 100644 (file)
@@ -37,7 +37,7 @@
  * to the project. For more information see the website or contact
  * the copyright holders.
  *
- * $Id: main.c,v 1.29 2007/11/08 22:47:42 bernd67 Exp $
+ * $Id: main.c,v 1.30 2007/11/08 23:23:13 bernd67 Exp $
  */
 
 /* olsrd host-switch daemon */
@@ -170,7 +170,7 @@ ohs_init_new_connection(int s)
   /* Get "fake IP" */
   for (i = 0; i < 20; i++)
   {
-    if (recv(oc->socket, &new_addr, sizeof(new_addr), 0) == 4)
+    if (recv(oc->socket, (void *)&new_addr, sizeof(new_addr), 0) == 4)
       break;
 
 #if defined WIN32
index 8a7d5ee..305bd39 100644 (file)
@@ -36,7 +36,7 @@
  * to the project. For more information see the website or contact
  * the copyright holders.
  *
- * $Id: compat.c,v 1.16 2007/07/15 21:09:38 bernd67 Exp $
+ * $Id: compat.c,v 1.17 2007/11/08 23:23:13 bernd67 Exp $
  */
 
 /*
@@ -62,6 +62,8 @@
 #include <ctype.h>
 #include <dlfcn.h>
 #include <io.h>
+#include <arpa/inet.h>
+
 #include "defs.h"
 
 void PError(char *Str);
index d2c2467..6105374 100644 (file)
@@ -36,7 +36,7 @@
  * to the project. For more information see the website or contact
  * the copyright holders.
  *
- * $Id: ifnet.c,v 1.39 2007/11/08 22:47:43 bernd67 Exp $
+ * $Id: ifnet.c,v 1.40 2007/11/08 23:23:13 bernd67 Exp $
  */
 
 #include "interfaces.h"
 #include "scheduler.h"
 #include "mantissa.h"
 #include "lq_packet.h"
+#include "net_olsr.h"
 
 #include <iphlpapi.h>
 #include <iprtrmib.h>
 
+#include <arpa/inet.h>
+
 struct MibIpInterfaceRow
 {
   USHORT Family;
@@ -544,8 +547,10 @@ void RemoveInterface(struct olsr_if *IntConf)
 
     else
     {
-      COPY_IP(&olsr_cnf->main_addr, &ifnet->ip_addr);
-      OLSR_PRINTF(1, "New main address: %s.\n", olsr_ip_to_string(&olsr_cnf->main_addr));
+      struct ipaddr_str buf;
+      //COPY_IP(&olsr_cnf->main_addr, &ifnet->ip_addr);
+      olsr_cnf->main_addr = ifnet->ip_addr;
+      OLSR_PRINTF(1, "New main address: %s.\n", olsr_ip_to_string(&buf, &olsr_cnf->main_addr));
     }
   }
 
@@ -603,6 +608,7 @@ int add_hemu_if(struct olsr_if *iface)
   struct interface *ifp;
   union olsr_ip_addr null_addr;
   olsr_u32_t addr[4];
+  struct ipaddr_str buf;
 
   if(!iface->host_emul)
     return -1;
@@ -622,7 +628,7 @@ int add_hemu_if(struct olsr_if *iface)
 
   OLSR_PRINTF(1, "Adding %s(host emulation):\n", ifp->int_name);
 
-  OLSR_PRINTF(1, "       Address:%s\n", olsr_ip_to_string(&iface->hemu_ip));
+  OLSR_PRINTF(1, "       Address:%s\n", olsr_ip_to_string(&buf, &iface->hemu_ip));
 
   OLSR_PRINTF(1, "       NB! This is a emulated interface\n       that does not exist in the kernel!\n");
 
@@ -632,8 +638,9 @@ int add_hemu_if(struct olsr_if *iface)
   memset(&null_addr, 0, olsr_cnf->ipsize);
   if(ipequal(&null_addr, &olsr_cnf->main_addr))
     {
-      COPY_IP(&olsr_cnf->main_addr, &iface->hemu_ip);
-      OLSR_PRINTF(1, "New main address: %s\n", olsr_ip_to_string(&olsr_cnf->main_addr));
+      //COPY_IP(&olsr_cnf->main_addr, &iface->hemu_ip);
+      olsr_cnf->main_addr = iface->hemu_ip;
+      OLSR_PRINTF(1, "New main address: %s\n", olsr_ip_to_string(&buf, &olsr_cnf->main_addr));
     }
 
   ifp->int_mtu = OLSR_DEFAULT_MTU;
@@ -776,6 +783,7 @@ int add_hemu_if(struct olsr_if *iface)
 
 int chk_if_changed(struct olsr_if *IntConf)
 {
+  struct ipaddr_str buf;
   struct interface *Int;
   struct InterfaceInfo Info;
   int Res;
@@ -836,18 +844,18 @@ int chk_if_changed(struct olsr_if *IntConf)
     Res = 1;
   }
 
-  OldVal.v4 = ((struct sockaddr_in *)&Int->int_addr)->sin_addr.s_addr;
-  NewVal.v4 = Info.Addr;
+  OldVal.v4 = ((struct sockaddr_in *)&Int->int_addr)->sin_addr;
+  NewVal.v4.s_addr = Info.Addr;
 
 #ifdef DEBUG
-  OLSR_PRINTF(3, "\tAddress: %s\n", olsr_ip_to_string(&NewVal));
+  OLSR_PRINTF(3, "\tAddress: %s\n", olsr_ip_to_string(&buf, &NewVal));
 #endif
 
-  if (NewVal.v4 != OldVal.v4)
+  if (NewVal.v4.s_addr != OldVal.v4.s_addr)
   {
     OLSR_PRINTF(1, "\tAddress change.\n");
-    OLSR_PRINTF(1, "\tOld: %s\n", olsr_ip_to_string(&OldVal));
-    OLSR_PRINTF(1, "\tNew: %s\n", olsr_ip_to_string(&NewVal));
+    OLSR_PRINTF(1, "\tOld: %s\n", olsr_ip_to_string(&buf, &OldVal));
+    OLSR_PRINTF(1, "\tNew: %s\n", olsr_ip_to_string(&buf, &NewVal));
 
     Int->ip_addr.v4 = NewVal.v4;
 
@@ -855,9 +863,9 @@ int chk_if_changed(struct olsr_if *IntConf)
 
     AddrIn->sin_family = AF_INET;
     AddrIn->sin_port = 0;
-    AddrIn->sin_addr.s_addr = NewVal.v4;
+    AddrIn->sin_addr = NewVal.v4;
 
-    if (olsr_cnf->main_addr.v4 == OldVal.v4)
+    if (olsr_cnf->main_addr.v4.s_addr == OldVal.v4.s_addr)
     {
       OLSR_PRINTF(1, "\tMain address change.\n");
 
@@ -870,24 +878,24 @@ int chk_if_changed(struct olsr_if *IntConf)
   else
     OLSR_PRINTF(3, "\tNo address change.\n");
 
-  OldVal.v4 = ((struct sockaddr_in *)&Int->int_netmask)->sin_addr.s_addr;
-  NewVal.v4 = Info.Mask;
+  OldVal.v4 = ((struct sockaddr_in *)&Int->int_netmask)->sin_addr;
+  NewVal.v4.s_addr = Info.Mask;
 
 #ifdef DEBUG
-  OLSR_PRINTF(3, "\tNetmask: %s\n", olsr_ip_to_string(&NewVal));
+  OLSR_PRINTF(3, "\tNetmask: %s\n", olsr_ip_to_string(&buf, &NewVal));
 #endif
 
-  if (NewVal.v4 != OldVal.v4)
+  if (NewVal.v4.s_addr != OldVal.v4.s_addr)
   {
     OLSR_PRINTF(1, "\tNetmask change.\n");
-    OLSR_PRINTF(1, "\tOld: %s\n", olsr_ip_to_string(&OldVal));
-    OLSR_PRINTF(1, "\tNew: %s\n", olsr_ip_to_string(&NewVal));
+    OLSR_PRINTF(1, "\tOld: %s\n", olsr_ip_to_string(&buf, &OldVal));
+    OLSR_PRINTF(1, "\tNew: %s\n", olsr_ip_to_string(&buf, &NewVal));
 
     AddrIn = (struct sockaddr_in *)&Int->int_netmask;
 
     AddrIn->sin_family = AF_INET;
     AddrIn->sin_port = 0;
-    AddrIn->sin_addr.s_addr = NewVal.v4;
+    AddrIn->sin_addr = NewVal.v4;
 
     Res = 1;
   }
@@ -895,24 +903,24 @@ int chk_if_changed(struct olsr_if *IntConf)
   else
     OLSR_PRINTF(3, "\tNo netmask change.\n");
 
-  OldVal.v4 = ((struct sockaddr_in *)&Int->int_broadaddr)->sin_addr.s_addr;
-  NewVal.v4 = Info.Broad;
+  OldVal.v4 = ((struct sockaddr_in *)&Int->int_broadaddr)->sin_addr;
+  NewVal.v4.s_addr = Info.Broad;
 
 #ifdef DEBUG
-  OLSR_PRINTF(3, "\tBroadcast address: %s\n", olsr_ip_to_string(&NewVal));
+  OLSR_PRINTF(3, "\tBroadcast address: %s\n", olsr_ip_to_string(&buf, &NewVal));
 #endif
 
-  if (NewVal.v4 != OldVal.v4)
+  if (NewVal.v4.s_addr != OldVal.v4.s_addr)
   {
     OLSR_PRINTF(1, "\tBroadcast address change.\n");
-    OLSR_PRINTF(1, "\tOld: %s\n", olsr_ip_to_string(&OldVal));
-    OLSR_PRINTF(1, "\tNew: %s\n", olsr_ip_to_string(&NewVal));
+    OLSR_PRINTF(1, "\tOld: %s\n", olsr_ip_to_string(&buf, &OldVal));
+    OLSR_PRINTF(1, "\tNew: %s\n", olsr_ip_to_string(&buf, &NewVal));
 
     AddrIn = (struct sockaddr_in *)&Int->int_broadaddr;
 
     AddrIn->sin_family = AF_INET;
     AddrIn->sin_port = 0;
-    AddrIn->sin_addr.s_addr = NewVal.v4;
+    AddrIn->sin_addr = NewVal.v4;
 
     Res = 1;
   }
@@ -928,6 +936,7 @@ int chk_if_changed(struct olsr_if *IntConf)
 
 int chk_if_up(struct olsr_if *IntConf, int DebugLevel __attribute__((unused)))
 {
+  struct ipaddr_str buf;
   struct InterfaceInfo Info;
   struct interface *New;
   union olsr_ip_addr NullAddr;
@@ -965,8 +974,8 @@ int chk_if_up(struct olsr_if *IntConf, int DebugLevel __attribute__((unused)))
   AddrIn->sin_port = 0;
   AddrIn->sin_addr.s_addr = Info.Broad;
 
-  if (IntConf->cnf->ipv4_broadcast.v4 != 0)
-    AddrIn->sin_addr.s_addr = IntConf->cnf->ipv4_broadcast.v4;
+  if (IntConf->cnf->ipv4_broadcast.v4.s_addr != 0)
+    AddrIn->sin_addr = IntConf->cnf->ipv4_broadcast.v4;
 
   New->int_flags = 0;
 
@@ -998,20 +1007,18 @@ int chk_if_up(struct olsr_if *IntConf, int DebugLevel __attribute__((unused)))
               IntConf->name, New->if_index);
       
   OLSR_PRINTF(1, "\tMTU: %d\n", New->int_mtu);
-  OLSR_PRINTF(1, "\tAddress: %s\n", sockaddr_to_string(&New->int_addr));
-  OLSR_PRINTF(1, "\tNetmask: %s\n", sockaddr_to_string(&New->int_netmask));
-  OLSR_PRINTF(1, "\tBroadcast address: %s\n",
-              sockaddr_to_string(&New->int_broadaddr));
+  OLSR_PRINTF(1, "\tAddress: %s\n", sockaddr_to_string(&buf, (const struct sockaddr*)&New->int_addr));
+  OLSR_PRINTF(1, "\tNetmask: %s\n", sockaddr_to_string(&buf, (const struct sockaddr*)&New->int_netmask));
+  OLSR_PRINTF(1, "\tBroadcast address: %s\n", sockaddr_to_string(&buf, (const struct sockaddr*)&New->int_broadaddr));
 
-  New->ip_addr.v4 =
-    ((struct sockaddr_in *)&New->int_addr)->sin_addr.s_addr;
+  New->ip_addr.v4 = New->int_addr.sin_addr;
       
   New->if_index = Info.Index;
 
   OLSR_PRINTF(3, "\tKernel index: %08x\n", New->if_index);
 
   AddrSockAddr = addrsock.sin_addr.s_addr;
-  addrsock.sin_addr.s_addr = New->ip_addr.v4;
+  addrsock.sin_addr = New->ip_addr.v4;
 
   New->olsr_socket = getsocket((struct sockaddr *)&addrsock,
                                127 * 1024, New->int_name);
@@ -1036,8 +1043,9 @@ int chk_if_up(struct olsr_if *IntConf, int DebugLevel __attribute__((unused)))
   
   if(ipequal(&NullAddr, &olsr_cnf->main_addr))
   {
-    COPY_IP(&olsr_cnf->main_addr, &New->ip_addr);
-    OLSR_PRINTF(1, "New main address: %s\n", olsr_ip_to_string(&olsr_cnf->main_addr));
+    //COPY_IP(&olsr_cnf->main_addr, &New->ip_addr);
+    olsr_cnf->main_addr = New->ip_addr;
+    OLSR_PRINTF(1, "New main address: %s\n", olsr_ip_to_string(&buf, &olsr_cnf->main_addr));
   }
 
   net_add_buffer(New);
index 9c264b4..724f0d9 100644 (file)
  * to the project. For more information see the website or contact
  * the copyright holders.
  *
- * $Id: kernel_routes.c,v 1.23 2007/09/05 22:17:26 bernd67 Exp $
+ * $Id: kernel_routes.c,v 1.24 2007/11/08 23:23:13 bernd67 Exp $
  */
 
 #include <stdio.h>
 #include "net/route.h"
 
 #include "kernel_routes.h"
-#include "defs.h"
+#include "net_olsr.h"
+#include "ipc_frontend.h"
 
 #define WIN32_LEAN_AND_MEAN
 #include <iprtrmib.h>
@@ -69,19 +70,19 @@ int olsr_ioctl_add_route(struct rt_entry *rt)
 
   memset(&Row, 0, sizeof (MIB_IPFORWARDROW));
 
-  Row.dwForwardDest = rt->rt_dst.prefix.v4;
+  Row.dwForwardDest = rt->rt_dst.prefix.v4.s_addr;
 
   if (!olsr_prefix_to_netmask(&mask, rt->rt_dst.prefix_len)) {
     return -1;
   } else {
-      Row.dwForwardMask = mask.v4;
+      Row.dwForwardMask = mask.v4.s_addr;
   }
 
   Row.dwForwardPolicy = 0;
-  Row.dwForwardNextHop = rt->rt_best->rtp_nexthop.gateway.v4;
+  Row.dwForwardNextHop = rt->rt_best->rtp_nexthop.gateway.v4.s_addr;
   Row.dwForwardIfIndex = rt->rt_best->rtp_nexthop.iif_index;
   // MIB_IPROUTE_TYPE_DIRECT and MIB_IPROUTE_TYPE_INDIRECT
-  Row.dwForwardType = (rt->rt_dst.prefix.v4 == rt->rt_best->rtp_nexthop.gateway.v4) ? 3 : 4;
+  Row.dwForwardType = (rt->rt_dst.prefix.v4.s_addr == rt->rt_best->rtp_nexthop.gateway.v4.s_addr) ? 3 : 4;
   Row.dwForwardProto = 3; // MIB_IPPROTO_NETMGMT
   Row.dwForwardAge = INFINITE;
   Row.dwForwardNextHopAS = 0;
@@ -146,21 +147,19 @@ int olsr_ioctl_del_route(struct rt_entry *rt)
 
   OLSR_PRINTF(2, "KERN: Deleting %s\n", olsr_rt_to_string(rt));
 
-  memset(&Row, 0, sizeof (MIB_IPFORWARDROW));
+  memset(&Row, 0, sizeof (Row));
 
-  Row.dwForwardDest = rt->rt_dst.prefix.v4;
+  Row.dwForwardDest = rt->rt_dst.prefix.v4.s_addr;
 
   if (!olsr_prefix_to_netmask(&mask, rt->rt_dst.prefix_len)) {
     return -1;
-  } else {
-      Row.dwForwardMask = mask.v4;
   }
-
+  Row.dwForwardMask = mask.v4.s_addr;
   Row.dwForwardPolicy = 0;
-  Row.dwForwardNextHop = rt->rt_nexthop.gateway.v4;
+  Row.dwForwardNextHop = rt->rt_nexthop.gateway.v4.s_addr;
   Row.dwForwardIfIndex = rt->rt_nexthop.iif_index;
   // MIB_IPROUTE_TYPE_DIRECT and MIB_IPROUTE_TYPE_INDIRECT
-  Row.dwForwardType = (rt->rt_dst.prefix.v4 == rt->rt_nexthop.gateway.v4) ? 3 : 4;
+  Row.dwForwardType = (rt->rt_dst.prefix.v4.s_addr == rt->rt_nexthop.gateway.v4.s_addr) ? 3 : 4;
   Row.dwForwardProto = 3; // MIB_IPPROTO_NETMGMT
   Row.dwForwardAge = INFINITE;
   Row.dwForwardNextHopAS = 0;
index 057790d..b0aec42 100644 (file)
@@ -36,7 +36,7 @@
  * to the project. For more information see the website or contact
  * the copyright holders.
  *
- * $Id: net.c,v 1.22 2007/04/25 22:24:09 bernd67 Exp $
+ * $Id: net.c,v 1.23 2007/11/08 23:23:13 bernd67 Exp $
  */
 
 #if defined WINCE
@@ -54,6 +54,7 @@
 #include <stdlib.h>
 #include "defs.h"
 #include "net_os.h"
+#include "net_olsr.h"
 
 #if defined WINCE
 #define WIDE_STRING(s) L##s
@@ -337,13 +338,14 @@ void DisableIcmpRedirects(void)
 int join_mcast(struct interface *Nic, int Sock)
 {
   /* See linux/in6.h */
-
+  struct ipaddr_str buf;
   struct ipv6_mreq McastReq;
 
-  COPY_IP(&McastReq.ipv6mr_multiaddr, &Nic->int6_multaddr.sin6_addr);
+  //COPY_IP(&McastReq.ipv6mr_multiaddr, &Nic->int6_multaddr.sin6_addr);
+  McastReq.ipv6mr_multiaddr = Nic->int6_multaddr.sin6_addr;
   McastReq.ipv6mr_interface = Nic->if_index;
 
-  OLSR_PRINTF(3, "Interface %s joining multicast %s...", Nic->int_name, olsr_ip_to_string((union olsr_ip_addr *)&Nic->int6_multaddr.sin6_addr));
+  OLSR_PRINTF(3, "Interface %s joining multicast %s...", Nic->int_name, olsr_ip_to_string(&buf, (union olsr_ip_addr *)&Nic->int6_multaddr.sin6_addr));
   /* Send multicast */
   if(setsockopt(Sock, 
                IPPROTO_IPV6,