Lot's of small bugfixes for logging
authorHenning Rogge <hrogge@googlemail.com>
Mon, 13 Apr 2009 08:28:49 +0000 (10:28 +0200)
committerHenning Rogge <hrogge@googlemail.com>
Mon, 13 Apr 2009 08:28:49 +0000 (10:28 +0200)
redesigned debug makefile options

31 files changed:
Makefile.inc
lib/bmf/src/Bmf.c
lib/bmf/src/NetworkInterfaces.c
lib/httpinfo/src/olsrd_httpinfo.c
lib/mdns/src/mdns.c
lib/mini/src/olsrd_plugin.c
lib/nameservice/src/nameservice.c
lib/secure/src/olsrd_secure.c
lib/txtinfo/src/olsrd_txtinfo.c
scripts/linker-cref.pl
src/common/string.c
src/config/config-verify.c
src/defs.h
src/ipcalc.h
src/linux/kernel_routes.c
src/linux/net.c
src/main.c
src/net_olsr.c
src/olsr_cfg.c
src/olsr_cookie.c
src/olsr_cookie.h
src/plugin_loader.c
src/process_package.c
src/process_routes.c
src/routing_table.c
src/routing_table.h
src/scheduler.c
src/scheduler.h
src/tc_set.c
src/unix/ifnet.c
valgrind-howto.txt

index 705687a..9e64021 100644 (file)
@@ -4,11 +4,15 @@
 #
 #
 
-# activate debugging with 1 or deactivate with 0
+# set DEBUG to 1 to add debugger symbols to olsrd and filename/linenumbers to logging
+# set DEBUG to 0 to remove both and optimize olsrd for size
 DEBUG ?= 1
 
-# compile OLSR_PRINTF out
-NO_DEBUG_MESSAGES ?= 0
+# set to 1 to remove a severity level of logging from olsrd
+NO_LOG_DEBUG ?= 0
+NO_LOG_INFO  ?= 0
+NO_LOG_WARN  ?= 0
+NO_LOG_ERROR ?= 0
 
 # enable mudflap with 1 or deactivate with 0
 # you need a recent enough gcc and the libmudflap installed
@@ -52,12 +56,34 @@ CFGFILE ?= $(ETCDIR)/$(CFGNAME)
 CPPFLAGS =     $(filter-out -I./src,-Isrc -I$(TOPDIR)/src)
 CPPFLAGS +=    -DOLSRD_CONF_FILE_NAME='"$(CFGNAME)"'
 CPPFLAGS +=    -DOLSRD_GLOBAL_CONF_FILE='"$(CFGFILE)"'
-#CPPFLAGS +=   -DREMOVE_LOG_DEBUG
-#CPPFLAGS +=   -DREMOVE_LOG_INFO
-#CPPFLAGS +=   -DREMOVE_LOG_WARN
-#CPPFLAGS +=   -DREMOVE_LOG_ERROR
 
+#############
+# handle debugging and logging options
+#############
+ifeq ($(NO_LOG_DEBUG),1)
+CPPFLAGS +=    -DREMOVE_LOG_DEBUG
+endif
+ifeq ($(NO_LOG_INFO),1)
+CPPFLAGS +=    -DREMOVE_LOG_INFO
+endif
+ifeq ($(NO_LOG_WARN),1)
+CPPFLAGS +=    -DREMOVE_LOG_WARN
+endif
+ifeq ($(NO_LOG_ERROR),1)
+CPPFLAGS +=    -DREMOVE_LOG_ERROR
+endif
+ifeq ($(DEBUG),1)
+CPPFLAGS +=    -DDEBUG
+CFLAGS +=      -ggdb
+OPTIMIZE ?=    -O0
+else
+OPTIMIZE ?=    -Os
+endif
+
+
+##############
 # add gcc warnings and optimizations if CFLAGS not set
+##############
 ifndef CFLAGS
 ifndef WARNINGS
 ALL_WARNINGS +=        -Wall
@@ -180,20 +206,6 @@ endif
 # one object for each source file
 OBJS +=                $(SRCS:%.c=%.o)
 
-# debugging or non-debugging flags
-ifeq ($(DEBUG),1)
-CPPFLAGS +=    -DDEBUG
-CFLAGS +=      -ggdb
-OPTIMIZE ?=    -O0
-else
-CPPFLAGS +=    -DNDEBUG
-OPTIMIZE ?=    -O2
-endif
-ifeq ($(NO_DEBUG_MESSAGES),1)
-CPPFLAGS +=    -DNODEBUG
-OPTIMIZE ?=    -Os
-endif
-
 # a make function to quote "/" and "."
 quote = $(subst .,\.,$(subst /,\/,$1))
 
index ab41be7..e77b501 100644 (file)
@@ -251,7 +251,9 @@ static void BmfPacketCaptured(
   struct ip* ipHeader; /* The IP header inside the captured IP packet */
   u_int32_t crc32;
   struct TEncapHeader* encapHdr;
+#if !defined REMOVE_LOG_DEBUG
   struct ipaddr_str srcBuf, dstBuf;
+#endif
   ipHeader = GetIpHeader(encapsulationUdpData);
 
   dst.v4 = ipHeader->ip_dst;
@@ -394,7 +396,9 @@ static void BmfPacketCaptured(
       {
         /* Case 1.1 */
         {
+#if !defined REMOVE_LOG_DEBUG
           struct ipaddr_str buf;
+#endif
           OLSR_DEBUG(
             LOG_PLUGINS,
             "BMF: not encap-forwarding on \"%s\": I am not selected as MPR by neighbor %s\n",
@@ -565,7 +569,9 @@ static void BmfEncapsulationPacketReceived(
   struct TEncapHeader* encapsulationHdr;
   u_int16_t encapsulationUdpDataLen;
   struct TBmfInterface* walker;
+#if !defined REMOVE_LOG_DEBUG
   struct ipaddr_str mcSrcBuf, mcDstBuf, forwardedByBuf, forwardedToBuf;
+#endif
   /* Are we talking to ourselves? */
   if (if_ifwithaddr(forwardedBy) != NULL)
   {
@@ -832,7 +838,9 @@ static void BmfEncapsulationPacketReceived(
 
     else /* walker->olsrIntf != NULL && !iAmMpr */
     {
+#if !defined REMOVE_LOG_DEBUG
       struct ipaddr_str buf;
+#endif
       /* 'walker' is an OLSR interface, but I am not selected as MPR. In that
        * case, don't forward. */
       OLSR_DEBUG(
@@ -866,7 +874,9 @@ static void BmfTunPacketCaptured(unsigned char* encapsulationUdpData)
   struct ip* ipHeader;
   u_int32_t crc32;
   struct TEncapHeader* encapHdr;
+#if !defined REMOVE_LOG_DEBUG
   struct ipaddr_str srcIpBuf, dstIpBuf;
+#endif
   ipPacket = GetIpPacket(encapsulationUdpData);
   ipPacketLen = GetIpTotalLength(ipPacket);
   ipHeader = GetIpHeader(encapsulationUdpData);
@@ -1215,7 +1225,9 @@ static void DoBmf(void)
           sizeof(struct ip);
         if (nBytes < minimumLength)
         {
+#if !defined REMOVE_LOG_DEBUG
           struct ipaddr_str buf;
+#endif
           OLSR_DEBUG(
             LOG_PLUGINS,
             "received a too short encapsulation packet (%d bytes) from %s on \"%s\"\n",
index 6684230..6fda4c9 100644 (file)
@@ -437,7 +437,9 @@ void FindNeighbors(
   }
 
   OLSR_FOR_ALL_LINK_ENTRIES(walker) {
+#if !defined REMOVE_LOG_DEBUG
     struct ipaddr_str buf;
+#endif
     union olsr_ip_addr* neighborMainIp;
     struct link_entry* bestLinkToNeighbor;
     struct tc_entry* tcLastHop;
@@ -626,7 +628,9 @@ struct ipaddr_str forwardedByBuf, niaBuf;
   }
   else
   {
+#if !defined REMOVE_LOG_DEBUG
     struct ipaddr_str buf;
+#endif
     OLSR_DEBUG(
       LOG_PLUGINS,
       "%d neighbors found on \"%s\"; best neighbor to forward to: %s\n",
index f7541d8..318b2df 100644 (file)
@@ -391,7 +391,9 @@ parse_http_request(int fd, void *data __attribute__((unused)), unsigned int flag
   }
 
   if (!ip_acl_acceptable(&allowed_nets, ipaddr, olsr_cnf->ip_version)) {
+#if !defined REMOVE_LOG_WARN
     struct ipaddr_str strbuf;
+#endif
     OLSR_WARN(LOG_PLUGINS, "HTTP request from non-allowed host %s!\n",
                 olsr_ip_to_string(&strbuf, ipaddr));
     goto close_connection;
index 22c7630..d7663cf 100644 (file)
@@ -50,6 +50,7 @@ Written by Saverio Proto <zioproto@gmail.com> and Claudio Pisa <clauz@ninux.org>
 #include "mpr_selector_set.h" /* olsr_lookup_mprs_set() */
 #include "link_set.h" /* get_best_link_to_neighbor() */
 #include "net_olsr.h" /* ipequal */
+#include "olsr_logging.h"
 
 /* plugin includes */
 #include "NetworkInterfaces.h" /* TBmfInterface, CreateBmfNetworkInterfaces(), CloseBmfNetworkInterfaces() */
@@ -125,7 +126,7 @@ static void PacketReceivedFromOLSR(
         //  walker->ifName);
      }
     } /* if (walker->olsrIntf == NULL) */
-} 
+}
 } /* PacketReceivedFromOLSR */
 
 
@@ -148,7 +149,7 @@ olsr_parser(union olsr_message *m,
                 memcpy(&originator, &m->v6.originator, olsr_cnf->ipsize);
                vtime = me_to_reltime(m->v6.olsr_vtime);
                size = ntohs(m->v6.olsr_msgsize);
-        }    
+        }
 
         /* Check if message originated from this node.
  *         If so - back off */
@@ -161,8 +162,8 @@ olsr_parser(union olsr_message *m,
                 //struct ipaddr_str strbuf;
                 //OLSR_PRINTF(3, "NAME PLUGIN: Received msg from NON SYM neighbor %s\n", olsr_ip_to_string(&strbuf, ipaddr));
                 return false;
-        }    
-       
+        }
+
         if(olsr_cnf->ip_version == AF_INET){
        PacketReceivedFromOLSR((unsigned char*) &m->v4.message,size-12);
        }
@@ -185,34 +186,34 @@ olsr_mdns_gen(unsigned char* packet, int len)
 
         /* fill message */
         if(olsr_cnf->ip_version == AF_INET)
-        {    
+        {
                 /* IPv4 */
                 message->v4.olsr_msgtype = MESSAGE_TYPE;
                 message->v4.olsr_vtime = reltime_to_me(MDNS_VALID_TIME * MSEC_PER_SEC);
                 memcpy(&message->v4.originator, &olsr_cnf->router_id, olsr_cnf->ipsize);
                 message->v4.ttl = MAX_TTL;
-                message->v4.hopcnt = 0; 
+                message->v4.hopcnt = 0;
                 message->v4.seqno = htons(get_msg_seqno());
 
                 message->v4.olsr_msgsize = htons(len+12);
 
                memcpy(&message->v4.message,packet,len);
                 len=len+12;
-        }    
-        else 
-        {    
+        }
+        else
+        {
                 /* IPv6 */
                 message->v6.olsr_msgtype = MESSAGE_TYPE;
                 message->v6.olsr_vtime = reltime_to_me(MDNS_VALID_TIME * MSEC_PER_SEC);
                 memcpy(&message->v6.originator, &olsr_cnf->router_id, olsr_cnf->ipsize);
                 message->v6.ttl = MAX_TTL;
-                message->v6.hopcnt = 0; 
+                message->v6.hopcnt = 0;
                 message->v6.seqno = htons(get_msg_seqno());
 
                 message->v6.olsr_msgsize = htons(len+12+96);
                memcpy(&message->v6.message,packet,len);
                 len=len+12+96;
-        }    
+        }
 
         /* looping trough interfaces */
         OLSR_FOR_ALL_INTERFACES(ifn) {
@@ -223,8 +224,8 @@ olsr_mdns_gen(unsigned char* packet, int len)
                         net_output(ifn);
                         if(net_outbuffer_push(ifn, message, len) != len) {
                                 //OLSR_PRINTF(1, "MDNS PLUGIN: could not send on interface: %s\n", ifn->int_name);
-                        }    
-                }    
+                        }
+                }
         } OLSR_FOR_ALL_INTERFACES_END(ifn);
 }
 
@@ -243,29 +244,27 @@ olsr_mdns_gen(unsigned char* packet, int len)
 void BmfPError(const char* format, ...)
 {
 #define MAX_STR_DESC 255
-#ifndef NODEBUG
-  //char* strErr = strerror(errno);
-#endif
   char strDesc[MAX_STR_DESC];
 
+#if !defined REMOVE_LOG_DEBUG
+  char *stringErr = strerror(errno);
+#endif
   /* Rely on short-circuit boolean evaluation */
   if (format == NULL || *format == '\0')
   {
-    //OLSR_PRINTF(1, "%s: %s\n", PLUGIN_NAME, strErr);
+    OLSR_DEBUG(LOG_PLUGINS, "%s: %s\n", PLUGIN_NAME, stringErr);
   }
   else
   {
     va_list arglist;
 
-    //OLSR_PRINTF(1, "%s: ", PLUGIN_NAME);
-
     va_start(arglist, format);
     vsnprintf(strDesc, MAX_STR_DESC, format, arglist);
     va_end(arglist);
 
     strDesc[MAX_STR_DESC - 1] = '\0'; /* Ensures null termination */
 
-    //OLSR_PRINTF(1, "%s: %s\n", strDesc, strErr);
+    OLSR_DEBUG(LOG_PLUGINS, "%s: %s\n", strDesc, stringErr);
   }
 } /* BmfPError */
 
@@ -318,7 +317,7 @@ static void BmfPacketCaptured(
   struct ip6_hdr* ipHeader6; /* The IP header inside the captured IP packet */
   struct udphdr* udpHeader;
   u_int16_t destPort;
-  
+
   if ((encapsulationUdpData[0] & 0xf0) == 0x40) { //IPV4
 
             ipHeader = (struct ip*) encapsulationUdpData;
@@ -344,12 +343,12 @@ static void BmfPacketCaptured(
             destPort = ntohs(udpHeader->dest);
             if (destPort != 5353)
             {
-               return; 
+               return;
             }
   }//END IPV4
 
   else if ((encapsulationUdpData[0] & 0xf0) == 0x60) { //IPv6
-  
+
             ipHeader6 = (struct ip6_hdr*) encapsulationUdpData;
             if (ipHeader6->ip6_dst.s6_addr[0] == 0xff) //Multicast
             {
@@ -369,7 +368,7 @@ static void BmfPacketCaptured(
             destPort = ntohs(udpHeader->dest);
             if (destPort != 5353)
             {
-               return; 
+               return;
             }
   } //END IPV6
   else return; //Is not IP packet
@@ -392,7 +391,7 @@ static void BmfPacketCaptured(
  * Input      : none
  * Output     : none
  * Return     : none
- * Data Used  : 
+ * Data Used  :
  * ------------------------------------------------------------------------- */
 void DoMDNS(int skfd, void *data __attribute__ ((unused)), unsigned int flags __attribute__ ((unused)))
 
@@ -460,7 +459,7 @@ void DoMDNS(int skfd, void *data __attribute__ ((unused)), unsigned int flags __
 
 int InitMDNS(struct interface* skipThisIntf)
 {
-  
+
 
   //Tells OLSR to launch olsr_parser when the packets for this plugin arrive
   olsr_parser_add_function(&olsr_parser, PARSER_TYPE);
@@ -476,10 +475,10 @@ int InitMDNS(struct interface* skipThisIntf)
  * Input      : none
  * Output     : none
  * Return     : none
- * Data Used  : 
+ * Data Used  :
  * ------------------------------------------------------------------------- */
 void CloseMDNS(void)
 {
   CloseBmfNetworkInterfaces();
-} 
+}
 
index 761f375..f9be89c 100644 (file)
@@ -71,7 +71,7 @@ int olsrd_plugin_interface_version(void)
 }
 
 
-static int set_plugin_test(const char *value, void *data __attribute__((unused)), set_plugin_parameter_addon addon __attribute__((unused)))
+static int set_plugin_test(const char *value __attribute__((unused)), void *data __attribute__((unused)), set_plugin_parameter_addon addon __attribute__((unused)))
 {
     OLSR_INFO(LOG_PLUGINS, "\n*** MINI: parameter test: %s\n", value);
     return 0;
index 1956e98..d42462f 100644 (file)
@@ -471,7 +471,9 @@ remove_nonvalid_names_from_list(struct name_entry *my_list, int type)
        }
 
        if ( !valid  ) {
+#if !defined REMOVE_LOG_WARN
                struct ipaddr_str strbuf;
+#endif
                OLSR_WARN(LOG_PLUGINS, "NAME PLUGIN: invalid or malformed parameter %s (%s), fix your config!\n", my_list->name, olsr_ip_to_string(&strbuf, &my_list->ip));
                next = my_list->next;
                free(my_list->name);
@@ -480,7 +482,9 @@ remove_nonvalid_names_from_list(struct name_entry *my_list, int type)
                my_list = NULL;
                return remove_nonvalid_names_from_list(next, type);
        } else {
-               struct ipaddr_str strbuf;
+#if !defined REMOVE_LOG_INFO
+    struct ipaddr_str strbuf;
+#endif
                OLSR_INFO(LOG_PLUGINS, "NAME PLUGIN: validate parameter %s (%s) -> OK\n", my_list->name, olsr_ip_to_string(&strbuf, &my_list->ip));
                my_list->next = remove_nonvalid_names_from_list(my_list->next, type);
                return my_list;
@@ -588,7 +592,9 @@ olsr_start_write_file_timer(void)
 void
 olsr_namesvc_delete_db_entry(struct db_entry *db)
 {
+#if !defined REMOVE_LOG_DEBUG
        struct ipaddr_str strbuf;
+#endif
        OLSR_DEBUG(LOG_PLUGINS, "NAME PLUGIN: %s timed out... deleting\n",
                                olsr_ip_to_string(&strbuf, &db->originator));
 
@@ -713,7 +719,9 @@ olsr_parser(union olsr_message *m,
        /* Check that the neighbor this message was received from is symmetric.
        If not - back off*/
        if(check_neighbor_link(ipaddr) != SYM_LINK) {
+#if !defined REMOVE_LOG_DEBUG
                struct ipaddr_str strbuf;
+#endif
                OLSR_DEBUG(LOG_PLUGINS, "NAME PLUGIN: Received msg from NON SYM neighbor %s\n", olsr_ip_to_string(&strbuf, ipaddr));
                return false;
        }
@@ -809,7 +817,9 @@ create_packet(struct name* to, struct name_entry *from)
 {
        char *pos = (char*) to;
        int k;
+#if !defined REMOVE_LOG_DEBUG
        struct ipaddr_str strbuf;
+#endif
        OLSR_DEBUG(LOG_PLUGINS, "NAME PLUGIN: Announcing name %s (%s) %d\n",
                from->name, olsr_ip_to_string(&strbuf, &from->ip), from->len);
        to->type = htons(from->type);
@@ -829,7 +839,9 @@ create_packet(struct name* to, struct name_entry *from)
 void
 decap_namemsg(struct name *from_packet, struct name_entry **to, bool *this_table_changed )
 {
+#if !defined REMOVE_LOG_DEBUG
        struct ipaddr_str strbuf;
+#endif
        struct name_entry *tmp;
        struct name_entry *already_saved_name_entries;
        char *name = (char*)from_packet + sizeof(struct name);
@@ -883,7 +895,9 @@ decap_namemsg(struct name *from_packet, struct name_entry **to, bool *this_table
                        }
                        if (olsr_ipcmp(&already_saved_name_entries->ip, &from_packet->ip) != 0)
                        {
+#if !defined REMOVE_LOG_DEBUG
                                struct ipaddr_str strbuf2, strbuf3;
+#endif
                                OLSR_DEBUG(LOG_PLUGINS, "NAME PLUGIN: updating ip %s -> %s (%s)\n",
                                        olsr_ip_to_string(&strbuf, &already_saved_name_entries->ip),
                                        olsr_ip_to_string(&strbuf2, &from_packet->ip),
@@ -929,8 +943,10 @@ decap_namemsg(struct name *from_packet, struct name_entry **to, bool *this_table
 void
 update_name_entry(union olsr_ip_addr *originator, struct namemsg *msg, int msg_size, olsr_reltime vtime)
 {
+#if !defined REMOVE_LOG_WARN
        struct ipaddr_str strbuf;
-       char *pos, *end_pos;
+#endif
+  char *pos, *end_pos;
        struct name *from_packet;
        int i;
 
@@ -1010,8 +1026,10 @@ insert_new_name_in_list(union olsr_ip_addr *originator,
                entry = list2db(list_node);
 
                if (olsr_ipcmp(originator, &entry->originator) == 0) {
+#if !defined REMOVE_LOG_DEBUG
                        struct ipaddr_str strbuf;
-                       // found
+#endif
+      // found
                        OLSR_DEBUG(LOG_PLUGINS, "NAME PLUGIN: found entry for (%s) in its hash table\n",
                                                olsr_ip_to_string(&strbuf, originator));
 
@@ -1028,7 +1046,9 @@ insert_new_name_in_list(union olsr_ip_addr *originator,
 
        if (! entry_found)
        {
+#if !defined REMOVE_LOG_DEBUG
                struct ipaddr_str strbuf;
+#endif
                OLSR_DEBUG(LOG_PLUGINS, "NAME PLUGIN: create new db entry for ip (%s) in hash table\n",
                                        olsr_ip_to_string(&strbuf, originator));
 
@@ -1353,7 +1373,7 @@ select_best_nameserver(struct rt_entry **rt)
                 * if the second pointer is NULL then percolate it up.
                 */
                if (!rt2 || olsr_cmp_rt(rt1, rt2)) {
-#ifndef NODEBUG
+#if !defined REMOVE_LOG_DEBUG
                        struct ipaddr_str strbuf;
                        struct lqtextbuffer lqbuffer;
 #endif
@@ -1401,7 +1421,7 @@ write_resolv_file(void)
                        entry = list2db(list_node);
 
                        for (name = entry->names; name != NULL; name = name->next) {
-#ifndef NODEBUG
+#if !defined REMOVE_LOG_DEBUG
                                struct ipaddr_str strbuf;
                                struct lqtextbuffer lqbuffer;
 #endif
@@ -1517,9 +1537,10 @@ allowed_ip(const union olsr_ip_addr *addr)
        struct ip_prefix_entry *hna;
        struct interface *iface;
        union olsr_ip_addr tmp_ip, tmp_msk;
+#if !defined REMOVE_LOG_DEBUG
        struct ipaddr_str strbuf;
        struct ipprefix_str prefixstr;
-
+#endif
        OLSR_DEBUG(LOG_PLUGINS, "checking %s\n", olsr_ip_to_string(&strbuf, addr));
 
        OLSR_FOR_ALL_INTERFACES(iface) {
@@ -1617,7 +1638,9 @@ allowed_hostname_or_ip_in_service(const char *service_line, const regmatch_t *ho
        //ip in service-line is allowed
        if (inet_pton(olsr_cnf->ip_version, hostname_or_ip, &olsr_ip) > 0) {
                if (allowed_ip(&olsr_ip)) {
+#if !defined REMOVE_LOG_DEBUG
                        struct ipaddr_str strbuf;
+#endif
                        OLSR_DEBUG(LOG_PLUGINS, "NAME PLUGIN: ip %s in service %s is OK\n", olsr_ip_to_string(&strbuf, &olsr_ip), service_line);
                        free(hostname_or_ip);
                        hostname_or_ip = NULL;
index 229dc55..d608974 100644 (file)
@@ -1,4 +1,3 @@
-
 /*
  * The olsr.org Optimized Link-State Routing daemon(olsrd)
  * Copyright (c) 2004-2009, the olsr.org team - see HISTORY file
@@ -252,8 +251,9 @@ static char *
 secure_preprocessor(char *packet, struct interface *olsr_if_config, union olsr_ip_addr *from_addr __attribute__((unused)), int *length)
 {
   struct olsr *olsr = (struct olsr *)packet;
+#if !defined REMOVE_LOG_DEBUG
   struct ipaddr_str buf;
-
+#endif
   /*
    * Check for challenge/response messages
    */
@@ -383,10 +383,10 @@ add_signature(uint8_t *pck, int *size)
       OLSR_PRINTF(1, "  %3i", sigmsg[i]);
       j++;
       if(j == 4)
-       {
-         OLSR_PRINTF(1, "\n");
-         j = 0;
-       }
+        {
+          OLSR_PRINTF(1, "\n");
+          j = 0;
+        }
     }
   }
 #endif
@@ -431,10 +431,10 @@ validate_packet(struct interface *olsr_if_config, const char *pck, int *size)
       OLSR_PRINTF(1, "  %3i", sigmsg[i]);
       j++;
       if(j == 4)
-       {
-         OLSR_PRINTF(1, "\n");
-         j = 0;
-       }
+        {
+          OLSR_PRINTF(1, "\n");
+          j = 0;
+        }
     }
   }
 #endif
@@ -455,12 +455,12 @@ validate_packet(struct interface *olsr_if_config, const char *pck, int *size)
     {
     case(ONE_CHECKSUM):
       switch(sig->sig.algorithm)
-       {
-       case(SCHEME):
-         goto one_checksum_SHA; /* Ahhh... fix this */
-         break;
+        {
+        case(SCHEME):
+          goto one_checksum_SHA; /* Ahhh... fix this */
+          break;
 
-       }
+        }
       break;
 
     default:
@@ -516,9 +516,11 @@ validate_packet(struct interface *olsr_if_config, const char *pck, int *size)
 
   if(!check_timestamp(olsr_if_config, (const union olsr_ip_addr *)&sig->originator, rec_time))
     {
+#if !defined REMOVE_LOG_DEBUG
       struct ipaddr_str buf;
+#endif
       OLSR_DEBUG(LOG_PLUGINS, "[ENC]Timestamp missmatch in packet from %s!\n",
-                 olsr_ip_to_string(&buf, (const union olsr_ip_addr *)&sig->originator));
+                  olsr_ip_to_string(&buf, (const union olsr_ip_addr *)&sig->originator));
       return 0;
     }
 
@@ -591,7 +593,9 @@ send_challenge(struct interface *olsr_if_config, const union olsr_ip_addr *new_h
   struct challengemsg cmsg;
   struct stamp *entry;
   uint32_t challenge, hash;
+#if !defined REMOVE_LOG_DEBUG
   struct ipaddr_str buf;
+#endif
 
   OLSR_DEBUG(LOG_PLUGINS, "[ENC]Building CHALLENGE message\n");
 
@@ -626,12 +630,12 @@ send_challenge(struct interface *olsr_if_config, const union olsr_ip_addr *new_h
 
   /* Create the hash */
   CHECKSUM(checksum_cache,
-          (sizeof(struct challengemsg) - SIGNATURE_SIZE) + KEYLENGTH,
-          cmsg.signature);
+           (sizeof(struct challengemsg) - SIGNATURE_SIZE) + KEYLENGTH,
+           cmsg.signature);
   }
   OLSR_DEBUG(LOG_PLUGINS, "[ENC]Sending timestamp request to %s challenge 0x%x\n",
-             olsr_ip_to_string(&buf, new_host),
-             challenge);
+              olsr_ip_to_string(&buf, new_host),
+              challenge);
 
   /* Add to buffer */
   net_outbuffer_push(olsr_if_config, &cmsg, sizeof(struct challengemsg));
@@ -670,7 +674,9 @@ parse_cres(struct interface *olsr_if_config, char *in_msg)
   struct c_respmsg *msg;
   uint8_t sha1_hash[SIGNATURE_SIZE];
   struct stamp *entry;
+#if !defined REMOVE_LOG_DEBUG
   struct ipaddr_str buf;
+#endif
 
   msg = (struct c_respmsg *)in_msg;
 
@@ -697,8 +703,8 @@ parse_cres(struct interface *olsr_if_config, char *in_msg)
 
   /* Create the hash */
   CHECKSUM(checksum_cache,
-          (sizeof(struct c_respmsg) - SIGNATURE_SIZE) + KEYLENGTH,
-          sha1_hash);
+           (sizeof(struct c_respmsg) - SIGNATURE_SIZE) + KEYLENGTH,
+           sha1_hash);
   }
 
   if(memcmp(sha1_hash, &msg->signature, SIGNATURE_SIZE) != 0)
@@ -714,7 +720,7 @@ parse_cres(struct interface *olsr_if_config, char *in_msg)
   if((entry = lookup_timestamp_entry((const union olsr_ip_addr *)&msg->originator)) == NULL)
     {
       OLSR_DEBUG(LOG_PLUGINS, "[ENC]Received challenge-response from non-registered node %s!\n",
-                 olsr_ip_to_string(&buf, (union olsr_ip_addr *)&msg->originator));
+                  olsr_ip_to_string(&buf, (union olsr_ip_addr *)&msg->originator));
       return 0;
     }
 
@@ -730,14 +736,14 @@ parse_cres(struct interface *olsr_if_config, char *in_msg)
 
   /* Create the hash */
   CHECKSUM(checksum_cache,
-          sizeof(uint32_t) + olsr_cnf->ipsize,
-          sha1_hash);
+           sizeof(uint32_t) + olsr_cnf->ipsize,
+           sha1_hash);
   }
 
   if(memcmp(msg->res_sig, sha1_hash, SIGNATURE_SIZE) != 0)
     {
       OLSR_DEBUG(LOG_PLUGINS, "[ENC]Error in challenge signature from %s!\n",
-                 olsr_ip_to_string(&buf, (union olsr_ip_addr *)&msg->originator));
+                  olsr_ip_to_string(&buf, (union olsr_ip_addr *)&msg->originator));
 
       return 0;
     }
@@ -755,13 +761,13 @@ parse_cres(struct interface *olsr_if_config, char *in_msg)
   entry->valtime = GET_TIMESTAMP(TIMESTAMP_HOLD_TIME * 1000);
 
   OLSR_DEBUG(LOG_PLUGINS, "[ENC]%s registered with diff %d!\n",
-             olsr_ip_to_string(&buf, (union olsr_ip_addr *)&msg->originator),
-             entry->diff);
+              olsr_ip_to_string(&buf, (union olsr_ip_addr *)&msg->originator),
+              entry->diff);
 
   /* Send response-response */
   send_rres(olsr_if_config, (union olsr_ip_addr *)&msg->originator,
-           (union olsr_ip_addr *)&msg->destination,
-           ntohl(msg->challenge));
+            (union olsr_ip_addr *)&msg->destination,
+            ntohl(msg->challenge));
 
   return 1;
 }
@@ -773,7 +779,9 @@ parse_rres(char *in_msg)
   struct r_respmsg *msg;
   uint8_t sha1_hash[SIGNATURE_SIZE];
   struct stamp *entry;
+#if !defined REMOVE_LOG_DEBUG
   struct ipaddr_str buf;
+#endif
 
   msg = (struct r_respmsg *)in_msg;
 
@@ -798,8 +806,8 @@ parse_rres(char *in_msg)
 
   /* Create the hash */
   CHECKSUM(checksum_cache,
-          (sizeof(struct r_respmsg) - SIGNATURE_SIZE) + KEYLENGTH,
-          sha1_hash);
+           (sizeof(struct r_respmsg) - SIGNATURE_SIZE) + KEYLENGTH,
+           sha1_hash);
   }
 
   if(memcmp(sha1_hash, &msg->signature, SIGNATURE_SIZE) != 0)
@@ -815,7 +823,7 @@ parse_rres(char *in_msg)
   if((entry = lookup_timestamp_entry((const union olsr_ip_addr *)&msg->originator)) == NULL)
     {
       OLSR_DEBUG(LOG_PLUGINS, "[ENC]Received response-response from non-registered node %s!\n",
-                 olsr_ip_to_string(&buf, (union olsr_ip_addr *)&msg->originator));
+                  olsr_ip_to_string(&buf, (union olsr_ip_addr *)&msg->originator));
       return 0;
     }
 
@@ -831,14 +839,14 @@ parse_rres(char *in_msg)
 
   /* Create the hash */
   CHECKSUM(checksum_cache,
-          sizeof(uint32_t) + olsr_cnf->ipsize,
-          sha1_hash);
+           sizeof(uint32_t) + olsr_cnf->ipsize,
+           sha1_hash);
   }
 
   if(memcmp(msg->res_sig, sha1_hash, SIGNATURE_SIZE) != 0)
     {
       OLSR_DEBUG(LOG_PLUGINS, "[ENC]Error in response signature from %s!\n",
-                 olsr_ip_to_string(&buf, (union olsr_ip_addr *)&msg->originator));
+                  olsr_ip_to_string(&buf, (union olsr_ip_addr *)&msg->originator));
 
       return 0;
     }
@@ -856,8 +864,8 @@ parse_rres(char *in_msg)
   entry->valtime = GET_TIMESTAMP(TIMESTAMP_HOLD_TIME * 1000);
 
   OLSR_DEBUG(LOG_PLUGINS, "[ENC]%s registered with diff %d!\n",
-             olsr_ip_to_string(&buf, (union olsr_ip_addr *)&msg->originator),
-             entry->diff);
+              olsr_ip_to_string(&buf, (union olsr_ip_addr *)&msg->originator),
+              entry->diff);
 
   return 1;
 }
@@ -870,7 +878,9 @@ parse_challenge(struct interface *olsr_if_config, char *in_msg)
   uint8_t sha1_hash[SIGNATURE_SIZE];
   struct stamp *entry;
   uint32_t hash;
+#if !defined REMOVE_LOG_DEBUG
   struct ipaddr_str buf;
+#endif
 
   msg = (struct challengemsg *)in_msg;
 
@@ -901,15 +911,15 @@ parse_challenge(struct interface *olsr_if_config, char *in_msg)
     {
       /* Check configuration timeout */
       if(!TIMED_OUT(entry->conftime))
-       {
-         /* If registered - do not accept! */
-         OLSR_DEBUG(LOG_PLUGINS, "[ENC]Challenge from registered node...dropping!\n");
-         return 0;
-       }
+        {
+          /* If registered - do not accept! */
+          OLSR_DEBUG(LOG_PLUGINS, "[ENC]Challenge from registered node...dropping!\n");
+          return 0;
+        }
       else
-       {
-         OLSR_DEBUG(LOG_PLUGINS, "[ENC]Challenge from registered node...accepted!\n");
-       }
+        {
+          OLSR_DEBUG(LOG_PLUGINS, "[ENC]Challenge from registered node...accepted!\n");
+        }
     }
 
   OLSR_DEBUG(LOG_PLUGINS, "[ENC]Challenge: 0x%lx\n", (unsigned long)ntohl(msg->challenge)); /* ntohl() returns a unsignedlong onwin32 */
@@ -926,8 +936,8 @@ parse_challenge(struct interface *olsr_if_config, char *in_msg)
 
   /* Create the hash */
   CHECKSUM(checksum_cache,
-          (sizeof(struct challengemsg) - SIGNATURE_SIZE) + KEYLENGTH,
-          sha1_hash);
+           (sizeof(struct challengemsg) - SIGNATURE_SIZE) + KEYLENGTH,
+           sha1_hash);
   }
   if(memcmp(sha1_hash, &msg->signature, SIGNATURE_SIZE) != 0)
     {
@@ -947,9 +957,9 @@ parse_challenge(struct interface *olsr_if_config, char *in_msg)
   /* Build and send response */
 
   send_cres(olsr_if_config, (union olsr_ip_addr *)&msg->originator,
-           (union olsr_ip_addr *)&msg->destination,
-           ntohl(msg->challenge),
-           entry);
+            (union olsr_ip_addr *)&msg->destination,
+            ntohl(msg->challenge),
+            entry);
 
   return 1;
 }
@@ -968,7 +978,9 @@ send_cres(struct interface *olsr_if_config, union olsr_ip_addr *to, union olsr_i
 {
   struct c_respmsg crmsg;
   uint32_t challenge;
+#if !defined REMOVE_LOG_DEBUG
   struct ipaddr_str buf;
+#endif
 
   OLSR_DEBUG(LOG_PLUGINS, "[ENC]Building CRESPONSE message\n");
 
@@ -1008,8 +1020,8 @@ send_cres(struct interface *olsr_if_config, union olsr_ip_addr *to, union olsr_i
 
   /* Create the hash */
   CHECKSUM(checksum_cache,
-          sizeof(uint32_t) + olsr_cnf->ipsize,
-          crmsg.res_sig);
+           sizeof(uint32_t) + olsr_cnf->ipsize,
+           crmsg.res_sig);
   }
 
   /* Now create the digest of the message and the key */
@@ -1024,13 +1036,13 @@ send_cres(struct interface *olsr_if_config, union olsr_ip_addr *to, union olsr_i
 
   /* Create the hash */
   CHECKSUM(checksum_cache,
-          (sizeof(struct c_respmsg) - SIGNATURE_SIZE) + KEYLENGTH,
-          crmsg.signature);
+           (sizeof(struct c_respmsg) - SIGNATURE_SIZE) + KEYLENGTH,
+           crmsg.signature);
   }
 
   OLSR_DEBUG(LOG_PLUGINS, "[ENC]Sending challenge response to %s challenge 0x%x\n",
-             olsr_ip_to_string(&buf, to),
-             challenge);
+              olsr_ip_to_string(&buf, to),
+              challenge);
 
   /* Add to buffer */
   net_outbuffer_push(olsr_if_config, &crmsg, sizeof(struct c_respmsg));
@@ -1054,7 +1066,9 @@ static int
 send_rres(struct interface *olsr_if_config, union olsr_ip_addr *to, union olsr_ip_addr *from, uint32_t chal_in)
 {
   struct r_respmsg rrmsg;
+#if !defined REMOVE_LOG_DEBUG
   struct ipaddr_str buf;
+#endif
 
   OLSR_DEBUG(LOG_PLUGINS, "[ENC]Building RRESPONSE message\n");
 
@@ -1087,8 +1101,8 @@ send_rres(struct interface *olsr_if_config, union olsr_ip_addr *to, union olsr_i
 
   /* Create the hash */
   CHECKSUM(checksum_cache,
-          sizeof(uint32_t) + olsr_cnf->ipsize,
-          rrmsg.res_sig);
+           sizeof(uint32_t) + olsr_cnf->ipsize,
+           rrmsg.res_sig);
   }
 
   /* Now create the digest of the message and the key */
@@ -1103,12 +1117,12 @@ send_rres(struct interface *olsr_if_config, union olsr_ip_addr *to, union olsr_i
 
   /* Create the hash */
   CHECKSUM(checksum_cache,
-          (sizeof(struct r_respmsg) - SIGNATURE_SIZE) + KEYLENGTH,
-          rrmsg.signature);
+           (sizeof(struct r_respmsg) - SIGNATURE_SIZE) + KEYLENGTH,
+           rrmsg.signature);
   }
 
   OLSR_DEBUG(LOG_PLUGINS, "[ENC]Sending response response to %s\n",
-             olsr_ip_to_string(&buf, to));
+              olsr_ip_to_string(&buf, to));
 
   /* add to buffer */
   net_outbuffer_push(olsr_if_config, &rrmsg, sizeof(struct r_respmsg));
@@ -1126,7 +1140,9 @@ lookup_timestamp_entry(const union olsr_ip_addr *adr)
 {
   uint32_t hash;
   struct stamp *entry;
+#if !defined REMOVE_LOG_DEBUG
   struct ipaddr_str buf;
+#endif
 
   hash = olsr_ip_hashing(adr);
 
@@ -1135,10 +1151,10 @@ lookup_timestamp_entry(const union olsr_ip_addr *adr)
       entry = entry->next)
     {
       if(memcmp(&entry->addr, adr, olsr_cnf->ipsize) == 0)
-       {
-         OLSR_DEBUG(LOG_PLUGINS, "[ENC]Match for %s\n", olsr_ip_to_string(&buf, adr));
-         return entry;
-       }
+        {
+          OLSR_DEBUG(LOG_PLUGINS, "[ENC]Match for %s\n", olsr_ip_to_string(&buf, adr));
+          return entry;
+        }
     }
 
   OLSR_DEBUG(LOG_PLUGINS, "[ENC]No match for %s\n", olsr_ip_to_string(&buf, adr));
@@ -1168,26 +1184,28 @@ timeout_timestamps(void* foo __attribute__((unused)))
       tmp_list = timestamps[idx].next;
       /*Traverse MID list*/
       while(tmp_list != &timestamps[idx])
-       {
-         /*Check if the entry is timed out*/
-         if((TIMED_OUT(tmp_list->valtime)) && (TIMED_OUT(tmp_list->conftime)))
-           {
-              struct ipaddr_str buf;
-             entry_to_delete = tmp_list;
-             tmp_list = tmp_list->next;
-
-             OLSR_DEBUG(LOG_PLUGINS, "[ENC]timestamp info for %s timed out.. deleting it\n",
-                         olsr_ip_to_string(&buf, &entry_to_delete->addr));
-
-             /*Delete it*/
-             entry_to_delete->next->prev = entry_to_delete->prev;
-             entry_to_delete->prev->next = entry_to_delete->next;
-
-             free(entry_to_delete);
-           }
-         else
-             tmp_list = tmp_list->next;
-       }
+        {
+          /*Check if the entry is timed out*/
+          if((TIMED_OUT(tmp_list->valtime)) && (TIMED_OUT(tmp_list->conftime)))
+            {
+#if !defined REMOVE_LOG_DEBUG
+        struct ipaddr_str buf;
+#endif
+              entry_to_delete = tmp_list;
+              tmp_list = tmp_list->next;
+
+              OLSR_DEBUG(LOG_PLUGINS, "[ENC]timestamp info for %s timed out.. deleting it\n",
+                          olsr_ip_to_string(&buf, &entry_to_delete->addr));
+
+              /*Delete it*/
+              entry_to_delete->next->prev = entry_to_delete->prev;
+              entry_to_delete->prev->next = entry_to_delete->next;
+
+              free(entry_to_delete);
+            }
+          else
+              tmp_list = tmp_list->next;
+        }
     }
 
   return;
index 2796dcf..6005567 100644 (file)
@@ -325,13 +325,14 @@ ipc_action(int fd, void *data __attribute__ ((unused)), unsigned int flags __att
 {
   struct ipc_conn *conn;
   struct sockaddr_storage pin;
-#ifndef NODEBUG
-  char addr[INET6_ADDRSTRLEN];
+#if !defined REMOVE_LOG_DEBUG || !defined REMOVE_LOG_WARN
+  struct ipaddr_str buf;
 #endif
   socklen_t addrlen = sizeof(pin);
-  int http_connection = accept(fd, (struct sockaddr *)&pin, &addrlen);
+  int http_connection;
   union olsr_ip_addr *ipaddr;
 
+  http_connection = accept(fd, (struct sockaddr *)&pin, &addrlen);
   if (http_connection == -1) {
     /* this may well happen if the other side immediately closes the connection. */
     OLSR_WARN(LOG_PLUGINS, "(TXTINFO) accept()=%s\n", strerror(errno));
@@ -348,11 +349,11 @@ ipc_action(int fd, void *data __attribute__ ((unused)), unsigned int flags __att
   }
 
   if (!ip_acl_acceptable(&allowed_nets, ipaddr, olsr_cnf->ip_version)) {
-    OLSR_WARN(LOG_PLUGINS, "(TXTINFO) From host(%s) not allowed!\n", addr);
+    OLSR_WARN(LOG_PLUGINS, "(TXTINFO) From host(%s) not allowed!\n", olsr_ip_to_string(&buf, ipaddr));
     CLOSESOCKET(http_connection);
     return;
   }
-  OLSR_WARN(LOG_PLUGINS, "(TXTINFO) Connect from %s\n", addr);
+  OLSR_DEBUG(LOG_PLUGINS, "(TXTINFO) Connect from %s\n", olsr_ip_to_string(&buf, ipaddr));
 
   /* make the fd non-blocking */
   if (set_nonblocking(http_connection) < 0) {
@@ -360,12 +361,7 @@ ipc_action(int fd, void *data __attribute__ ((unused)), unsigned int flags __att
     return;
   }
 
-  conn = malloc(sizeof(*conn));
-  if (conn == NULL) {
-    OLSR_WARN(LOG_PLUGINS, "(TXTINFO) Out of memory!");
-    CLOSESOCKET(http_connection);
-    return;
-  }
+  conn = olsr_malloc(sizeof(*conn), "Connection object for ");
   conn->requlen = 0;
   *conn->requ = '\0';
   conn->respstart = 0;
index 58e2a7a..e663d44 100755 (executable)
@@ -7,7 +7,7 @@ local %SYM = ();
 local $all = (0 <= $#ARGV && "-a" eq $ARGV[0]);
 
 foreach(`make LDFLAGS=-Wl,--cref`)
-#foreach(`make DEBUG=0 NO_DEBUG_MESSAGES=1 LDFLAGS=-Wl,--cref`)
+#foreach(`make DEBUG=0 NO_LOG_DEBUG=1 NO_LOG_INFO=1 NO_LOG_WARN=1 NO_LOG_ERROR=1 LDFLAGS=-Wl,--cref`)
 {
   chomp;
   if (m#^Cross Reference Table#s)
index 1380dde..373c1e7 100644 (file)
@@ -42,9 +42,7 @@
 #include "common/string.h"
 
 #include <string.h>
-#if !defined(NODEBUG) && defined(DEBUG)
-#include <stdio.h>
-#endif
+#include <assert.h>
 
 /*
  * A somewhat safe version of strncpy and strncat. Note, that
  */
 char *strscpy(char *dest, const char *src, size_t size)
 {
-       register size_t l = 0;
-#if !defined(NODEBUG) && defined(DEBUG)
-       if (NULL == dest) fprintf(stderr, "Warning: dest is NULL in strscpy!\n");
-       if (NULL == src) fprintf(stderr, "Warning: src is NULL in strscpy!\n");
-#endif
-       if (NULL != dest && NULL != src)
-       {
-               /* src does not need to be null terminated */
-               if (0 < size--) while(l < size && 0 != src[l]) l++;
-               dest[l] = 0;
-       }
-       return strncpy(dest, src, l);
+  size_t l = 0;
+  assert (dest != NULL);
+  assert (src != NULL);
+  if (NULL != dest && NULL != src) {
+    /* src does not need to be null terminated */
+    if (0 < size--) {
+      while(l < size && 0 != src[l]) l++;
+    }
+    dest[l] = 0;
+  }
+  return strncpy(dest, src, l);
 }
 
 /*
index 3614081..6560173 100644 (file)
 
 /************ GLOBALS(begin) ***********/
 
-#ifndef NODEBUG
-FILE *debug_handle = NULL;
-struct olsr_config *olsr_cnf;
-#endif
-
 void *
-olsr_malloc(size_t size, const char *id __attribute__ ((unused)))
+olsr_malloc(size_t size, const char *id)
 {
-  return calloc(1, size);
+  void *ptr = calloc(1, size);
+  if (ptr == NULL) {
+    fprintf(stderr, "error, no memory left for '%s'\n", id);
+    exit(1);
+  }
+  return ptr;
 }
 
 char *
@@ -84,9 +84,6 @@ int
 main(int argc, char *argv[])
 {
   int i, ret = EXIT_SUCCESS;
-#ifndef NODEBUG
-  debug_handle = stdout;
-#endif
 
   for (i = 1; i < argc; i++) {
     const char *sres;
index d25821f..1e87f10 100644 (file)
@@ -71,15 +71,6 @@ extern const char EXPORT(build_host)[];
 
 extern FILE *EXPORT(debug_handle);
 
-#ifdef NODEBUG
-#define OLSR_PRINTF(lvl, format, args...) do { } while(0)
-#else
-#define OLSR_PRINTF(lvl, format, args...) do {                    \
-    if((olsr_cnf->debug_level >= (lvl)) && debug_handle)          \
-      fprintf(debug_handle, (format), ##args);                    \
-  } while (0)
-#endif
-
 #endif
 
 #define ARRAYSIZE(x)   (sizeof(x)/sizeof(*(x)))
@@ -101,12 +92,6 @@ extern FILE *EXPORT(debug_handle);
 #endif
 #endif
 
-#if defined NODEBUG
-#define USED_ONLY_FOR_DEBUG __attribute__((unused))
-#else
-#define USED_ONLY_FOR_DEBUG
-#endif
-
 #define ROUND_UP_TO_POWER_OF_2(val, pow2) (((val) + (pow2) - 1) & ~((pow2) - 1))
 
 /*
index acda1da..321f3fa 100644 (file)
@@ -60,12 +60,12 @@ extern const union olsr_ip_addr all_zero;
 
 struct ipaddr_str {
   char buf[MAX(INET6_ADDRSTRLEN, INET_ADDRSTRLEN)];
-} USED_ONLY_FOR_DEBUG;
+};
 
 struct ipprefix_str {
   /* We need for IPv6 an IP address + '/' + prefix and for IPv4 an IP address + '/' + a netmask */
   char buf[MAX(INET6_ADDRSTRLEN + 1 + 3, INET_ADDRSTRLEN + 1 + 2)];
-} USED_ONLY_FOR_DEBUG;
+};
 
 /*
  * Macros for comparing and copying IP addresses
index 4ce6cb0..6cd4864 100644 (file)
@@ -60,7 +60,7 @@ struct olsr_ipadd_req {
 };
 
 
-static void olsr_netlink_addreq(struct nlmsghdr *n, size_t reqSize, int type, const void *data, int len)
+static void olsr_netlink_addreq(struct nlmsghdr *n, size_t reqSize __attribute__((unused)), int type, const void *data, int len)
 {
   struct rtattr *rta = (struct rtattr*)(((char*)n) + NLMSG_ALIGN(n->nlmsg_len));
   n->nlmsg_len = NLMSG_ALIGN(n->nlmsg_len) + RTA_LENGTH(len);
index 04e65c2..ee9a50f 100644 (file)
@@ -553,7 +553,9 @@ int
 join_mcast(struct interface *ifs, int sock)
 {
   /* See linux/in6.h */
+#if !defined REMOVE_LOG_INFO
   struct ipaddr_str buf;
+#endif
   struct ipv6_mreq mcastreq;
 
   mcastreq.ipv6mr_multiaddr = ifs->int6_multaddr.sin6_addr;
index 997b968..66b591f 100644 (file)
@@ -86,7 +86,6 @@ static void signal_reconfigure(int);
 #endif
 
 /* Global stuff externed in olsr_cfg.h */
-FILE *debug_handle;                    /* Where to send debug(defaults to stdout) */
 struct olsr_config *olsr_cnf;          /* The global configuration */
 
 volatile enum app_state app_state = STATE_INIT;
@@ -123,7 +122,6 @@ main(int argc, char *argv[])
   assert(sizeof(int16_t) == 2);
   assert(sizeof(int32_t) == 4);
 
-  debug_handle = stdout;
   setbuf(stdout, NULL);
   setbuf(stderr, NULL);
 
index 0b70340..5969378 100644 (file)
@@ -374,7 +374,9 @@ net_output(struct interface *ifp)
                  MSG_DONTROUTE,
                  &dstaddr.sin,
                  dstaddr_size) < 0) {
+#if !defined REMOVE_LOG_WARN
     const int save_errno = errno;
+#endif
 #if !defined REMOVE_LOG_DEBUG
     char sabuf[1024];
 #endif
index 6fde704..5aa3a6a 100644 (file)
@@ -731,9 +731,9 @@ parse_cfg_debug(char *argstr, struct olsr_config *rcfg, char *rmsg)
   int dlevel, i;
   dlevel = atoi(argstr);
 
-  if (dlevel < -2 || dlevel > 2) {
+  if (dlevel < -2 || dlevel > 3) {
     sprintf(rmsg, "Error, debug level must be between -2 and 4\n");
-    return CFG_EXIT;
+    return CFG_ERROR;
   }
 
   switch(dlevel) {
@@ -1576,18 +1576,6 @@ olsr_get_default_cfg(void)
   int i;
   struct olsr_config *cfg = olsr_malloc(sizeof(struct olsr_config), "default config");
 
-#ifndef NDEBUG
-  /*
-   * Use of assert() creates a warning suppressed by this
-   */
-  if (!cfg) return NULL;
-#endif
-
-  /*
-   * olsr_malloc calls calloc(), no memset necessary:
-   * memset(cfg, 0, sizeof(*cfg));
-   */
-
   cfg->ip_version = AF_INET;
   cfg->ipsize = sizeof(struct in_addr);
 
index 43e87bb..f80a46e 100644 (file)
@@ -188,7 +188,6 @@ olsr_cookie_set_memory_clear(struct olsr_cookie_info *ci, bool clear)
   }
 }
 
-#if 0
 /*
  * Set if a returned memory block shall be initialized to an all zero or
  * to a poison memory pattern after returning to the free pool.
@@ -209,7 +208,6 @@ olsr_cookie_set_memory_poison(struct olsr_cookie_info *ci, bool poison)
     ci->ci_flags &= ~COOKIE_MEMPOISON;
   }
 }
-#endif
 
 /*
  * Basic sanity checking for a passed-in cookie-id.
@@ -247,7 +245,6 @@ olsr_cookie_usage_decr(olsr_cookie_t cookie_id)
   }
 }
 
-#ifndef NODEBUG
 /*
  * Return a cookie name.
  * Mostly used for logging purposes.
@@ -263,7 +260,6 @@ olsr_cookie_name(olsr_cookie_t cookie_id)
 
   return unknown;
 }
-#endif /* !NODEBUG */
 
 /*
  * Allocate a fixed amount of memory based on a passed in cookie type.
index 2e6cd5a..1f3d5b9 100644 (file)
@@ -88,22 +88,18 @@ struct olsr_cookie_mem_brand {
 };
 
 /* Externals. */
-extern struct olsr_cookie_info *EXPORT(olsr_alloc_cookie)(const char *,
+struct olsr_cookie_info *EXPORT(olsr_alloc_cookie)(const char *,
                                                  olsr_cookie_type);
-extern void olsr_delete_all_cookies(void);
-#ifndef NODEBUG
-extern char *olsr_cookie_name(olsr_cookie_t);
-#endif /* !NODEBUG */
-extern void olsr_cookie_set_memory_size(struct olsr_cookie_info *, size_t);
-extern void olsr_cookie_set_memory_clear(struct olsr_cookie_info *, bool);
-#if 0
-void olsr_cookie_set_memory_poison(struct olsr_cookie_info *, bool);
-#endif
-extern void olsr_cookie_usage_incr(olsr_cookie_t);
-extern void olsr_cookie_usage_decr(olsr_cookie_t);
+void olsr_delete_all_cookies(void);
+char *EXPORT(olsr_cookie_name)(olsr_cookie_t);
+void EXPORT(olsr_cookie_set_memory_size)(struct olsr_cookie_info *, size_t);
+void EXPORT(olsr_cookie_set_memory_clear)(struct olsr_cookie_info *, bool);
+void EXPORT(olsr_cookie_set_memory_poison)(struct olsr_cookie_info *, bool);
+void EXPORT(olsr_cookie_usage_incr)(olsr_cookie_t);
+void EXPORT(olsr_cookie_usage_decr)(olsr_cookie_t);
 
-extern void *olsr_cookie_malloc(struct olsr_cookie_info *);
-extern void olsr_cookie_free(struct olsr_cookie_info *, void *);
+void *EXPORT(olsr_cookie_malloc)(struct olsr_cookie_info *);
+void EXPORT(olsr_cookie_free)(struct olsr_cookie_info *, void *);
 
 struct olsr_cookie_info *EXPORT(olsr_cookie_get)(int i);
 
index 417ab0c..f29fc56 100644 (file)
@@ -101,9 +101,11 @@ static int olsr_load_dl(char *libname, struct plugin_param *params)
       strcat(path, libname);
       plugin->dlhandle = dlopen(libname, RTLD_NOW);
       free(path);
+      fprintf(stderr, "1\n");
     }
     else {
       plugin->dlhandle = dlopen(libname, RTLD_NOW);
+      fprintf(stderr, "2\n");
     }
     if(plugin->dlhandle == NULL) {
         const int save_errno = errno;
index bcc9db9..9437d60 100644 (file)
@@ -408,7 +408,9 @@ hello_tap(struct lq_hello_message *message,
 
   /* Check willingness */
   if (lnk->neighbor->willingness != message->will) {
+#if !defined REMOVE_LOG_DEBUG
     struct ipaddr_str buf;
+#endif
     OLSR_DEBUG(LOG_LINKS, "Willingness for %s changed from %d to %d - UPDATING\n",
                 olsr_ip_to_string(&buf, &lnk->neighbor->neighbor_main_addr),
                 lnk->neighbor->willingness,
index c2a4256..614bcd4 100644 (file)
@@ -360,8 +360,9 @@ olsr_update_kernel_routes(void)
 
   /* route additions */
   olsr_add_routes(&add_kernel_list);
-
+#ifdef DEBUG
   olsr_print_routing_table(&routingtree);
+#endif
 }
 
 /*
index 18d3be6..1fea07d 100644 (file)
@@ -588,7 +588,7 @@ struct rt_path *
 olsr_insert_routing_table(const union olsr_ip_addr *dst, int plen,
                           const union olsr_ip_addr *originator, int origin)
 {
-#ifdef DEBUG
+#if !defined REMOVE_LOG_DEBUG
   struct ipaddr_str dstbuf, origbuf;
 #endif
   struct tc_entry *tc;
@@ -649,7 +649,7 @@ void
 olsr_delete_routing_table(union olsr_ip_addr *dst, int plen,
                           union olsr_ip_addr *originator, int origin)
 {
-#ifdef DEBUG
+#if !defined REMOVE_LOG_DEBUG
   struct ipaddr_str dstbuf, origbuf;
 #endif
 
@@ -742,7 +742,7 @@ olsr_rtp_to_string(const struct rt_path *rtp)
  *
  */
 void
-olsr_print_routing_table(struct avl_tree *tree USED_ONLY_FOR_DEBUG)
+olsr_print_routing_table(struct avl_tree *tree __attribute__((unused)))
 {
   /* The whole function makes no sense without it. */
 #if !defined REMOVE_LOG_INFO
index 8e64244..8a821d1 100644 (file)
@@ -228,9 +228,7 @@ static INLINE uint8_t olsr_fib_metric(const struct rt_metric *met) {
 
 char *olsr_rt_to_string(const struct rt_entry *);
 char *olsr_rtp_to_string(const struct rt_path *);
-#ifdef DEBUG
 void olsr_print_routing_table(struct avl_tree *);
-#endif
 
 /**
  * depending on the operation (add/chg/del) the nexthop
index b3a5598..fc39345 100644 (file)
@@ -665,7 +665,6 @@ olsr_flush_timers(void)
   }
 }
 
-#ifndef NODEBUG
 /**
  * Returns the difference between gmt and local time in seconds.
  * Use gmtime() and localtime() to keep things simple.
@@ -748,7 +747,6 @@ olsr_clock_string(uint32_t clk)
 
   return buf;
 }
-#endif /* !NODEBUG */
 
 /**
  * Start a new timer.
index 9c2a243..e8d3fd9 100644 (file)
@@ -102,10 +102,8 @@ void olsr_change_timer(struct timer_entry *, unsigned int, uint8_t, bool);
 void EXPORT(olsr_stop_timer)(struct timer_entry *);
 
 /* Printing timestamps */
-#ifndef NODEBUG
 const char *olsr_clock_string(uint32_t);
 const char *olsr_wallclock_string(void);
-#endif /* !NODEBUG */
 
 /* Main scheduler loop */
 void olsr_scheduler(void);
index cfc6bf3..be7c9a2 100644 (file)
@@ -318,6 +318,7 @@ olsr_locate_tc_entry(const union olsr_ip_addr *adr)
 /**
  * Format tc_edge contents into a buffer.
  */
+#if !defined REMOVE_LOG_DEBUG
 static char *
 olsr_tc_edge_to_string(struct tc_edge_entry *tc_edge)
 {
@@ -333,6 +334,7 @@ olsr_tc_edge_to_string(struct tc_edge_entry *tc_edge)
           get_linkcost_text(tc_edge->cost, false, &lqbuffer2));
   return buf;
 }
+#endif
 
 /**
  * Wrapper for the timer callback.
index c9ae942..675fd68 100644 (file)
@@ -110,7 +110,9 @@ set_flag(char *ifname, short flag __attribute__((unused)))
 int
 chk_if_changed(struct olsr_if_config *iface)
 {
+#if !defined REMOVE_LOG_DEBUG || !defined REMOVE_LOG_INFO
   struct ipaddr_str buf;
+#endif
   struct interface *ifp;
   struct ifreq ifr;
   int if_changes = 0;
@@ -240,9 +242,7 @@ chk_if_changed(struct olsr_if_config *iface)
       return 0;
     }
 
-#ifdef DEBUG
-      OLSR_DEBUG(LOG_NETWORKING, "\tAddress:%s\n", ip4_to_string(&buf, ifp->int_addr.sin_addr));
-#endif
+    OLSR_DEBUG(LOG_NETWORKING, "\tAddress:%s\n", ip4_to_string(&buf, ifp->int_addr.sin_addr));
 
     if (ip4cmp(&ifp->int_addr.sin_addr, &tmp_saddr4->sin_addr) != 0) {
       /* New address */
@@ -321,7 +321,9 @@ int add_hemu_if (struct olsr_if_config *iface)
 {
   struct interface *ifp;
   uint32_t addr[4];
+#if !defined REMOVE_LOG_INFO
   struct ipaddr_str buf;
+#endif
   size_t name_size;
 
   ifp = olsr_cookie_malloc(interface_mem_cookie);
@@ -469,7 +471,9 @@ chk_if_up(struct olsr_if_config *iface)
   struct interface *ifp;
   struct ifreq ifr;
   const char *ifr_basename;
+#if !defined REMOVE_LOG_DEBUG || !defined REMOVE_LOG_INFO
   struct ipaddr_str buf;
+#endif
 
   /*
    * Sanity check.
index b024056..edc0f30 100644 (file)
@@ -3,20 +3,18 @@ This mini-howto discusses how to set your development environment up,
 such that you can profile or leakcheck a running olsr daemon and later analyze its
 recordings using a graphical frontend called Kcachegrind.
 
-First patch your makefile such that the debug symbols are not removed after
+First change your makefile.inc such that the debug symbols are not removed after
 compilation
 
-    diff -r 26494c58ff86 Makefile.inc
-    --- a/Makefile.inc Wed Jan 09 22:01:18 2008 +0100
-    +++ b/Makefile.inc Thu Jan 10 14:46:27 2008 +0100
-    @@ -5,10 +5,10 @@
-    #
-    # activate debugging with 1 or deactivate with 0
-    -DEBUG ?= 0
-    +DEBUG ?= 1
-    # compile OLSR_PRINTF out
-    -NO_DEBUG_MESSAGES ?= 0
-    +NO_DEBUG_MESSAGES ?= 1
+    # set DEBUG to 1 to add debugger symbols to olsrd and filename/linenumbers to logging
+    # set DEBUG to 0 to remove both and optimize olsrd for size
+    DEBUG ?= 1
+
+    # set to 1 to remove a severity level of logging from olsrd
+    NO_LOG_DEBUG ?= 0
+    NO_LOG_INFO  ?= 0
+    NO_LOG_WARN  ?= 0
+    NO_LOG_ERROR ?= 0
 
 valgrind for profiling: