PUD: add getOlsrMessageSize function
authorFerry Huberts <f.huberts@mindef.nl>
Thu, 4 Aug 2011 11:17:00 +0000 (13:17 +0200)
committerFerry Huberts <f.huberts@mindef.nl>
Thu, 18 Aug 2011 13:13:30 +0000 (15:13 +0200)
Signed-off-by: Ferry Huberts <f.huberts@mindef.nl>
lib/pud/src/pud.c
lib/pud/src/wireFormat.c
lib/pud/src/wireFormat.h

index d9d0cd1..88e6d0a 100644 (file)
@@ -125,20 +125,10 @@ bool packetReceivedFromOlsr(union olsr_message *olsrMessage,
        unsigned char buffer[BUFFER_SIZE_FROM_OLSR];
 
 #ifdef PUD_DUMP_GPS_PACKETS_RX_OLSR
-       unsigned int olsrMessageSize;
+       unsigned short olsrMessageSize =
+                       getOlsrMessageSize(olsr_cnf->ip_version, olsrMessage);
 #endif
 
-       /* determine the originator of the messsage */
-       if (olsr_cnf->ip_version == AF_INET) {
-#ifdef PUD_DUMP_GPS_PACKETS_RX_OLSR
-               olsrMessageSize = ntohs(olsrMessage->v4.olsr_msgsize);
-#endif
-       } else {
-#ifdef PUD_DUMP_GPS_PACKETS_RX_OLSR
-               olsrMessageSize = ntohs(olsrMessage->v6.olsr_msgsize);
-#endif
-       }
-
        /* when we do not loopback then check if the message originated from this
         * node: back off */
        if (!getUseLoopback() && ipequal(originator, &olsr_cnf->main_addr)) {
index be7462d..ea86318 100644 (file)
@@ -8,6 +8,7 @@
 #include <stdbool.h>
 #include <math.h>
 #include <assert.h>
+#include <netinet/in.h>
 
 /*
  * GPS Information Conversion Functions For OLSR GPS Wire Format
@@ -36,6 +37,25 @@ inline union olsr_ip_addr * getOlsrMessageOriginator(int ipVersion,
        return (union olsr_ip_addr *) &olsrMessage->v6.originator;
 }
 
+/**
+ Determine the size of an OLSR message
+
+ @param ipVersion
+ The IP version
+ @param olsrMessage
+ A pointer to the OLSR message
+ @return
+ The size of the OLSR message
+ */
+inline unsigned short getOlsrMessageSize(int ipVersion,
+               union olsr_message * olsrMessage) {
+       if (ipVersion == AF_INET) {
+               return ntohs(olsrMessage->v4.olsr_msgsize);
+       }
+
+       return ntohs(olsrMessage->v6.olsr_msgsize);
+}
+
 /* ************************************************************************
  * VALIDITY TIME
  * ************************************************************************ */
index 7c13a21..ab33c97 100644 (file)
@@ -204,6 +204,9 @@ typedef struct _PudOlsrWireFormat {
 union olsr_ip_addr * getOlsrMessageOriginator(int ipVersion,
                union olsr_message * olsrMessage);
 
+unsigned short getOlsrMessageSize(int ipVersion,
+               union olsr_message * olsrMessage);
+
 /*
  * PudOlsrWireFormat
  */