src directory mostly changed to new logger
authorHenning Rogge <hrogge@googlemail.com>
Sat, 21 Mar 2009 21:10:37 +0000 (22:10 +0100)
committerHenning Rogge <hrogge@googlemail.com>
Sat, 21 Mar 2009 21:10:37 +0000 (22:10 +0100)
16 files changed:
src/bsd/kernel_routes.c
src/bsd/net.c
src/defs.h
src/ifnet.h
src/interfaces.c
src/linux/apm.c
src/linux/kernel_routes.c
src/linux/net.c
src/lq_plugin.c
src/olsr.c
src/parser.c
src/process_routes.c
src/routing_table.c
src/scheduler.c
src/unix/ifnet.c
src/win32/ifnet.c

index ae3612c..a74572b 100644 (file)
@@ -110,9 +110,9 @@ add_del_route(const struct rt_entry *rt, int add)
   int len;                             /* message size written to routing socket */
 
   if (add) {
-    OLSR_PRINTF(2, "KERN: Adding %s\n", olsr_rtp_to_string(rt->rt_best));
+    OLSR_DEBUG(LOG_ROUTING, "KERN: Adding %s\n", olsr_rtp_to_string(rt->rt_best));
   } else {
-    OLSR_PRINTF(2, "KERN: Deleting %s\n", olsr_rt_to_string(rt));
+    OLSR_DEBUG(LOG_ROUTING, "KERN: Deleting %s\n", olsr_rt_to_string(rt));
   }
 
   memset(buff, 0, sizeof(buff));
@@ -149,9 +149,9 @@ add_del_route(const struct rt_entry *rt, int add)
   /*
    * vxWorks: change proto or tos
    */
-  OLSR_PRINTF(8, "\t- Setting Protocol: 0\n");
+  OLSR_DEBUG(LOG_ROUTING, "\t- Setting Protocol: 0\n");
   ((struct sockaddr_rt *)(&sin4))->srt_proto = 0;
-  OLSR_PRINTF(8, "\t- Setting TOS: 0\n");
+  OLSR_DEBUG(LOG_ROUTING, "\t- Setting TOS: 0\n");
   ((struct sockaddr_rt *)(&sin4))->srt_tos = 0;
 #endif
 
@@ -183,7 +183,7 @@ add_del_route(const struct rt_entry *rt, int add)
        * the output interface MAC address.
        */
       if (getifaddrs(&addrs)) {
-        fprintf(stderr, "\ngetifaddrs() failed\n");
+        OLSR_WARN(LOG_ROUTING, "\ngetifaddrs() failed\n");
         return -1;
       }
 
@@ -192,7 +192,7 @@ add_del_route(const struct rt_entry *rt, int add)
           break;
 
       if (awalker == NULL) {
-        fprintf(stderr, "\nInterface %s not found\n", nexthop->interface->int_name);
+        OLSR_WARN(LOG_ROUTING, "\nInterface %s not found\n", nexthop->interface->int_name);
         freeifaddrs(addrs);
         return -1;
       }
@@ -231,7 +231,7 @@ add_del_route(const struct rt_entry *rt, int add)
   rtm->rtm_msglen = (unsigned short)(walker - buff);
   len = write(olsr_cnf->rts_bsd, buff, rtm->rtm_msglen);
   if (0 != rtm->rtm_errno || len < rtm->rtm_msglen) {
-    fprintf(stderr, "\nCannot write to routing socket: (rtm_errno= 0x%x) (last error message: %s)\n", rtm->rtm_errno,
+    OLSR_WARN(LOG_ROUTING, "\nCannot write to routing socket: (rtm_errno= 0x%x) (last error message: %s)\n", rtm->rtm_errno,
             strerror(errno));
   }
   return 0;
@@ -250,9 +250,9 @@ add_del_route6(const struct rt_entry *rt, int add)
   int len;
 
   if (add) {
-    OLSR_PRINTF(2, "KERN: Adding %s\n", olsr_rtp_to_string(rt->rt_best));
+    OLSR_DEBUG(LOG_ROUTING, "KERN: Adding %s\n", olsr_rtp_to_string(rt->rt_best));
   } else {
-    OLSR_PRINTF(2, "KERN: Deleting %s\n", olsr_rt_to_string(rt));
+    OLSR_DEBUG(LOG_ROUTING, "KERN: Deleting %s\n", olsr_rt_to_string(rt));
   }
 
   memset(buff, 0, sizeof(buff));
@@ -349,7 +349,7 @@ add_del_route6(const struct rt_entry *rt, int add)
   rtm->rtm_msglen = (unsigned short)(walker - buff);
   len = write(olsr_cnf->rts_bsd, buff, rtm->rtm_msglen);
   if (len < 0 && !(errno == EEXIST || errno == ESRCH)) {
-    fprintf(stderr, "cannot write to routing socket: %s\n", strerror(errno));
+    OLSR_WARN(LOG_ROUTING, "cannot write to routing socket: %s\n", strerror(errno));
   }
 
   /*
@@ -375,12 +375,12 @@ add_del_route6(const struct rt_entry *rt, int add)
     drtm->rtm_msglen = (unsigned short)(walker - dbuff);
     len = write(olsr_cnf->rts_bsd, dbuff, drtm->rtm_msglen);
     if (len < 0) {
-      fprintf(stderr, "cannot delete route: %s\n", strerror(errno));
+      OLSR_WARN(LOG_ROUTING, "cannot delete route: %s\n", strerror(errno));
     }
     rtm->rtm_seq = ++seq;
     len = write(olsr_cnf->rts_bsd, buff, rtm->rtm_msglen);
     if (len < 0) {
-      fprintf(stderr, "still cannot add route: %s\n", strerror(errno));
+      OLSR_WARN(LOG_ROUTING, "still cannot add route: %s\n", strerror(errno));
     }
   }
   return 0;
index 69ffff9..3066431 100644 (file)
@@ -71,7 +71,7 @@
 #include "wrn/coreip/net/ifaddrs.h"
 #include <selectLib.h>
 #include <logLib.h>
-#define syslog(a, b) fdprintf(a, b);
+// #define syslog(a, b) fdprintf(a, b);
 #else
 #include <sys/param.h>
 #endif
 #endif
 
 #include <sys/sysctl.h>
+#include <sys/sockio.h>
 
 static int ignore_redir;
 static int send_redir;
@@ -184,7 +185,7 @@ enable_ip_forwarding(int version)
 
   gateway = set_sysctl_int(name, 1);
   if (gateway < 0) {
-    fprintf(stderr,
+    OLSR_WARN(LOG_NETWORKING,
            "Cannot enable IP forwarding. Please enable IP forwarding manually."
             " Continuing in 3 seconds...\n");
     sleep(3);
@@ -225,7 +226,7 @@ disable_redirects_global(int version)
 #endif
 
   if (ignore_redir < 0) {
-    fprintf(stderr,
+    OLSR_WARN(LOG_NETWORKING,
            "Cannot disable incoming ICMP redirect messages. "
             "Please disable them manually. Continuing in 3 seconds...\n");
     sleep(3);
@@ -240,7 +241,7 @@ disable_redirects_global(int version)
 
   send_redir = set_sysctl_int(name, 0);
   if (send_redir < 0) {
-    fprintf(stderr,
+    OLSR_WARN(LOG_NETWORKING,
            "Cannot disable outgoing ICMP redirect messages. "
             "Please disable them manually. Continuing in 3 seconds...\n");
     sleep(3);
@@ -315,31 +316,26 @@ gethemusocket(struct sockaddr_in *pin)
 {
   int sock, on = 1;
 
-  OLSR_PRINTF(1, "       Connecting to switch daemon port 10150...");
+  OLSR_INFO(LOG_NETWORKING, "       Connecting to switch daemon port %d...", pin->sin_port);
 
 
   if ((sock = socket(AF_INET, SOCK_STREAM, 0)) < 0) {
-    perror("hcsocket");
-    syslog(LOG_ERR, "hcsocket: %m");
-    return (-1);
+    OLSR_ERROR(LOG_NETWORKING, "Cannot open socket for emulation (%s)\n", strerror(errno));
+    olsr_exit(EXIT_FAILURE);
   }
 
   if (setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, (char *)&on, sizeof(on)) < 0) {
-    perror("SO_REUSEADDR failed");
+    OLSR_ERROR(LOG_NETWORKING, "Cannot set socket options for emulation (%s)\n", strerror(errno));
     close(sock);
-    return (-1);
+    olsr_exit(EXIT_FAILURE);
   }
   /* connect to PORT on HOST */
   if (connect(sock, (struct sockaddr *)pin, sizeof(*pin)) < 0) {
-    printf("FAILED\n");
-    fprintf(stderr, "Error connecting %d - %s\n", errno, strerror(errno));
-    printf("connection refused\n");
+    OLSR_ERROR(LOG_NETWORKING, "Cannot connect socket for emulation (%s)\n", strerror(errno));
     close(sock);
-    return (-1);
+    olsr_exit(EXIT_FAILURE);
   }
 
-  printf("OK\n");
-
   /* Keep TCP socket blocking */
   return (sock);
 }
@@ -352,43 +348,42 @@ getsocket(int bufspace, char *int_name __attribute__ ((unused)))
   int on;
   int sock = socket(AF_INET, SOCK_DGRAM, 0);
   if (sock < 0) {
-    perror("socket");
-    syslog(LOG_ERR, "socket: %m");
-    return -1;
+    OLSR_ERROR(LOG_NETWORKING, "Cannot open socket for OLSR PDUs (%s)\n", strerror(errno));
+    olsr_exit(EXIT_FAILURE);
   }
 
   on = 1;
   if (setsockopt(sock, SOL_SOCKET, SO_BROADCAST, (char *)&on, sizeof(on)) < 0) {
-    perror("setsockopt");
-    syslog(LOG_ERR, "setsockopt SO_BROADCAST: %m");
+    OLSR_ERROR(LOG_NETWORKING, "Cannot set socket for OLSR PDUs to broadcast mode (%s)\n", strerror(errno));
     close(sock);
-    return -1;
+    olsr_exit(EXIT_FAILURE);
   }
 
   if (setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, (char *)&on, sizeof(on)) < 0) {
-    perror("SO_REUSEADDR failed");
+    OLSR_ERROR(LOG_NETWORKING, "Cannot reuse address for OLSR PDUs (%s)\n", strerror(errno));
     close(sock);
-    return -1;
+    olsr_exit(EXIT_FAILURE);
   }
 
   if (setsockopt(sock, SOL_SOCKET, SO_REUSEPORT, (char *)&on, sizeof(on)) < 0) {
-    perror("SO_REUSEPORT failed");
+    OLSR_ERROR(LOG_NETWORKING, "Cannot reuse port for OLSR PDUs (%s)\n", strerror(errno));
     close(sock);
-    return -1;
+    olsr_exit(EXIT_FAILURE);
   }
 
   if (setsockopt(sock, IPPROTO_IP, IP_RECVIF, (char *)&on, sizeof(on)) < 0) {
-    perror("IP_RECVIF failed");
+    OLSR_ERROR(LOG_NETWORKING, "Cannot set protocol option REECVIF for OLSR PDUs (%s)\n", strerror(errno));
     close(sock);
-    return -1;
+    olsr_exit(EXIT_FAILURE);
   }
 
   for (on = bufspace;; on -= 1024) {
-    if (setsockopt(sock, SOL_SOCKET, SO_RCVBUF, (char *)&on, sizeof(on)) == 0)
+    if (setsockopt(sock, SOL_SOCKET, SO_RCVBUF, (char *)&on, sizeof(on)) == 0) {
+      OLSR_DEBUG(LOG_NETWORKING, "Set socket buffer space to %d\n", on);
       break;
+    }
     if (on <= 8 * 1024) {
-      perror("setsockopt");
-      syslog(LOG_ERR, "setsockopt SO_RCVBUF: %m");
+      OLSR_WARN(LOG_NETWORKING, "Could not set a socket buffer space for OLSR PDUs (%s)\n", strerror(errno));
       break;
     }
   }
@@ -398,10 +393,9 @@ getsocket(int bufspace, char *int_name __attribute__ ((unused)))
   sin4.sin_port = htons(OLSRPORT);
   sin4.sin_addr.s_addr = INADDR_ANY;
   if (bind(sock, (struct sockaddr *)&sin4, sizeof(sin4)) < 0) {
-    perror("bind");
-    syslog(LOG_ERR, "bind: %m");
+    OLSR_ERROR(LOG_NETWORKING, "Coult not bind socket for OLSR PDUs to port (%s)\n", strerror(errno));
     close(sock);
-    return -1;
+    olsr_exit(EXIT_FAILURE);
   }
 
   set_nonblocking(sock);
@@ -416,44 +410,43 @@ getsocket6(int bufspace, char *int_name __attribute__ ((unused)))
   int sock = socket(AF_INET6, SOCK_DGRAM, 0);
 
   if (sock < 0) {
-    perror("socket");
-    syslog(LOG_ERR, "socket: %m");
-    return -1;
+    OLSR_ERROR(LOG_NETWORKING, "Cannot open socket for OLSR PDUs (%s)\n", strerror(errno));
+    olsr_exit(EXIT_FAILURE);
   }
 
   for (on = bufspace;; on -= 1024) {
-    if (setsockopt(sock, SOL_SOCKET, SO_RCVBUF, (char *)&on, sizeof(on)) == 0)
+    if (setsockopt(sock, SOL_SOCKET, SO_RCVBUF, (char *)&on, sizeof(on)) == 0) {
+      OLSR_DEBUG(LOG_NETWORKING, "Set socket buffer space to %d\n", on);
       break;
+    }
     if (on <= 8 * 1024) {
-      perror("setsockopt");
-      syslog(LOG_ERR, "setsockopt SO_RCVBUF: %m");
+      OLSR_WARN(LOG_NETWORKING, "Could not set a socket buffer space for OLSR PDUs (%s)\n", strerror(errno));
       break;
     }
   }
 
   if (setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, (char *)&on, sizeof(on)) < 0) {
-    perror("SO_REUSEADDR failed");
+    OLSR_ERROR(LOG_NETWORKING, "Cannot reuse address for OLSR PDUs (%s)\n", strerror(errno));
     close(sock);
-    return -1;
+    olsr_exit(EXIT_FAILURE);
   }
 
   if (setsockopt(sock, SOL_SOCKET, SO_REUSEPORT, (char *)&on, sizeof(on)) < 0) {
-    perror("SO_REUSEPORT failed");
+    perror("SO_REUSEADDR failed");
     close(sock);
     return -1;
   }
 #ifdef IPV6_RECVPKTINFO
-  if (setsockopt(sock, IPPROTO_IPV6, IPV6_RECVPKTINFO, (char *)&on, sizeof(on))
-      < 0) {
-    perror("IPV6_RECVPKTINFO failed");
+  if (setsockopt(sock, IPPROTO_IPV6, IPV6_RECVPKTINFO, (char *)&on, sizeof(on)) < 0) {
+    OLSR_ERROR(LOG_NETWORKING, "Cannot set protocol options RECVPKTINFO for OLSR PDUs (%s)\n", strerror(errno));
     close(sock);
-    return -1;
+    olsr_exit(EXIT_FAILURE);
   }
 #elif defined IPV6_PKTINFO
   if (setsockopt(sock, IPPROTO_IPV6, IPV6_PKTINFO, (char *)&on, sizeof(on)) < 0) {
-    perror("IPV6_PKTINFO failed");
+    OLSR_ERROR(LOG_NETWORKING, "Cannot set protocol options PKTINFO for OLSR PDUs (%s)\n", strerror(errno));
     close(sock);
-    return -1;
+    olsr_exit(EXIT_FAILURE);
   }
 #endif
 
@@ -461,10 +454,9 @@ getsocket6(int bufspace, char *int_name __attribute__ ((unused)))
   sin6.sin6_family = AF_INET6;
   sin6.sin6_port = htons(OLSRPORT);
   if (bind(sock, (struct sockaddr *)&sin6, sizeof(sin6)) < 0) {
-    perror("bind");
-    syslog(LOG_ERR, "bind: %m");
+    OLSR_ERROR(LOG_NETWORKING, "Coult not bind socket for OLSR PDUs to port (%s)\n", strerror(errno));
     close(sock);
-    return -1;
+    olsr_exit(EXIT_FAILURE);
   }
 
   set_nonblocking(sock);
@@ -483,7 +475,7 @@ join_mcast(struct interface *ifs, int sock)
   mcastreq.ipv6mr_multiaddr = ifs->int6_multaddr.sin6_addr;
   mcastreq.ipv6mr_interface = ifs->if_index;
 
-  OLSR_PRINTF(3, "Interface %s joining multicast %s...", ifs->int_name,
+  OLSR_INFO(LOG_NETWORKING, "Interface %s joining multicast %s.\n", ifs->int_name,
              olsr_ip_to_string(&addrstr,
                                (union olsr_ip_addr *)&ifs->int6_multaddr.
                                sin6_addr));
@@ -503,7 +495,7 @@ join_mcast(struct interface *ifs, int sock)
                 (char *)&mcastreq, sizeof(struct ipv6_mreq)) < 0)
 #endif
   {
-    perror("Join multicast send");
+    OLSR_WARN(LOG_NETWORKING, "Cannot join multicast group (%s)\n", strerror(errno));
     return -1;
   }
 
@@ -513,12 +505,9 @@ join_mcast(struct interface *ifs, int sock)
                 IPV6_MULTICAST_IF,
                 (char *)&mcastreq.ipv6mr_interface,
                 sizeof(mcastreq.ipv6mr_interface)) < 0) {
-    perror("Set multicast if");
+    OLSR_WARN(LOG_NETWORKING, "Cannot set multicast interface (%s)\n", strerror(errno));
     return -1;
   }
-
-
-  OLSR_PRINTF(3, "OK\n");
   return 0;
 }
 
@@ -536,7 +525,7 @@ get_ipv6_address(char *ifname, struct sockaddr_in6 *saddr6, int addrtype6)
   u_int32_t flags6;
 
   if (getifaddrs(&ifap) != 0) {
-    OLSR_PRINTF(3, "get_ipv6_address: getifaddrs() failed.\n");
+    OLSR_WARN(LOG_NETWORKING, "getifaddrs() failed (%s).\n", strerro(errno));
     return 0;
   }
 
@@ -548,12 +537,12 @@ get_ipv6_address(char *ifname, struct sockaddr_in6 *saddr6, int addrtype6)
        continue;
       strscpy(ifr6.ifr_name, ifname, sizeof(ifr6.ifr_name));
       if ((s6 = socket(AF_INET6, SOCK_DGRAM, 0)) < 0) {
-       OLSR_PRINTF(3, "socket(AF_INET6,SOCK_DGRAM)");
+       OLSR_WARN(LOG_NETWORKING, "Cannot open datagram socket (%s)\n", strerror(errno));
        break;
       }
       ifr6.ifr_addr = *sin6;
       if (ioctl(s6, SIOCGIFAFLAG_IN6, (int)&ifr6) < 0) {
-       OLSR_PRINTF(3, "ioctl(SIOCGIFAFLAG_IN6)");
+       OLSR_WARN(LOG_NETWORKING, "ioctl(SIOCGIFAFLAG_IN6) failed (%s)", strerror(errno));
        close(s6);
        break;
       }
@@ -621,7 +610,7 @@ olsr_sendto(int s,
   /* initialize libnet */
   context = libnet_init(LIBNET_LINK, iface->int_name, errbuf);
   if (context == NULL) {
-    OLSR_PRINTF(1, "libnet init: %s\n", libnet_geterror(context));
+    OLSR_WARN(LOG_NETWORKING, "libnet init: %s\n", libnet_geterror(context));
     return (0);
   }
 
@@ -639,7 +628,7 @@ olsr_sendto(int s,
                             context,   /* context */
                             udp_tag);  /* pblock */
   if (udp_tag == -1) {
-    OLSR_PRINTF(1, "libnet UDP header: %s\n", libnet_geterror(context));
+    OLSR_WARN(LOG_NETWORKING, "libnet UDP header: %s\n", libnet_geterror(context));
     return (0);
   }
 
@@ -657,7 +646,7 @@ olsr_sendto(int s,
                             context,   /* context */
                             ip_tag);   /* pblock */
   if (ip_tag == -1) {
-    OLSR_PRINTF(1, "libnet IP header: %s\n", libnet_geterror(context));
+    OLSR_WARN(LOG_NETWORKING, "libnet IP header: %s\n", libnet_geterror(context));
     return (0);
   }
 
@@ -669,13 +658,13 @@ olsr_sendto(int s,
                                    context,    /* libnet handle */
                                    ether_tag); /* pblock tag */
   if (ether_tag == -1) {
-    OLSR_PRINTF(1, "libnet ethernet header: %s\n", libnet_geterror(context));
+    OLSR_WARN(LOG_NETWORKING, "libnet ethernet header: %s\n", libnet_geterror(context));
     return (0);
   }
 
   status = libnet_write(context);
   if (status == -1) {
-    OLSR_PRINTF(1, "libnet packet write: %s\n", libnet_geterror(context));
+    OLSR_WARN(LOG_NETWORKING, "libnet packet write: %s\n", libnet_geterror(context));
     return (0);
   }
 
@@ -757,7 +746,7 @@ olsr_recvfrom(int s,
   ifc = if_ifwithsock(s);
 
   sin6 = (struct sockaddr_in6 *)from;
-  OLSR_PRINTF(4,
+  OLSR_DEBUG(LOG_NETWORKING,
              "%d bytes from %s, socket associated %s really received on %s\n",
              count, inet_ntop(olsr_cnf->ip_version,
                               olsr_cnf->ip_version ==
@@ -811,8 +800,6 @@ check_wireless_interface(char *ifname)
 #endif
 }
 
-#include <sys/sockio.h>
-
 int
 calculate_if_metric(char *ifname)
 {
@@ -829,11 +816,11 @@ calculate_if_metric(char *ifname)
     strlcpy(ifm.ifm_name, ifname, sizeof(ifm.ifm_name));
 
     if (ioctl(olsr_cnf->ioctl_s, SIOCGIFMEDIA, &ifm) < 0) {
-      OLSR_PRINTF(1, "Error SIOCGIFMEDIA(%s)\n", ifm.ifm_name);
+      OLSR_WARN(LOG_NETWORKING, "Error SIOCGIFMEDIA(%s)\n", ifm.ifm_name);
       return WEIGHT_ETHERNET_DEFAULT;
     }
 
-    OLSR_PRINTF(1, "%s: STATUS 0x%08x\n", ifm.ifm_name, ifm.ifm_status);
+    OLSR_DEBUG(LOG_NETWORKING, "%s: STATUS 0x%08x\n", ifm.ifm_name, ifm.ifm_status);
 #endif
     return WEIGHT_ETHERNET_DEFAULT;
   }
index 0bec53b..76a39b8 100644 (file)
 #include "olsr_types.h"
 
 #include <stdio.h>
+#include <errno.h>
+
+/* handle Windows specific errno/strerror name */
+#ifdef WIN32
+// #define olsr_errno WSAGetLastError()
+// #define olsr_strerror(x) StrError(x)
+// extern char *StrError(unsigned int ErrNo);
+#else
+// #define olsr_errno errno
+// #define olsr_strerror(x) strerror(x)
+#endif
 
 /* Export symbol for use in plugins. See ../olsrd-exports.sh */
 #define EXPORT(sym) sym
index 059ab93..2a7b7a1 100644 (file)
@@ -58,7 +58,7 @@ int
 set_flag(char *, short);
 #endif
 
-int chk_if_up(struct olsr_if_config *, int);
+int chk_if_up(struct olsr_if_config *);
 int chk_if_changed(struct olsr_if_config *);
 int add_hemu_if(struct olsr_if_config *);
 
index d8dbf50..46edff4 100644 (file)
@@ -117,7 +117,7 @@ ifinit(void)
 
   /* Run trough all interfaces immediately */
   for (tmp_if = olsr_cnf->if_configs; tmp_if != NULL; tmp_if = tmp_if->next) {
-    chk_if_up(tmp_if, 1);
+    chk_if_up(tmp_if);
   }
 
   /* Kick a periodic timer for the network interface update function */
@@ -149,7 +149,7 @@ check_interface_updates(void *foo __attribute__((unused)))
     if (tmp_if->interf) {
       chk_if_changed(tmp_if);
     } else {
-      chk_if_up(tmp_if, 3);
+      chk_if_up(tmp_if);
     }
   }
 }
index 7babde4..ccedabf 100644 (file)
@@ -46,6 +46,7 @@
 #include "apm.h"
 #include "defs.h"
 #include "olsr_cfg.h"
+#include "olsr_logging.h"
 
 #include <stdio.h>
 #include <string.h>
@@ -130,7 +131,7 @@ apm_init(void)
   struct olsr_apm_info ainfo;
 
   method = -1;
-  OLSR_PRINTF(3, "Initializing APM\n");
+  OLSR_INFO(LOG_MAIN, "Initializing APM\n");
 
   if((((fd_index = acpi_probe()) >= 0) || ac_power_on) && apm_read_acpi(&ainfo))
     method = USE_ACPI;
@@ -147,7 +148,7 @@ apm_init(void)
 void
 apm_printinfo(struct olsr_apm_info *ainfo)
 {
-  OLSR_PRINTF(5, "APM info:\n\tAC status %d\n\tBattery percentage %d%%\n\tBattery time left %d mins\n\n",
+  OLSR_INFO(LOG_MAIN, "APM info:\n\tAC status %d\n\tBattery percentage %d%%\n\tBattery time left %d mins\n\n",
              ainfo->ac_line_status,
              ainfo->battery_percentage,
              ainfo->battery_time_left);
@@ -190,7 +191,7 @@ apm_read_apm(struct olsr_apm_info *ainfo)
       if(fgets(buffer, sizeof(buffer), apm_procfile) == NULL)
        {
          /* Giving up */
-         fprintf(stderr, "OLSRD: Could not read APM info - setting willingness to default");
+         OLSR_WARN(LOG_MAIN, "OLSRD: Could not read APM info - setting willingness to default\n");
          fclose(apm_procfile);
          return 0;
        }
index 5741aff..4ce6cb0 100644 (file)
@@ -45,6 +45,8 @@
 #include <linux/types.h>
 #include <linux/rtnetlink.h>
 
+#include "olsr_logging.h"
+
 struct olsr_rtreq {
   struct nlmsghdr n;
   struct rtmsg    r;
@@ -192,7 +194,7 @@ olsr_kernel_add_route(const struct rt_entry *rt, int ip_version)
   int rslt;
   int rttable;
 
-  OLSR_PRINTF(2, "KERN: Adding %s\n", olsr_rtp_to_string(rt->rt_best));
+  OLSR_DEBUG(LOG_ROUTING, "KERN: Adding %s\n", olsr_rtp_to_string(rt->rt_best));
 
   if (0 == olsr_cnf->rttable_default && 0 == rt->rt_dst.prefix_len && 253 > olsr_cnf->rttable)
   {
@@ -231,7 +233,7 @@ olsr_kernel_del_route(const struct rt_entry *rt, int ip_version)
   int rslt;
   int rttable;
 
-  OLSR_PRINTF(2, "KERN: Deleting %s\n", olsr_rt_to_string(rt));
+  OLSR_DEBUG(LOG_ROUTING, "KERN: Deleting %s\n", olsr_rt_to_string(rt));
 
   if (0 == olsr_cnf->rttable_default && 0 == rt->rt_dst.prefix_len && 253 > olsr_cnf->rttable)
   {
index b714c45..04e65c2 100644 (file)
@@ -48,6 +48,8 @@
 #include "../common/string.h"
 #include "../olsr_protocol.h"
 #include "../misc.h"
+#include "../olsr_logging.h"
+#include "../olsr.h"
 
 #include <net/if.h>
 
@@ -93,7 +95,7 @@ bind_socket_to_device(int sock, char *dev_name)
   /*
    *Bind to device using the SO_BINDTODEVICE flag
    */
-  OLSR_PRINTF(3, "Binding socket %d to device %s\n", sock, dev_name);
+  OLSR_DEBUG(LOG_NETWORKING, "Binding socket %d to device %s\n", sock, dev_name);
   return setsockopt(sock, SOL_SOCKET, SO_BINDTODEVICE, dev_name, strlen(dev_name)+1);
 }
 
@@ -119,7 +121,7 @@ enable_ip_forwarding(int version)
   FILE *proc_fwd = fopen(procfile, "r");
 
   if (proc_fwd == NULL) {
-    fprintf(stderr,
+    OLSR_WARN(LOG_NETWORKING,
            "WARNING! Could not open the %s file to check/enable IP forwarding!\n"
            "Are you using the procfile filesystem?\nDoes your system support IPv%d?\n"
            "I will continue(in 3 sec) - but you should manually ensure that IP forwarding is enabled!\n\n",
@@ -131,16 +133,16 @@ enable_ip_forwarding(int version)
   fclose(proc_fwd);
 
   if(orig_fwd_state == '1') {
-    OLSR_PRINTF(3, "\nIP forwarding is enabled on this system\n");
+    OLSR_INFO(LOG_NETWORKING, "\nIP forwarding is enabled on this system\n");
   } else {
     proc_fwd = fopen(procfile, "w");
     if (proc_fwd == NULL) {
-      fprintf(stderr, "Could not open %s for writing!\n", procfile);
-      fprintf(stderr, "I will continue(in 3 sec) - but you should manually ensure that IP forwarding is enabeled!\n\n");
+      OLSR_WARN(LOG_NETWORKING, "Could not open %s for writing!\n"
+        "I will continue(in 3 sec) - but you should manually ensure that IP forwarding is enabeled!\n\n",
+        procfile);
       sleep(3);
       return 0;
     }
-    syslog(LOG_INFO, "Writing \"1\" to %s\n", procfile);
     fputs("1", proc_fwd);
     fclose(proc_fwd);
   }
@@ -158,7 +160,7 @@ disable_redirects_global(int version)
   }
   proc_redirect = fopen(procfile, "r");
   if (proc_redirect == NULL) {
-    fprintf(stderr,
+    OLSR_WARN(LOG_NETWORKING,
            "WARNING! Could not open the %s file to check/disable ICMP redirects!\n"
            "Are you using the procfile filesystem?\n"
            "Does your system support IPv4?\n"
@@ -174,12 +176,12 @@ disable_redirects_global(int version)
   }
   proc_redirect = fopen(procfile, "w");
   if (proc_redirect == NULL) {
-    fprintf(stderr, "Could not open %s for writing!\n", procfile);
-    fprintf(stderr, "I will continue(in 3 sec) - but you should manually ensure that ICMP redirect is disabled!\n\n");
+    OLSR_WARN(LOG_NETWORKING, "Could not open %s for writing!\n"
+        "I will continue(in 3 sec) - but you should manually ensure that ICMP redirect is disabled!\n\n",
+        procfile);
     sleep(3);
     return 0;
   }
-  syslog(LOG_INFO, "Writing \"0\" to %s", procfile);
   fputs("0", proc_redirect);
   fclose(proc_redirect);
   return 1;
@@ -204,7 +206,7 @@ disable_redirects(const char *if_name, struct interface *iface, int version)
 
   proc_redirect = fopen(procfile, "r");
   if (proc_redirect == NULL) {
-    fprintf(stderr,
+    OLSR_WARN(LOG_NETWORKING,
            "WARNING! Could not open the %s file to check/disable ICMP redirects!\n"
            "Are you using the procfile filesystem?\n"
            "Does your system support IPv4?\n"
@@ -217,12 +219,12 @@ disable_redirects(const char *if_name, struct interface *iface, int version)
 
   proc_redirect = fopen(procfile, "w");
   if (proc_redirect == NULL) {
-    fprintf(stderr, "Could not open %s for writing!\n", procfile);
-    fprintf(stderr, "I will continue(in 3 sec) - but you should manually ensure that ICMP redirect is disabled!\n\n");
+    OLSR_WARN(LOG_NETWORKING, "Could not open %s for writing!\n"
+        "I will continue(in 3 sec) - but you should manually ensure that ICMP redirect is disabled!\n\n",
+        procfile);
     sleep(3);
     return 0;
   }
-  syslog(LOG_INFO, "Writing \"0\" to %s", procfile);
   fputs("0", proc_redirect);
   fclose(proc_redirect);
   return 1;
@@ -247,7 +249,7 @@ deactivate_spoof(const char *if_name, struct interface *iface, int version)
 
   proc_spoof = fopen(procfile, "r");
   if (proc_spoof == NULL) {
-    fprintf(stderr,
+    OLSR_WARN(LOG_NETWORKING,
            "WARNING! Could not open the %s file to check/disable the IP spoof filter!\n"
            "Are you using the procfile filesystem?\n"
            "Does your system support IPv4?\n"
@@ -260,12 +262,12 @@ deactivate_spoof(const char *if_name, struct interface *iface, int version)
 
   proc_spoof = fopen(procfile, "w");
   if (proc_spoof == NULL) {
-    fprintf(stderr, "Could not open %s for writing!\n", procfile);
-    fprintf(stderr, "I will continue(in 3 sec) - but you should manually ensure that IP spoof filtering is disabled!\n\n");
+    OLSR_WARN(LOG_NETWORKING, "Could not open %s for writing!\n"
+        "I will continue(in 3 sec) - but you should manually ensure that IP spoof filtering is disabled!\n\n",
+        procfile);
     sleep(3);
     return 0;
   }
-  syslog(LOG_INFO, "Writing \"0\" to %s", procfile);
   fputs("0", proc_spoof);
   fclose(proc_spoof);
   return 1;
@@ -279,7 +281,7 @@ restore_settings(int version)
 {
   struct interface *ifs;
 
-  OLSR_PRINTF(1, "Restoring network state\n");
+  OLSR_INFO(LOG_NETWORKING, "Restoring network state\n");
 
   /* Restore IP forwarding to "off" */
   if (orig_fwd_state == '0') {
@@ -289,9 +291,8 @@ restore_settings(int version)
     FILE *proc_fd = fopen(procfile, "w");
 
     if (proc_fd == NULL) {
-      fprintf(stderr, "Could not open %s for writing!\nSettings not restored!\n", procfile);
+      OLSR_WARN(LOG_NETWORKING, "Could not open %s for writing!\nSettings not restored!\n", procfile);
     } else {
-      syslog(LOG_INFO, "Resetting %s to %c\n", procfile, orig_fwd_state);
       fputc(orig_fwd_state, proc_fd);
       fclose(proc_fd);
     }
@@ -304,9 +305,8 @@ restore_settings(int version)
       FILE *proc_fd = fopen(procfile, "w");
 
       if (proc_fd == NULL) {
-       fprintf(stderr, "Could not open %s for writing!\nSettings not restored!\n", procfile);
+       OLSR_WARN(LOG_NETWORKING, "Could not open %s for writing!\nSettings not restored!\n", procfile);
       } else {
-       syslog(LOG_INFO, "Resetting %s to %c\n", procfile, orig_global_redirect_state);
        fputc(orig_global_redirect_state, proc_fd);
        fclose(proc_fd);
       }
@@ -330,10 +330,8 @@ restore_settings(int version)
     snprintf(procfile, sizeof(procfile), REDIRECT_PROC, ifs->int_name);
     proc_fd = fopen(procfile, "w");
     if (proc_fd == NULL) {
-      fprintf(stderr, "Could not open %s for writing!\nSettings not restored!\n", procfile);
+      OLSR_WARN(LOG_NETWORKING, "Could not open %s for writing!\nSettings not restored!\n", procfile);
     } else {
-      syslog(LOG_INFO, "Resetting %s to %c\n", procfile, ifs->nic_state.redirect);
-
       fputc(ifs->nic_state.redirect, proc_fd);
       fclose(proc_fd);
     }
@@ -344,10 +342,8 @@ restore_settings(int version)
     sprintf(procfile, SPOOF_PROC, ifs->int_name);
     proc_fd = fopen(procfile, "w");
     if (proc_fd == NULL) {
-      fprintf(stderr, "Could not open %s for writing!\nSettings not restored!\n", procfile);
+      OLSR_WARN(LOG_NETWORKING, "Could not open %s for writing!\nSettings not restored!\n", procfile);
     } else {
-      syslog(LOG_INFO, "Resetting %s to %c\n", procfile, ifs->nic_state.spoof);
-
       fputc(ifs->nic_state.spoof, proc_fd);
       fclose(proc_fd);
     }
@@ -366,31 +362,26 @@ gethemusocket(struct sockaddr_in *pin)
 {
   int sock, on;
 
-  OLSR_PRINTF(1, "       Connecting to switch daemon port 10150...");
+  OLSR_INFO(LOG_NETWORKING, "       Connecting to switch daemon port %d\n", pin->sin_port);
   if ((sock = socket(AF_INET, SOCK_STREAM, 0)) < 0) {
-    perror("hcsocket");
-    syslog(LOG_ERR, "hcsocket: %m");
-    return -1;
+    OLSR_ERROR(LOG_NETWORKING, "Cannot open socket for emulation (%s)\n", strerror(errno));
+    olsr_exit(EXIT_FAILURE);
   }
 
   on = 1;
   if (setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, &on, sizeof(on)) < 0) {
-    perror("SO_REUSEADDR failed");
+    OLSR_ERROR(LOG_NETWORKING, "Cannot reuse address for socket for emulation (%s)\n", strerror(errno));
     close(sock);
-    return -1;
+    olsr_exit(EXIT_FAILURE);
   }
 
   /* connect to PORT on HOST */
   if (connect(sock,(struct sockaddr *) pin, sizeof(*pin)) < 0) {
-    printf("FAILED\n");
-    fprintf(stderr, "Error connecting %d - %s\n", errno, strerror(errno));
-    printf("connection refused\n");
+    OLSR_ERROR(LOG_NETWORKING, "Cannot connect socket for emulation (%s)\n", strerror(errno));
     close(sock);
-    return -1;
+    olsr_exit(EXIT_FAILURE);
   }
 
-  printf("OK\n");
-
   /* Keep TCP socket blocking */
   return sock;
 }
@@ -408,35 +399,33 @@ getsocket(int bufspace, char *int_name)
   int on;
   int sock = socket(AF_INET, SOCK_DGRAM, 0);
   if (sock < 0) {
-    perror("socket");
-    syslog(LOG_ERR, "socket: %m");
-    return -1;
+    OLSR_ERROR(LOG_NETWORKING, "Cannot open socket for OLSR PDUs (%s)\n", strerror(errno));
+    olsr_exit(EXIT_FAILURE);
   }
 
   on = 1;
 #ifdef SO_BROADCAST
   if (setsockopt(sock, SOL_SOCKET, SO_BROADCAST, &on, sizeof(on)) < 0) {
-    perror("setsockopt");
-    syslog(LOG_ERR, "setsockopt SO_BROADCAST: %m");
+    OLSR_ERROR(LOG_NETWORKING, "Cannot set socket for OLSR PDUs to broadcast mode (%s)\n", strerror(errno));
     close(sock);
-    return -1;
+    olsr_exit(EXIT_FAILURE);
   }
 #endif
 
   if (setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, &on, sizeof(on)) < 0) {
-    perror("SO_REUSEADDR failed");
+    OLSR_ERROR(LOG_NETWORKING, "Cannot reuse address for OLSR PDUs (%s)\n", strerror(errno));
     close(sock);
-    return -1;
+    olsr_exit(EXIT_FAILURE);
   }
 
 #ifdef SO_RCVBUF
   for (on = bufspace; ; on -= 1024) {
     if (setsockopt(sock, SOL_SOCKET, SO_RCVBUF, &on, sizeof(on)) == 0) {
+      OLSR_DEBUG(LOG_NETWORKING, "Set socket buffer space to %d\n", on);
       break;
     }
     if (on <= 8*1024) {
-      perror("setsockopt");
-      syslog(LOG_ERR, "setsockopt SO_RCVBUF: %m");
+      OLSR_WARN(LOG_NETWORKING, "Could not set a socket buffer space for OLSR PDUs (%s)\n", strerror(errno));
       break;
     }
   }
@@ -448,10 +437,9 @@ getsocket(int bufspace, char *int_name)
 
   /* Bind to device */
   if (bind_socket_to_device(sock, int_name) < 0) {
-    fprintf(stderr, "Could not bind socket to device... exiting!\n\n");
-    syslog(LOG_ERR, "Could not bind socket to device... exiting!\n\n");
+    OLSR_ERROR(LOG_NETWORKING, "Could not bind socket for OLSR PDUs to device (%s)\n", strerror(errno));
     close(sock);
-    return -1;
+    olsr_exit(EXIT_FAILURE);
   }
 
   memset(&sin4, 0, sizeof(sin4));
@@ -459,10 +447,9 @@ getsocket(int bufspace, char *int_name)
   sin4.sin_port = htons(olsr_cnf->olsr_port);
   assert(sin4.sin_addr.s_addr == INADDR_ANY);
   if (bind(sock, (struct sockaddr *)&sin4, sizeof(sin4)) < 0) {
-    perror("bind");
-    syslog(LOG_ERR, "bind: %m");
+    OLSR_ERROR(LOG_NETWORKING, "Coult not bind socket for OLSR PDUs to port (%s)\n", strerror(errno));
     close(sock);
-    return -1;
+    olsr_exit(EXIT_FAILURE);
   }
 
   set_nonblocking(sock);
@@ -482,16 +469,14 @@ getsocket6(int bufspace, char *int_name)
   int on;
   int sock = socket(AF_INET6, SOCK_DGRAM, 0);
   if (sock < 0) {
-    perror("socket");
-    syslog(LOG_ERR, "socket: %m");
-    return (-1);
+    OLSR_ERROR(LOG_NETWORKING, "Cannot open socket for OLSR PDUs (%s)\n", strerror(errno));
+    olsr_exit(EXIT_FAILURE);
   }
 
 #ifdef IPV6_V6ONLY
   on = 1;
   if (setsockopt(sock, IPPROTO_IPV6, IPV6_V6ONLY, &on, sizeof(on)) < 0) {
-    perror("setsockopt(IPV6_V6ONLY)");
-    syslog(LOG_ERR, "setsockopt(IPV6_V6ONLY): %m");
+    OLSR_WARN(LOG_NETWORKING, "Cannot set socket for OLSR PDUs to ipv6 only (%s)\n", strerror(errno));
   }
 #endif
 
@@ -511,11 +496,11 @@ getsocket6(int bufspace, char *int_name)
 #ifdef SO_RCVBUF
   for (on = bufspace; ; on -= 1024) {
     if (setsockopt(sock, SOL_SOCKET, SO_RCVBUF, &on, sizeof(on)) == 0) {
+      OLSR_DEBUG(LOG_NETWORKING, "Set socket buffer space to %d\n", on);
       break;
     }
     if (on <= 8*1024) {
-      perror("setsockopt");
-      syslog(LOG_ERR, "setsockopt SO_RCVBUF: %m");
+      OLSR_WARN(LOG_NETWORKING, "Could not set a socket buffer space for OLSR PDUs (%s)\n", strerror(errno));
       break;
     }
   }
@@ -523,9 +508,9 @@ getsocket6(int bufspace, char *int_name)
 
   on = 1;
   if (setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, &on, sizeof(on)) < 0) {
-    perror("SO_REUSEADDR failed");
+    OLSR_ERROR(LOG_NETWORKING, "Cannot reuse address for socket for OLSR PDUs (%s)\n", strerror(errno));
     close(sock);
-    return (-1);
+    olsr_exit(EXIT_FAILURE);
   }
 
   /*
@@ -533,9 +518,9 @@ getsocket6(int bufspace, char *int_name)
    * hop limit value.
    */
   if (setsockopt(sock, IPPROTO_IPV6, IPV6_MULTICAST_HOPS, &on, sizeof(on)) < 0) {
-    perror ("setsockopt");
+    OLSR_ERROR(LOG_NETWORKING, "Cannot set multicast hops to 1 for socket for OLSR PDUs (%s)\n", strerror(errno));
     close(sock);
-    return (-1);
+    olsr_exit(EXIT_FAILURE);
   }
 
 
@@ -545,10 +530,9 @@ getsocket6(int bufspace, char *int_name)
 
   /* Bind to device */
   if(bind_socket_to_device(sock, int_name) < 0) {
-    fprintf(stderr, "Could not bind socket to device... exiting!\n\n");
-    syslog(LOG_ERR, "Could not bind socket to device... exiting!\n\n");
+    OLSR_ERROR(LOG_NETWORKING, "Cannot bind socket for OLSR PDUs to interface %s (%s)\n", int_name, strerror(errno));
     close(sock);
-    return -1;
+    olsr_exit(EXIT_FAILURE);
   }
 
   memset(&sin6, 0, sizeof(sin6));
@@ -556,10 +540,9 @@ getsocket6(int bufspace, char *int_name)
   sin6.sin6_port = htons(olsr_cnf->olsr_port);
   assert(0 == memcmp(&sin6.sin6_addr, &in6addr_any, sizeof(sin6.sin6_addr))); /* == IN6ADDR_ANY_INIT */
   if (bind(sock, (struct sockaddr *)&sin6, sizeof(sin6)) < 0) {
-    perror("bind");
-    syslog(LOG_ERR, "bind: %m");
+    OLSR_ERROR(LOG_NETWORKING, "Cannot bind socket for OLSR PDUs (%s)\n", strerror(errno));
     close(sock);
-    return (-1);
+    olsr_exit(EXIT_FAILURE);
   }
 
   set_nonblocking(sock);
@@ -576,8 +559,7 @@ join_mcast(struct interface *ifs, int sock)
   mcastreq.ipv6mr_multiaddr = ifs->int6_multaddr.sin6_addr;
   mcastreq.ipv6mr_interface = ifs->if_index;
 
-#if !defined __FreeBSD__ && !defined __MacOSX__ && !defined __NetBSD__
-  OLSR_PRINTF(3, "Interface %s joining multicast %s...", ifs->int_name, ip6_to_string(&buf, &ifs->int6_multaddr.sin6_addr));
+  OLSR_INFO(LOG_NETWORKING, "Interface %s joining multicast %s\n", ifs->int_name, ip6_to_string(&buf, &ifs->int6_multaddr.sin6_addr));
   /* Send multicast */
   if(setsockopt(sock,
                IPPROTO_IPV6,
@@ -586,12 +568,9 @@ join_mcast(struct interface *ifs, int sock)
                sizeof(struct ipv6_mreq))
      < 0)
     {
-      perror("Join multicast");
+      OLSR_WARN(LOG_NETWORKING, "Cannot join multicast group (%s)\n", strerror(errno));
       return -1;
     }
-#else
-#warning implement IPV6_ADD_MEMBERSHIP
-#endif
 #if 0
   /* Old libc fix */
 #ifdef IPV6_JOIN_GROUP
@@ -623,12 +602,10 @@ join_mcast(struct interface *ifs, int sock)
                sizeof(mcastreq.ipv6mr_interface))
      < 0)
     {
-      perror("Set multicast if");
+      OLSR_WARN(LOG_NETWORKING, "Cannot set multicast interface (%s)\n", strerror(errno));
       return -1;
     }
 
-
-  OLSR_PRINTF(3, "OK\n");
   return 0;
 }
 
@@ -655,8 +632,6 @@ get_ipv6_address(char *ifname, struct sockaddr_in6 *saddr6, int addrtype6)
        sprintf(addr6, "%s:%s:%s:%s:%s:%s:%s:%s",
                addr6p[0], addr6p[1], addr6p[2], addr6p[3],
                addr6p[4], addr6p[5], addr6p[6], addr6p[7]);
-       OLSR_PRINTF(5, "\tinet6 addr: %s\n", addr6);
-       OLSR_PRINTF(5, "\tScope: %d\n", scope);
 
         if (addrtype6 == OLSR_IP6T_SITELOCAL && scope == IPV6_ADDR_SITELOCAL) found = true;
         else if (addrtype6 == OLSR_IP6T_UNIQUELOCAL && scope == IPV6_ADDR_GLOBAL) found = true;
@@ -675,9 +650,6 @@ get_ipv6_address(char *ifname, struct sockaddr_in6 *saddr6, int addrtype6)
         }
 
        if (found) {
-         OLSR_PRINTF(4, "Found addr: %s:%s:%s:%s:%s:%s:%s:%s\n",
-                     addr6p[0], addr6p[1], addr6p[2], addr6p[3],
-                     addr6p[4], addr6p[5], addr6p[6], addr6p[7]);
          inet_pton(AF_INET6, addr6, &saddr6->sin6_addr);
          rv = 1;
          break;
index 9dfff75..aaa3cfb 100644 (file)
@@ -49,6 +49,7 @@
 #include "two_hop_neighbor_table.h"
 #include "common/avl.h"
 #include "common/string.h"
+#include "olsr_logging.h"
 
 #include "lq_plugin_etx_ff.h"
 
@@ -210,7 +211,7 @@ olsr_update_packet_loss_worker(struct link_entry *entry, bool lost)
     }
 
     else
-      OLSR_PRINTF(3, "Skipping Dijkstra (1)\n");
+      OLSR_DEBUG(LOG_LQ_PLUGINS, "Skipping Dijkstra (1)\n");
 
     /* XXX - we should check whether we actually announce this neighbour */
     signal_link_changes(true);
index f250d53..afc13c2 100644 (file)
@@ -65,7 +65,6 @@
 #include "olsr_logging.h"
 
 #include <stdarg.h>
-#include <errno.h>
 #include <unistd.h>
 #include <stdlib.h>
 
index 8e50e4c..440d828 100644 (file)
 #ifdef WIN32
 #undef EWOULDBLOCK
 #define EWOULDBLOCK WSAEWOULDBLOCK
-#undef errno
-#define errno WSAGetLastError()
-#undef strerror
-#define strerror(x) StrError(x)
-extern char *StrError(unsigned int ErrNo);
 #endif
 
 static void parse_packet(struct olsr *, int, struct interface *, union olsr_ip_addr *);
index 2d2a212..1142383 100644 (file)
 #include "process_routes.h"
 #include "log.h"
 #include "kernel_routes.h"
+#include "olsr_logging.h"
 
 #include <errno.h>
 
-#ifdef WIN32
-#undef strerror
-#define strerror(x) StrError(x)
-extern char *StrError(unsigned int ErrNo);
-#endif
-
 static struct list_node add_kernel_list;
 static struct list_node chg_kernel_list;
 static struct list_node del_kernel_list;
@@ -85,7 +80,7 @@ olsr_init_export_route(void)
 void
 olsr_delete_all_kernel_routes(void)
 {
-  OLSR_PRINTF(1, "Deleting all routes...\n");
+  OLSR_DEBUG(LOG_ROUTING, "Deleting all routes...\n");
 
   olsr_bump_routingtree_version();
   olsr_update_rib_routes();
@@ -309,7 +304,7 @@ olsr_update_rib_routes(void)
 {
   struct rt_entry *rt;
 
-  OLSR_PRINTF(3, "Updating kernel routes...\n");
+  OLSR_DEBUG(LOG_ROUTING, "Updating kernel routes...\n");
 
   /* walk all routes in the RIB. */
 
@@ -364,9 +359,7 @@ olsr_update_kernel_routes(void)
   /* route additions */
   olsr_add_routes(&add_kernel_list);
 
-#if DEBUG
   olsr_print_routing_table(&routingtree);
-#endif
 }
 
 /*
index 8460bbc..89b67db 100644 (file)
@@ -50,6 +50,7 @@
 #include "common/avl.h"
 #include "olsr_spf.h"
 #include "net_olsr.h"
+#include "olsr_logging.h"
 
 #include <assert.h>
 
@@ -259,7 +260,7 @@ avl_comp_ipv6_addr_origin (const void *prefix1, const void *prefix2)
 void
 olsr_init_routing_table(void)
 {
-  OLSR_PRINTF(5, "RIB: init routing tree\n");
+  OLSR_INFO(LOG_ROUTING, "RIB: init routing tree\n");
 
   /* the routing tree */
   avl_init(&routingtree, avl_comp_prefix_default);
@@ -627,11 +628,9 @@ olsr_insert_routing_table(const union olsr_ip_addr *dst, int plen,
       return NULL;
     }
 
-#ifdef DEBUG
-    OLSR_PRINTF(1, "RIB: add prefix %s/%d from %s\n",
+    OLSR_DEBUG(LOG_ROUTING, "RIB: add prefix %s/%d from %s\n",
                 olsr_ip_to_string(&dstbuf, dst), plen,
                 olsr_ip_to_string(&origbuf, originator));
-#endif
 
     /* overload the hna change bit for flagging a prefix change */
     changes_hna = true;
@@ -684,11 +683,9 @@ olsr_delete_routing_table(union olsr_ip_addr *dst, int plen,
     rtp = rtp_prefix_tree2rtp(node);
     olsr_delete_rt_path(rtp);
 
-#ifdef DEBUG
-    OLSR_PRINTF(1, "RIB: del prefix %s/%d from %s\n",
+    OLSR_DEBUG(LOG_ROUTING, "RIB: del prefix %s/%d from %s\n",
                 olsr_ip_to_string(&dstbuf, dst), plen,
                 olsr_ip_to_string(&origbuf, originator));
-#endif
 
     /* overload the hna change bit for flagging a prefix change */
     changes_hna = true;
@@ -740,7 +737,6 @@ olsr_rtp_to_string(const struct rt_path *rtp)
   return buff;
 }
 
-#ifdef DEBUG
 /**
  * Print the routingtree to STDOUT
  *
@@ -749,11 +745,11 @@ void
 olsr_print_routing_table(struct avl_tree *tree USED_ONLY_FOR_DEBUG)
 {
   /* The whole function makes no sense without it. */
-#ifndef NODEBUG
+#if !defined REMOVE_INFO
   struct avl_node *rt_tree_node;
   struct lqtextbuffer lqbuffer;
 
-  OLSR_PRINTF(6, "ROUTING TABLE\n");
+  OLSR_INFO(LOG_ROUTING, "ROUTING TABLE\n");
 
   for (rt_tree_node = avl_walk_first(tree);
        rt_tree_node != NULL;
@@ -764,7 +760,7 @@ olsr_print_routing_table(struct avl_tree *tree USED_ONLY_FOR_DEBUG)
     struct rt_entry *rt = rt_tree2rt(rt_tree_node);
 
     /* first the route entry */
-    OLSR_PRINTF(6, "%s, via %s dev %s, best-originator %s\n",
+    OLSR_INFO_NH(LOG_ROUTING, "%s, via %s dev %s, best-originator %s\n",
            olsr_ip_prefix_to_string(&prefixstr, &rt->rt_dst),
            olsr_ip_to_string(&origstr, &rt->rt_nexthop.gateway),
            rt->rt_nexthop.interface ? rt->rt_nexthop.interface->int_name : "(null)",
@@ -775,7 +771,7 @@ olsr_print_routing_table(struct avl_tree *tree USED_ONLY_FOR_DEBUG)
          rtp_tree_node != NULL;
          rtp_tree_node = avl_walk_next(rtp_tree_node)) {
       struct rt_path *rtp = rtp_tree2rtp(rtp_tree_node);
-      OLSR_PRINTF(6, "\tfrom %s, cost %s, metric %u, via %s, dev %s, v %u\n",
+      OLSR_INFO_NH(LOG_ROUTING, "\tfrom %s, cost %s, metric %u, via %s, dev %s, v %u\n",
              olsr_ip_to_string(&origstr, &rtp->rtp_originator.prefix),
              get_linkcost_text(rtp->rtp_metric.cost, true, &lqbuffer),
              rtp->rtp_metric.hops,
@@ -786,7 +782,6 @@ olsr_print_routing_table(struct avl_tree *tree USED_ONLY_FOR_DEBUG)
   }
 #endif
 }
-#endif
 
 /*
  * Local Variables:
index 50bc728..e190a4d 100644 (file)
 #include "olsr.h"
 #include "olsr_cookie.h"
 #include "net_os.h"
+#include "olsr_logging.h"
 
 #include <sys/times.h>
 
-#include <errno.h>
 #include <unistd.h>
 #include <assert.h>
 
@@ -87,7 +87,7 @@ static uint32_t olsr_times(void)
   uint32_t t;
 
   if (gettimeofday(&tv, NULL) != 0) {
-    OLSR_ERROR(LOG_SCHEDULER, "OS clock is not working, have to shut down OLSR (%d)\n", errno);
+    OLSR_ERROR(LOG_SCHEDULER, "OS clock is not working, have to shut down OLSR (%s)\n", strerror(errno));
     olsr_exit(1);
   }
 
@@ -172,7 +172,7 @@ add_olsr_socket(int fd, socket_handler_func pf_pr, socket_handler_func pf_imm, v
     OLSR_WARN(LOG_SCHEDULER, "Bogus socket entry - not registering...");
     return;
   }
-  OLSR_PRINTF(2, "Adding OLSR socket entry %d\n", fd);
+  OLSR_DEBUG(LOG_SCHEDULER, "Adding OLSR socket entry %d\n", fd);
 
   new_entry = olsr_malloc(sizeof(*new_entry), "Socket entry");
 
@@ -204,7 +204,7 @@ remove_olsr_socket(int fd, socket_handler_func pf_pr, socket_handler_func pf_imm
     OLSR_WARN(LOG_SCHEDULER, "Bogus socket entry - not processing...");
     return 0;
   }
-  OLSR_PRINTF(2, "Removing OLSR socket entry %d\n", fd);
+  OLSR_DEBUG(LOG_SCHEDULER, "Removing OLSR socket entry %d\n", fd);
 
   OLSR_FOR_ALL_SOCKETS(entry) {
     if (entry->fd == fd && entry->process_immediate == pf_imm &&
@@ -443,7 +443,7 @@ static void handle_fds(uint32_t next_interval)
 void
 olsr_scheduler(void)
 {
-  OLSR_PRINTF(1, "Scheduler started - polling every %u microseconds\n", olsr_cnf->pollrate);
+  OLSR_INFO(LOG_SCHEDULER, "Scheduler started - polling every %u microseconds\n", olsr_cnf->pollrate);
 
   /* Main scheduler loop */
   while (app_state == STATE_RUNNING) {
@@ -467,7 +467,7 @@ olsr_scheduler(void)
 
     /* Check for changes in topology */
     if (link_changes) {
-      OLSR_PRINTF(3, "ANSN UPDATED %d\n\n", get_local_ansn());
+      OLSR_DEBUG(LOG_SCHEDULER, "ANSN UPDATED %d\n\n", get_local_ansn());
       increase_local_ansn();
       link_changes = false;
     }
@@ -504,10 +504,8 @@ calc_jitter(unsigned int rel_time, uint8_t jitter_pct, unsigned int random_val)
   jitter_time = (jitter_pct * rel_time) / 100;
   jitter_time = random_val / (1 + RAND_MAX / jitter_time);
 
-#if 0
-  OLSR_PRINTF(3, "TIMER: jitter %u%% rel_time %ums to %ums\n",
+  OLSR_DEBUG(LOG_SCHEDULER, "TIMER: jitter %u%% rel_time %ums to %ums\n",
              jitter_pct, rel_time, rel_time - jitter_time);
-#endif
 
   return GET_TIMESTAMP(rel_time - jitter_time);
 }
@@ -522,7 +520,7 @@ olsr_init_timers(void)
 
   /* Grab initial timestamp */
   if (gettimeofday(&first_tv, NULL)) {
-    OLSR_ERROR(LOG_SCHEDULER, "OS clock is not working, have to shut down OLSR (%d)\n", errno);
+    OLSR_ERROR(LOG_SCHEDULER, "OS clock is not working, have to shut down OLSR (%s)\n", strerror(errno));
     olsr_exit(1);
   }
   last_tv = first_tv;
@@ -588,7 +586,7 @@ walk_timers(uint32_t * last_run)
       /* Ready to fire ? */
       if (TIMED_OUT(timer->timer_clock)) {
 
-       OLSR_PRINTF(3, "TIMER: fire %s timer %p, ctx %p, "
+       OLSR_DEBUG(LOG_SCHEDULER, "TIMER: fire %s timer %p, ctx %p, "
                    "at clocktick %u (%s)\n",
                    olsr_cookie_name(timer->timer_cookie),
                    timer, timer->timer_cb_context,
@@ -633,13 +631,11 @@ walk_timers(uint32_t * last_run)
     wheel_slot_walks++;
   }
 
-#ifdef DEBUG
-  OLSR_PRINTF(4, "TIMER: processed %4u/%d clockwheel slots, "
+  OLSR_DEBUG(LOG_SCHEDULER, "TIMER: processed %4u/%d clockwheel slots, "
              "timers walked %4u/%u, timers fired %u\n",
              wheel_slot_walks, TIMER_WHEEL_SLOTS,
              total_timers_walked, timer_mem_cookie->ci_usage,
               total_timers_fired);
-#endif
 
   /*
    * If the scheduler has slipped and we have walked all wheel slots,
@@ -802,11 +798,9 @@ olsr_start_timer(unsigned int rel_time,
   list_add_before(&timer_wheel[timer->timer_clock & TIMER_WHEEL_MASK],
                  &timer->timer_list);
 
-#ifdef DEBUG
-  OLSR_PRINTF(3, "TIMER: start %s timer %p firing in %s, ctx %p\n",
+  OLSR_DEBUG(LOG_SCHEDULER, "TIMER: start %s timer %p firing in %s, ctx %p\n",
              olsr_cookie_name(timer->timer_cookie),
              timer, olsr_clock_string(timer->timer_clock), context);
-#endif
 
   return timer;
 }
@@ -825,11 +819,9 @@ olsr_stop_timer(struct timer_entry *timer)
     return;
   }
 
-#ifdef DEBUG
-  OLSR_PRINTF(3, "TIMER: stop %s timer %p, ctx %p\n",
+  OLSR_DEBUG(LOG_SCHEDULER, "TIMER: stop %s timer %p, ctx %p\n",
              olsr_cookie_name(timer->timer_cookie),
              timer, timer->timer_cb_context);
-#endif
 
   assert(timer->timer_cookie != 0); /* we want timer cookies everywhere */
 
@@ -876,11 +868,9 @@ olsr_change_timer(struct timer_entry *timer, unsigned int rel_time,
   list_add_before(&timer_wheel[timer->timer_clock & TIMER_WHEEL_MASK],
                  &timer->timer_list);
 
-#ifdef DEBUG
-  OLSR_PRINTF(3, "TIMER: change %s timer %p, firing to %s, ctx %p\n",
+  OLSR_DEBUG(LOG_SCHEDULER, "TIMER: change %s timer %p, firing to %s, ctx %p\n",
              olsr_cookie_name(timer->timer_cookie), timer,
              olsr_clock_string(timer->timer_clock), timer->timer_cb_context);
-#endif
 }
 
 /*
index c05e9f0..c9ae942 100644 (file)
@@ -115,9 +115,7 @@ chk_if_changed(struct olsr_if_config *iface)
   struct ifreq ifr;
   int if_changes = 0;
 
-#ifdef DEBUG
-  OLSR_PRINTF(3, "Checking if %s is set down or changed\n", iface->name);
-#endif
+  OLSR_DEBUG(LOG_NETWORKING, "Checking if %s is set down or changed\n", iface->name);
 
   ifp = iface->interf;
   if (!ifp) {
@@ -128,7 +126,7 @@ chk_if_changed(struct olsr_if_config *iface)
   strscpy(ifr.ifr_name, iface->name, sizeof(ifr.ifr_name));
   /* Get flags (and check if interface exists) */
   if (ioctl(olsr_cnf->ioctl_s, SIOCGIFFLAGS, &ifr) < 0) {
-    OLSR_PRINTF(3, "No such interface: %s\n", iface->name);
+    OLSR_WARN(LOG_NETWORKING, "No such interface: %s\n", iface->name);
     remove_interface(&iface->interf);
     return 0;
   }
@@ -138,7 +136,7 @@ chk_if_changed(struct olsr_if_config *iface)
    * First check if the interface is set DOWN
    */
   if ((ifp->int_flags & IFF_UP) == 0) {
-    OLSR_PRINTF(1, "\tInterface %s not up - removing it...\n", iface->name);
+    OLSR_DEBUG(LOG_NETWORKING, "\tInterface %s not up - removing it...\n", iface->name);
     remove_interface(&iface->interf);
     return 0;
   }
@@ -153,13 +151,13 @@ chk_if_changed(struct olsr_if_config *iface)
   if (olsr_cnf->ip_version == AF_INET &&
       !iface->cnf->ipv4_broadcast.v4.s_addr && /* Skip if fixed bcast */
       ((ifp->int_flags & IFF_BROADCAST)) == 0) {
-    OLSR_PRINTF(3, "\tNo broadcast - removing\n");
+    OLSR_DEBUG(LOG_NETWORKING, "\tNo broadcast - removing\n");
     remove_interface(&iface->interf);
     return 0;
   }
 
   if (ifp->int_flags & IFF_LOOPBACK) {
-    OLSR_PRINTF(3, "\tThis is a loopback interface - removing it...\n");
+    OLSR_DEBUG(LOG_NETWORKING, "\tThis is a loopback interface - removing it...\n");
     remove_interface(&iface->interf);
     return 0;
   }
@@ -199,25 +197,25 @@ chk_if_changed(struct olsr_if_config *iface)
     /* Get interface address */
     if (get_ipv6_address(ifr.ifr_name, &tmp_saddr6, iface->cnf->ipv6_addrtype) <= 0) {
       if (iface->cnf->ipv6_addrtype == OLSR_IP6T_SITELOCAL)
-         OLSR_PRINTF(1, "\tCould not find site-local IPv6 address for %s\n", ifr.ifr_name);
+         OLSR_WARN(LOG_NETWORKING, "\tCould not find site-local IPv6 address for %s\n", ifr.ifr_name);
       else if(iface->cnf->ipv6_addrtype == OLSR_IP6T_UNIQUELOCAL)
-         OLSR_PRINTF(1, "\tCould not find unique-local IPv6 address for %s\n", ifr.ifr_name);
+        OLSR_WARN(LOG_NETWORKING, "\tCould not find unique-local IPv6 address for %s\n", ifr.ifr_name);
       else if(iface->cnf->ipv6_addrtype == OLSR_IP6T_GLOBAL)
-         OLSR_PRINTF(1, "\tCould not find global IPv6 address for %s\n", ifr.ifr_name);
+        OLSR_WARN(LOG_NETWORKING, "\tCould not find global IPv6 address for %s\n", ifr.ifr_name);
       else
-         OLSR_PRINTF(1, "\tCould not find an IPv6 address for %s\n", ifr.ifr_name);
+        OLSR_WARN(LOG_NETWORKING, "\tCould not find an IPv6 address for %s\n", ifr.ifr_name);
       remove_interface(&iface->interf);
       return 0;
     }
 
-#ifdef DEBUG
-    OLSR_PRINTF(3, "\tAddress: %s\n", ip6_to_string(&buf, &tmp_saddr6.sin6_addr));
-#endif
+    OLSR_DEBUG(LOG_NETWORKING, "\tAddress: %s\n", ip6_to_string(&buf, &tmp_saddr6.sin6_addr));
 
     if (ip6cmp(&tmp_saddr6.sin6_addr, &ifp->int6_addr.sin6_addr) != 0) {
-      OLSR_PRINTF(1, "New IP address for %s:\n", ifr.ifr_name);
-      OLSR_PRINTF(1, "\tOld: %s\n", ip6_to_string(&buf, &ifp->int6_addr.sin6_addr));
-      OLSR_PRINTF(1, "\tNew: %s\n", ip6_to_string(&buf, &tmp_saddr6.sin6_addr));
+      OLSR_DEBUG(LOG_NETWORKING, "New IP address for %s:\n"
+          "\tOld: %s\n\tNew: %s\n",
+          ifr.ifr_name,
+          ip6_to_string(&buf, &ifp->int6_addr.sin6_addr),
+          ip6_to_string(&buf, &tmp_saddr6.sin6_addr));
 
       /* Check main addr */
       if (!olsr_cnf->fixed_origaddr && ip6cmp(&olsr_cnf->router_id.v6, &tmp_saddr6.sin6_addr) != 0) {
@@ -237,20 +235,22 @@ chk_if_changed(struct olsr_if_config *iface)
 
     /* Check interface address (IPv4)*/
     if (ioctl(olsr_cnf->ioctl_s, SIOCGIFADDR, &ifr) < 0) {
-      OLSR_PRINTF(1, "\tCould not get address of interface - removing it\n");
+      OLSR_DEBUG(LOG_NETWORKING, "\tCould not get address of interface - removing it\n");
       remove_interface(&iface->interf);
       return 0;
     }
 
 #ifdef DEBUG
-      OLSR_PRINTF(3, "\tAddress:%s\n", ip4_to_string(&buf, ifp->int_addr.sin_addr));
+      OLSR_DEBUG(LOG_NETWORKING, "\tAddress:%s\n", ip4_to_string(&buf, ifp->int_addr.sin_addr));
 #endif
 
     if (ip4cmp(&ifp->int_addr.sin_addr, &tmp_saddr4->sin_addr) != 0) {
       /* New address */
-      OLSR_PRINTF(1, "IPv4 address changed for %s\n", ifr.ifr_name);
-      OLSR_PRINTF(1, "\tOld:%s\n", ip4_to_string(&buf, ifp->int_addr.sin_addr));
-      OLSR_PRINTF(1, "\tNew:%s\n", ip4_to_string(&buf, tmp_saddr4->sin_addr));
+      OLSR_DEBUG(LOG_NETWORKING, "IPv4 address changed for %s\n"
+          "\tOld:%s\n\tNew:%s\n",
+          ifr.ifr_name,
+          ip4_to_string(&buf, ifp->int_addr.sin_addr),
+          ip4_to_string(&buf, tmp_saddr4->sin_addr));
 
       ifp->int_addr = *(struct sockaddr_in *)&ifr.ifr_addr;
       if (!olsr_cnf->fixed_origaddr && ip4cmp(&olsr_cnf->router_id.v4, &ifp->ip_addr.v4) == 0) {
@@ -270,15 +270,15 @@ chk_if_changed(struct olsr_if_config *iface)
       return 0;
     }
 
-#ifdef DEBUG
-    OLSR_PRINTF(3, "\tNetmask:%s\n", ip4_to_string(&buf, ((struct sockaddr_in *)&ifr.ifr_netmask)->sin_addr));
-#endif
+    OLSR_DEBUG(LOG_NETWORKING, "\tNetmask:%s\n", ip4_to_string(&buf, ((struct sockaddr_in *)&ifr.ifr_netmask)->sin_addr));
 
     if (ip4cmp(&ifp->int_netmask.sin_addr, &((struct sockaddr_in *)&ifr.ifr_netmask)->sin_addr) != 0) {
       /* New address */
-      OLSR_PRINTF(1, "IPv4 netmask changed for %s\n", ifr.ifr_name);
-      OLSR_PRINTF(1, "\tOld:%s\n", ip4_to_string(&buf, ifp->int_netmask.sin_addr));
-      OLSR_PRINTF(1, "\tNew:%s\n", ip4_to_string(&buf, ((struct sockaddr_in *)&ifr.ifr_netmask)->sin_addr));
+      OLSR_DEBUG(LOG_NETWORKING, "IPv4 netmask changed for %s\n"
+          "\tOld:%s\n\tNew:%s\n",
+          ifr.ifr_name,
+          ip4_to_string(&buf, ifp->int_netmask.sin_addr),
+          ip4_to_string(&buf, ((struct sockaddr_in *)&ifr.ifr_netmask)->sin_addr));
 
       ifp->int_netmask = *(struct sockaddr_in *)&ifr.ifr_netmask;
 
@@ -292,15 +292,15 @@ chk_if_changed(struct olsr_if_config *iface)
         return 0;
       }
 
-#ifdef DEBUG
-      OLSR_PRINTF(3, "\tBroadcast address:%s\n", ip4_to_string(&buf, ((struct sockaddr_in *)&ifr.ifr_broadaddr)->sin_addr));
-#endif
+      OLSR_DEBUG(LOG_NETWORKING, "\tBroadcast address:%s\n", ip4_to_string(&buf, ((struct sockaddr_in *)&ifr.ifr_broadaddr)->sin_addr));
 
       if (ifp->int_broadaddr.sin_addr.s_addr != ((struct sockaddr_in *)&ifr.ifr_broadaddr)->sin_addr.s_addr) {
        /* New address */
-       OLSR_PRINTF(1, "IPv4 broadcast changed for %s\n", ifr.ifr_name);
-       OLSR_PRINTF(1, "\tOld:%s\n", ip4_to_string(&buf, ifp->int_broadaddr.sin_addr));
-       OLSR_PRINTF(1, "\tNew:%s\n", ip4_to_string(&buf, ((struct sockaddr_in *)&ifr.ifr_broadaddr)->sin_addr));
+       OLSR_DEBUG(LOG_NETWORKING, "IPv4 broadcast changed for %s\n"
+          "\tOld:%s\n\tNew:%s\n",
+          ifr.ifr_name,
+          ip4_to_string(&buf, ifp->int_broadaddr.sin_addr),
+          ip4_to_string(&buf, ((struct sockaddr_in *)&ifr.ifr_broadaddr)->sin_addr));
 
        ifp->int_broadaddr = *(struct sockaddr_in *)&ifr.ifr_broadaddr;
        if_changes = 1;
@@ -336,9 +336,8 @@ int add_hemu_if (struct olsr_if_config *iface)
 
   strscpy(ifp->int_name, "hcif01", name_size);
 
-  OLSR_PRINTF(1, "Adding %s(host emulation):\n", ifp->int_name);
-  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");
+  OLSR_INFO(LOG_NETWORKING, "Adding %s (host emulation) with address %s\n",
+      ifp->int_name, olsr_ip_to_string(&buf, &iface->hemu_ip));
 
   /* Queue */
   list_add_before(&interface_head, &ifp->int_node);
@@ -372,10 +371,6 @@ int add_hemu_if (struct olsr_if_config *iface)
      */
 
     ifp->olsr_socket = gethemusocket(&sin4);
-    if (ifp->olsr_socket < 0) {
-      OLSR_ERROR(LOG_NETWORKING, "Could not initialize socket... exiting!\n\n");
-      olsr_exit(EXIT_FAILURE);
-    }
   } else {
     /* IP version 6 */
     memcpy(&ifp->ip_addr, &iface->hemu_ip, olsr_cnf->ipsize);
@@ -389,10 +384,7 @@ int add_hemu_if (struct olsr_if_config *iface)
 
     ifp->olsr_socket = gethcsocket6(&addrsock6, BUFSPACE, ifp->int_name);
     if (ifp->olsr_socket < 0)  {
-      fprintf(stderr, "Could not initialize socket... exiting!\n\n");
-      olsr_syslog(OLSR_LOG_ERR, "Could not initialize socket... exiting!\n\n");
-      olsr_cnf->exit_value = EXIT_FAILURE;
-      kill(getpid(), SIGINT);
+      olsr_exit(EXIT_FAULURE);
     }
     join_mcast(ifp, ifp->olsr_socket);
 #endif
@@ -406,7 +398,7 @@ int add_hemu_if (struct olsr_if_config *iface)
   addr[3] = htonl(addr[3]);
 
   if (send(ifp->olsr_socket, addr , olsr_cnf->ipsize, 0) != (int)olsr_cnf->ipsize) {
-    fprintf(stderr, "Error sending IP: %m");
+    OLSR_WARN(LOG_NETWORKING, "Error sending IP.\n");
   }
 
   /* Register socket */
@@ -472,7 +464,7 @@ static const char* if_basename(const char* name)
  *
  */
 int
-chk_if_up(struct olsr_if_config *iface, int debuglvl __attribute__((unused)))
+chk_if_up(struct olsr_if_config *iface)
 {
   struct interface *ifp;
   struct ifreq ifr;
@@ -493,17 +485,17 @@ chk_if_up(struct olsr_if_config *iface, int debuglvl __attribute__((unused)))
   memset(&ifr, 0, sizeof(ifr));
   strscpy(ifr.ifr_name, iface->name, sizeof(ifr.ifr_name));
 
-  OLSR_PRINTF(debuglvl, "Checking %s:\n", ifr.ifr_name);
+  OLSR_DEBUG(LOG_NETWORKING, "Checking %s:\n", ifr.ifr_name);
 
   /* Get flags (and check if interface exists) */
   if (ioctl(olsr_cnf->ioctl_s, SIOCGIFFLAGS, &ifr) < 0) {
-    OLSR_PRINTF(debuglvl, "\tNo such interface!\n");
+    OLSR_DEBUG(LOG_NETWORKING, "\tNo such interface!\n");
     goto cleanup;
   }
 
   ifp->int_flags = ifr.ifr_flags;
   if ((ifp->int_flags & IFF_UP) == 0) {
-    OLSR_PRINTF(debuglvl, "\tInterface not up - skipping it...\n");
+    OLSR_DEBUG(LOG_NETWORKING, "\tInterface not up - skipping it...\n");
     goto cleanup;
   }
 
@@ -511,12 +503,12 @@ chk_if_up(struct olsr_if_config *iface, int debuglvl __attribute__((unused)))
   if (olsr_cnf->ip_version == AF_INET &&
       !iface->cnf->ipv4_broadcast.v4.s_addr && /* Skip if fixed bcast */
       (ifp->int_flags & IFF_BROADCAST) == 0) {
-    OLSR_PRINTF(debuglvl, "\tNo broadcast - skipping\n");
+    OLSR_DEBUG(LOG_NETWORKING, "\tNo broadcast - skipping\n");
     goto cleanup;
   }
 
   if (ifp->int_flags & IFF_LOOPBACK) {
-    OLSR_PRINTF(debuglvl, "\tThis is a loopback interface - skipping it...\n");
+    OLSR_DEBUG(LOG_NETWORKING, "\tThis is a loopback interface - skipping it...\n");
     goto cleanup;
   }
 
@@ -524,7 +516,7 @@ chk_if_up(struct olsr_if_config *iface, int debuglvl __attribute__((unused)))
 
   /* trying to detect if interface is wireless. */
   ifp->is_wireless = check_wireless_interface(ifr.ifr_name);
-  OLSR_PRINTF(debuglvl, ifp->is_wireless ? "\tWireless interface detected\n" : "\tNot a wireless interface\n");
+  OLSR_DEBUG(LOG_NETWORKING, ifp->is_wireless ? "\tWireless interface detected\n" : "\tNot a wireless interface\n");
 
   ifr_basename = if_basename(ifr.ifr_name);
 
@@ -551,17 +543,17 @@ chk_if_up(struct olsr_if_config *iface, int debuglvl __attribute__((unused)))
 
     if(result <= 0) {
       if (iface->cnf->ipv6_addrtype == OLSR_IP6T_SITELOCAL)
-         OLSR_PRINTF(1, "\tCould not find site-local IPv6 address for %s\n", ifr.ifr_name);
+        OLSR_DEBUG(LOG_NETWORKING, "\tCould not find site-local IPv6 address for %s\n", ifr.ifr_name);
       else if(iface->cnf->ipv6_addrtype == OLSR_IP6T_UNIQUELOCAL)
-         OLSR_PRINTF(1, "\tCould not find unique-local IPv6 address for %s\n", ifr.ifr_name);
+        OLSR_DEBUG(LOG_NETWORKING, "\tCould not find unique-local IPv6 address for %s\n", ifr.ifr_name);
       else if(iface->cnf->ipv6_addrtype == OLSR_IP6T_GLOBAL)
-         OLSR_PRINTF(1, "\tCould not find global IPv6 address for %s\n", ifr.ifr_name);
+        OLSR_DEBUG(LOG_NETWORKING, "\tCould not find global IPv6 address for %s\n", ifr.ifr_name);
       else
-         OLSR_PRINTF(1, "\tCould not find an IPv6 address for %s\n", ifr.ifr_name);
+        OLSR_DEBUG(LOG_NETWORKING, "\tCould not find an IPv6 address for %s\n", ifr.ifr_name);
       goto cleanup;
     }
 
-    OLSR_PRINTF(debuglvl, "\tAddress: %s\n", ip6_to_string(&buf, &ifp->int6_addr.sin6_addr));
+    OLSR_DEBUG(LOG_NETWORKING, "\tAddress: %s\n", ip6_to_string(&buf, &ifp->int6_addr.sin6_addr));
 
     /* Multicast */
     memset (&ifp->int6_multaddr, 0, sizeof(ifp->int6_multaddr));
@@ -577,7 +569,7 @@ chk_if_up(struct olsr_if_config *iface, int debuglvl __attribute__((unused)))
     ifp->int6_multaddr.sin6_scope_id = 0;
 #endif
 
-    OLSR_PRINTF(debuglvl, "\tMulticast: %s\n", ip6_to_string(&buf, &ifp->int6_multaddr.sin6_addr));
+    OLSR_DEBUG(LOG_NETWORKING, "\tMulticast: %s\n", ip6_to_string(&buf, &ifp->int6_multaddr.sin6_addr));
 
     ifp->ip_addr.v6 =  ifp->int6_addr.sin6_addr;
   } else {
@@ -585,7 +577,7 @@ chk_if_up(struct olsr_if_config *iface, int debuglvl __attribute__((unused)))
 
     /* Get interface address (IPv4)*/
     if(ioctl(olsr_cnf->ioctl_s, SIOCGIFADDR, &ifr) < 0) {
-      OLSR_PRINTF(debuglvl, "\tCould not get address of interface - skipping it\n");
+      OLSR_WARN(LOG_NETWORKING, "\tCould not get address of interface - skipping it\n");
       goto cleanup;
     }
 
@@ -623,7 +615,7 @@ chk_if_up(struct olsr_if_config *iface, int debuglvl __attribute__((unused)))
 
   /* check if interface with this IP already exists */
   if (if_ifwithaddr(&ifp->ip_addr)) {
-    OLSR_PRINTF(1, "Warning, multiple interfaces with the same IP are deprecated. Use 'OriginatorAddress'"
+    OLSR_ERROR(LOG_NETWORKING, "Warning, multiple interfaces with the same IP are deprecated. Use 'OriginatorAddress'"
         " option if you fear a changing main address. Future versions of OLSR might block using multiple"
         " interfaces with the same IP\n");
   }
@@ -633,7 +625,7 @@ chk_if_up(struct olsr_if_config *iface, int debuglvl __attribute__((unused)))
 
   /* Set interface metric */
   ifp->int_metric = iface->cnf->weight.fixed ? iface->cnf->weight.value : calculate_if_metric(ifr.ifr_name);
-  OLSR_PRINTF(1, "\tMetric: %d\n", ifp->int_metric);
+  OLSR_DEBUG(LOG_NETWORKING, "\tMetric: %d\n", ifp->int_metric);
 
   /* Get MTU */
   if (ioctl(olsr_cnf->ioctl_s, SIOCGIFMTU, &ifr) < 0) {
@@ -648,18 +640,18 @@ chk_if_up(struct olsr_if_config *iface, int debuglvl __attribute__((unused)))
   /* Set up buffer */
   net_add_buffer(ifp);
 
-  OLSR_PRINTF(1, "\tMTU - IPhdr: %d\n", ifp->int_mtu);
+  OLSR_DEBUG(LOG_NETWORKING, "\tMTU - IPhdr: %d\n", ifp->int_mtu);
 
   OLSR_INFO(LOG_NETWORKING, "Adding interface %s\n", iface->name);
-  OLSR_PRINTF(1, "\tIndex %d\n", ifp->if_index);
+  OLSR_DEBUG(LOG_NETWORKING, "\tIndex %d\n", ifp->if_index);
 
   if(olsr_cnf->ip_version == AF_INET) {
-    OLSR_PRINTF(1, "\tAddress:%s\n", ip4_to_string(&buf, ifp->int_addr.sin_addr));
-    OLSR_PRINTF(1, "\tNetmask:%s\n", ip4_to_string(&buf, ifp->int_netmask.sin_addr));
-    OLSR_PRINTF(1, "\tBroadcast address:%s\n", ip4_to_string(&buf, ifp->int_broadaddr.sin_addr));
+    OLSR_DEBUG(LOG_NETWORKING, "\tAddress:%s\n", ip4_to_string(&buf, ifp->int_addr.sin_addr));
+    OLSR_DEBUG(LOG_NETWORKING, "\tNetmask:%s\n", ip4_to_string(&buf, ifp->int_netmask.sin_addr));
+    OLSR_DEBUG(LOG_NETWORKING, "\tBroadcast address:%s\n", ip4_to_string(&buf, ifp->int_broadaddr.sin_addr));
   } else {
-    OLSR_PRINTF(1, "\tAddress: %s\n", ip6_to_string(&buf, &ifp->int6_addr.sin6_addr));
-    OLSR_PRINTF(1, "\tMulticast: %s\n", ip6_to_string(&buf, &ifp->int6_multaddr.sin6_addr));
+    OLSR_DEBUG(LOG_NETWORKING, "\tAddress: %s\n", ip6_to_string(&buf, &ifp->int6_addr.sin6_addr));
+    OLSR_DEBUG(LOG_NETWORKING, "\tMulticast: %s\n", ip6_to_string(&buf, &ifp->int6_multaddr.sin6_addr));
   }
 
   /*
@@ -694,10 +686,6 @@ chk_if_up(struct olsr_if_config *iface, int debuglvl __attribute__((unused)))
      * on what interface the message is transmitted
      */
     ifp->olsr_socket = getsocket6(BUFSPACE, ifp->int_name);
-    if (ifp->olsr_socket < 0)  {
-      OLSR_ERROR(LOG_NETWORKING, "Could not initialize socket... exiting!\n\n");
-      olsr_exit(EXIT_FAILURE);
-    }
     join_mcast(ifp, ifp->olsr_socket);
   }
 
index 23931a4..8ce3502 100644 (file)
@@ -588,12 +588,6 @@ int add_hemu_if(struct olsr_if_config *iface)
 
       ifp->olsr_socket = gethemusocket(&sin4);
 
-      if (ifp->olsr_socket < 0)
-       {
-         fprintf(stderr, "Could not initialize socket... exiting!\n\n");
-         exit(1);
-       }
-
     }
   else
     {
@@ -821,7 +815,7 @@ int chk_if_changed(struct olsr_if_config *IntConf)
   return Res;
 }
 
-int chk_if_up(struct olsr_if_config *IntConf, int DebugLevel __attribute__((unused)))
+int chk_if_up(struct olsr_if_config *IntConf)
 {
   struct ipaddr_str buf;
   struct InterfaceInfo Info;