Fix compile bugs for win32
authorHenning Rogge <hrogge@googlemail.com>
Sat, 24 Jul 2010 07:42:47 +0000 (09:42 +0200)
committerHenning Rogge <hrogge@googlemail.com>
Sat, 24 Jul 2010 07:42:47 +0000 (09:42 +0200)
Makefile.inc
src/tc_set.c
src/win32/compat.c
src/win32/dlfcn.h
src/win32/ifnet.c
src/win32/kernel_routes.c
src/win32/net.c

index c8211f4..73fc18a 100644 (file)
@@ -95,10 +95,14 @@ endif
 # OLSRd hardening
 #################
 # -D_FORTIFY_SOURCE=2 need at least -O2
-ifeq ($(HARDENING),1)
-ifeq ($(OPTIMIZE),)
-OPTIMIZE := -O2
+ifeq ($(OS),win32)
+  HARDENING := 0
 endif
+
+ifeq ($(HARDENING),1)
+  ifeq ($(OPTIMIZE),)
+    OPTIMIZE := -O2
+  endif
 endif
 
 ##############
index 215a72b..e0d7347 100644 (file)
@@ -319,8 +319,8 @@ olsr_expire_tc_entry(void *context)
 #endif
   struct tc_entry *tc = context;
 
-  OLSR_DEBUG(LOG_TC, "TC: expire node entry %s (%zx)\n",
-             olsr_ip_to_string(&buf, &tc->addr), (size_t)context);
+  OLSR_DEBUG(LOG_TC, "TC: expire node entry %s\n",
+             olsr_ip_to_string(&buf, &tc->addr));
 
   olsr_delete_tc_entry(tc);
 
index 201b578..a1ebe66 100644 (file)
@@ -178,7 +178,7 @@ WinSockPError(char *Str)
 // XXX - not thread-safe, which is okay for our purposes
 
 void *
-dlopen(char *Name, int Flags __attribute__ ((unused)))
+dlopen(const char *Name, int Flags __attribute__ ((unused)))
 {
 #if !defined WINCE
   return (void *)LoadLibrary(Name);
index 5032832..1767326 100644 (file)
@@ -45,7 +45,7 @@
 
 #define RTLD_NOW 0
 
-void *dlopen(char *Name, int Flags);
+void *dlopen(const char *Name, int Flags);
 int dlclose(void *Handle);
 void *dlsym(void *Handle, const char *Name);
 char *dlerror(void);
index c3095cb..a3d9b7a 100644 (file)
@@ -442,7 +442,6 @@ chk_if_changed(struct olsr_if_config *IntConf)
   struct interface *Int;
   struct InterfaceInfo Info;
   int Res;
-  int IsWlan;
   union olsr_ip_addr OldVal, NewVal;
   struct sockaddr_in *AddrIn;
 
@@ -471,7 +470,7 @@ chk_if_changed(struct olsr_if_config *IntConf)
     Res = 1;
   }
 
-  OldVal.v4 = Int->int_addr.sin_addr;
+  OldVal.v4 = Int->int_src.v4.sin_addr;
   NewVal.v4.s_addr = Info.Addr;
 
   OLSR_INFO(LOG_NETWORKING, "\tAddress: %s\n", olsr_ip_to_string(&buf, &NewVal));
@@ -483,7 +482,7 @@ chk_if_changed(struct olsr_if_config *IntConf)
 
     Int->ip_addr.v4 = NewVal.v4;
 
-    AddrIn = &Int->int_addr;
+    AddrIn = &Int->int_src.v4;
 
     AddrIn->sin_family = AF_INET;
     AddrIn->sin_port = 0;
@@ -495,29 +494,7 @@ chk_if_changed(struct olsr_if_config *IntConf)
   else
     OLSR_DEBUG(LOG_NETWORKING, "\tNo address change.\n");
 
-  OldVal.v4 = ((struct sockaddr_in *)&Int->int_netmask)->sin_addr;
-  NewVal.v4.s_addr = Info.Mask;
-
-  OLSR_INFO(LOG_NETWORKING, "\tNetmask: %s\n", olsr_ip_to_string(&buf, &NewVal));
-
-  if (NewVal.v4.s_addr != OldVal.v4.s_addr) {
-    OLSR_DEBUG(LOG_NETWORKING, "\tNetmask change.\n");
-    OLSR_DEBUG(LOG_NETWORKING, "\tOld: %s\n", olsr_ip_to_string(&buf, &OldVal));
-    OLSR_DEBUG(LOG_NETWORKING, "\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 = NewVal.v4;
-
-    Res = 1;
-  }
-
-  else
-    OLSR_DEBUG(LOG_NETWORKING, "\tNo netmask change.\n");
-
-  OldVal.v4 = Int->int_broadaddr.sin_addr;
+  OldVal.v4 = Int->int_multicast.v4.sin_addr;
   NewVal.v4.s_addr = Info.Broad;
 
   OLSR_INFO(LOG_NETWORKING, "\tBroadcast address: %s\n", olsr_ip_to_string(&buf, &NewVal));
@@ -527,7 +504,7 @@ chk_if_changed(struct olsr_if_config *IntConf)
     OLSR_DEBUG(LOG_NETWORKING, "\tOld: %s\n", olsr_ip_to_string(&buf, &OldVal));
     OLSR_DEBUG(LOG_NETWORKING, "\tNew: %s\n", olsr_ip_to_string(&buf, &NewVal));
 
-    AddrIn = &Int->int_broadaddr;
+    AddrIn = &Int->int_multicast.v4;
 
     AddrIn->sin_family = AF_INET;
     AddrIn->sin_port = 0;
@@ -552,7 +529,6 @@ chk_if_up(struct olsr_if_config *IntConf)
   struct InterfaceInfo Info;
   struct interface *New;
   union olsr_ip_addr NullAddr;
-  int IsWlan;
   struct sockaddr_in *AddrIn;
   size_t name_size;
 
@@ -569,19 +545,13 @@ chk_if_up(struct olsr_if_config *IntConf)
 #if 0
   New->gen_properties = NULL;
 #endif
-  AddrIn = &New->int_addr;
+  AddrIn = &New->int_src.v4;
 
   AddrIn->sin_family = AF_INET;
   AddrIn->sin_port = 0;
   AddrIn->sin_addr.s_addr = Info.Addr;
 
-  AddrIn = (struct sockaddr_in *)&New->int_netmask;
-
-  AddrIn->sin_family = AF_INET;
-  AddrIn->sin_port = 0;
-  AddrIn->sin_addr.s_addr = Info.Mask;
-
-  AddrIn = &New->int_broadaddr;
+  AddrIn = &New->int_multicast.v4;
 
   AddrIn->sin_family = AF_INET;
   AddrIn->sin_port = 0;
@@ -590,38 +560,28 @@ chk_if_up(struct olsr_if_config *IntConf)
   if (IntConf->cnf->ipv4_broadcast.v4.s_addr != 0)
     AddrIn->sin_addr = IntConf->cnf->ipv4_broadcast.v4;
 
-  New->int_flags = 0;
-
   New->int_mtu = Info.Mtu;
 
   name_size = strlen(IntConf->name) + 1;
   New->int_name = olsr_malloc(name_size, "Interface 2");
   strscpy(New->int_name, IntConf->name, name_size);
 
-  IsWlan = IsWireless(IntConf->name);
-
-  if (IsWlan < 0)
-    IsWlan = 1;
-
-  New->is_wireless = IsWlan;
-
   New->olsr_seqnum = rand() & 0xffff;
 
   OLSR_INFO(LOG_NETWORKING, "\tInterface %s set up for use with index %d\n\n", IntConf->name, New->if_index);
 
   OLSR_INFO(LOG_NETWORKING, "\tMTU: %d\n", New->int_mtu);
-  OLSR_INFO(LOG_NETWORKING, "\tAddress: %s\n", ip4_to_string(&buf, New->int_addr.sin_addr));
-  OLSR_INFO(LOG_NETWORKING, "\tNetmask: %s\n", ip4_to_string(&buf, ((struct sockaddr_in *)&New->int_netmask)->sin_addr));
-  OLSR_INFO(LOG_NETWORKING, "\tBroadcast address: %s\n", ip4_to_string(&buf, New->int_broadaddr.sin_addr));
+  OLSR_INFO(LOG_NETWORKING, "\tAddress: %s\n", ip4_to_string(&buf, New->int_src.v4.sin_addr));
+  OLSR_INFO(LOG_NETWORKING, "\tBroadcast address: %s\n", ip4_to_string(&buf, New->int_multicast.v4.sin_addr));
 
-  New->ip_addr.v4 = New->int_addr.sin_addr;
+  New->ip_addr.v4 = New->int_src.v4.sin_addr;
 
   New->if_index = Info.Index;
 
   OLSR_INFO(LOG_NETWORKING, "\tKernel index: %08x\n", New->if_index);
 
-  New->olsr_socket = getsocket(BUFSPACE, New->int_name);
-  New->send_socket = getsocket(0, New->int_name);
+  New->olsr_socket = getsocket(BUFSPACE, New);
+  New->send_socket = getsocket(0, New);
 
   if (New->olsr_socket < 0) {
     OLSR_ERROR(LOG_NETWORKING, "Could not initialize socket... exiting!\n\n");
@@ -631,8 +591,8 @@ chk_if_up(struct olsr_if_config *IntConf)
   add_olsr_socket(New->olsr_socket, &olsr_input, NULL, NULL, SP_PR_READ);
 
   /* Queue */
-  listold_node_init(&New->int_node);
-  listold_add_before(&interface_head, &New->int_node);
+  list_init_node(&New->int_node);
+  list_add_before(&interface_head, &New->int_node);
 
   IntConf->interf = New;
   lock_interface(IntConf->interf);
index 88d3554..8b4d3de 100644 (file)
@@ -184,12 +184,6 @@ olsr_kernel_del_route(const struct rt_entry *rt, int ip_version)
   return 0;
 }
 
-int
-olsr_lo_interface(union olsr_ip_addr *ip __attribute__ ((unused)), bool create __attribute__ ((unused)))
-{
-  return 0;
-}
-
 /*
  * Local Variables:
  * c-basic-offset: 2
index 05bc9a8..0192fcd 100644 (file)
@@ -109,10 +109,10 @@ getsocket(int BuffSize, struct interface *ifp __attribute__ ((unused)))
 
   memset(&Addr, 0, sizeof(Addr));
   Addr.sin_family = AF_INET;
-  Addr.sin_port = htons(olsr_cnf->olsrport);
+  Addr.sin_port = htons(olsr_cnf->olsr_port);
 
-  if(bufspace <= 0) {
-    Addr.sin_addr.s_addr = ifp->int_addr.sin_addr.s_addr;
+  if(BuffSize <= 0) {
+    Addr.sin_addr.s_addr = ifp->int_src.v4.sin_addr.s_addr;
   }
   else {
     Addr.sin_addr.s_addr = INADDR_ANY;
@@ -168,10 +168,10 @@ getsocket6(int BuffSize, struct interface *ifp __attribute__ ((unused)))
 
   memset(&Addr6, 0, sizeof(Addr6));
   Addr6.sin6_family = AF_INET6;
-  Addr6.sin6_port = htons(olsr_cnf->olsrport);
+  Addr6.sin6_port = htons(olsr_cnf->olsr_port);
 
-  if(bufspace <= 0) {
-    memcpy(&Addr6.sin6_addr, &ifp->int6_addr.sin6_addr, sizeof(struct in6_addr));
+  if(BuffSize <= 0) {
+    memcpy(&Addr6.sin6_addr, &ifp->int_src.v6.sin6_addr, sizeof(struct in6_addr));
   }
 
   if (bind(Sock, (struct sockaddr *)&Addr6, sizeof(Addr6)) < 0) {
@@ -328,11 +328,11 @@ join_mcast(struct interface *Nic, int Sock)
   struct ipaddr_str buf;
   struct ipv6_mreq McastReq;
 
-  McastReq.ipv6mr_multiaddr = Nic->int6_multaddr.sin6_addr;
+  McastReq.ipv6mr_multiaddr = Nic->int_multicast.v6.sin6_addr;
   McastReq.ipv6mr_interface = Nic->if_index;
 
   OLSR_DEBUG(LOG_NETWORKING, "Interface %s joining multicast %s...", Nic->int_name,
-             olsr_ip_to_string(&buf, (union olsr_ip_addr *)&Nic->int6_multaddr.sin6_addr));
+             olsr_ip_to_string(&buf, (union olsr_ip_addr *)&Nic->int_multicast.v6.sin6_addr));
   /* Send multicast */
   if (setsockopt(Sock, IPPROTO_IPV6, IPV6_ADD_MEMBERSHIP, (char *)&McastReq, sizeof(struct ipv6_mreq))
       < 0) {
@@ -371,9 +371,9 @@ join_mcast(struct interface *Nic, int Sock)
  */
 
 ssize_t
-olsr_sendto(int s, const void *buf, size_t len, int flags, const struct sockaddr * to, socklen_t tolen)
+olsr_sendto(int s, const void *buf, size_t len, int flags, const union olsr_sockaddr *sock)
 {
-  return sendto(s, buf, len, flags, to, tolen);
+  return sendto(s, buf, len, flags, &sock->std, sizeof(*sock));
 }
 
 
@@ -382,9 +382,9 @@ olsr_sendto(int s, const void *buf, size_t len, int flags, const struct sockaddr
  */
 
 ssize_t
-olsr_recvfrom(int s, void *buf, size_t len, int flags __attribute__ ((unused)), struct sockaddr * from, socklen_t * fromlen)
+olsr_recvfrom(int s, void *buf, size_t len, int flags __attribute__ ((unused)), union olsr_sockaddr *sock, socklen_t * fromlen)
 {
-  return recvfrom(s, buf, len, 0, from, fromlen);
+  return recvfrom(s, buf, len, 0, &sock->std, fromlen);
 }
 
 /**