PUD: move nodeIdPreTransmitHook into receiver
authorFerry Huberts <f.huberts@mindef.nl>
Wed, 6 Jul 2011 07:15:30 +0000 (09:15 +0200)
committerFerry Huberts <f.huberts@mindef.nl>
Wed, 13 Jul 2011 10:54:16 +0000 (12:54 +0200)
Signed-off-by: Ferry Huberts <f.huberts@mindef.nl>
lib/pud/src/nodeIdConversion.c
lib/pud/src/nodeIdConversion.h
lib/pud/src/receiver.c

index 6af03bf..4cc48c7 100644 (file)
@@ -199,42 +199,6 @@ size_t setupNodeInfoForOlsr(PudOlsrWireFormat * olsrGpsMessage,
                        + length);
 }
 
-/**
- This function is called every time before a message is sent on a specific
- interface. It can manipulate the outgoing message.
- Note that a change to the outgoing messages is carried over to the message
- that goes out on the next interface when the message is _not_ reset
- before it is sent out on the next interface.
-
- @param olsrMessage
- A pointer to the outgoing message
- @param ifn
- A pointer to the OLSR interface structure
- */
-void nodeIdPreTransmitHook(union olsr_message *olsrMessage,
-               struct interface *ifn) {
-       /* set the MAC address in the message when needed */
-       if (unlikely(getNodeIdTypeNumber() == PUD_NODEIDTYPE_MAC)) {
-               PudOlsrWireFormat * olsrGpsMessage;
-               TOLSRNetworkInterface * olsrIf = getOlsrNetworkInterface(ifn);
-
-               if (olsr_cnf->ip_version == AF_INET) {
-                       olsrGpsMessage = (PudOlsrWireFormat *) &olsrMessage->v4.message;
-               } else {
-                       olsrGpsMessage = (PudOlsrWireFormat *) &olsrMessage->v6.message;
-               }
-
-               if (likely(olsrIf != NULL)) {
-                       memcpy(&olsrGpsMessage->nodeInfo.nodeId, &olsrIf->hwAddress[0],
-                                       sizeof(PUD_HWADDR_SIZE));
-               } else {
-                       pudError(false, "Could not find OLSR interface %s, cleared its"
-                               " MAC address in the OLSR message\n", ifn->int_name);
-                       memset(&olsrGpsMessage->nodeInfo.nodeId, 0, sizeof(PUD_HWADDR_SIZE));
-               }
-       }
-}
-
 /**
  Get a nodeId number (in string representation), using a certain number of
  bytes, from the message of an OLSR message.
index c3d1c48..d4681d0 100644 (file)
@@ -19,9 +19,6 @@ bool validateNodeId(NodeIdType nodeIdTypeNumber);
 size_t setupNodeInfoForOlsr(PudOlsrWireFormat * olsrGpsMessage,
                unsigned int olsrMessageSize);
 
-void nodeIdPreTransmitHook(union olsr_message *olsrMessage,
-               struct interface *ifn);
-
 void getNodeInfoFromOlsr(const union olsr_message *olsrMessage,
                PudOlsrWireFormat *olsrGpsMessage, char *nodeIdBuffer,
                unsigned int nodeIdBufferSize, const char **nodeId,
index 9d4d32a..413144c 100644 (file)
@@ -8,6 +8,7 @@
 #include "dump.h"
 #include "nmeaTools.h"
 #include "posAvg.h"
+#include "networkInterfaces.h"
 
 /* OLSRD includes */
 #include "olsr_protocol.h"
@@ -120,6 +121,42 @@ PositionUpdateEntry txPosition;
  * Functions
  */
 
+/**
+ This function is called every time before a message is sent on a specific
+ interface. It can manipulate the outgoing message.
+ Note that a change to the outgoing messages is carried over to the message
+ that goes out on the next interface when the message is _not_ reset
+ before it is sent out on the next interface.
+
+ @param olsrMessage
+ A pointer to the outgoing message
+ @param ifn
+ A pointer to the OLSR interface structure
+ */
+static void nodeIdPreTransmitHook(union olsr_message *olsrMessage,
+               struct interface *ifn) {
+       /* set the MAC address in the message when needed */
+       if (unlikely(getNodeIdTypeNumber() == PUD_NODEIDTYPE_MAC)) {
+               PudOlsrWireFormat * olsrGpsMessage;
+               TOLSRNetworkInterface * olsrIf = getOlsrNetworkInterface(ifn);
+
+               if (olsr_cnf->ip_version == AF_INET) {
+                       olsrGpsMessage = (PudOlsrWireFormat *) &olsrMessage->v4.message;
+               } else {
+                       olsrGpsMessage = (PudOlsrWireFormat *) &olsrMessage->v6.message;
+               }
+
+               if (likely(olsrIf != NULL)) {
+                       memcpy(&olsrGpsMessage->nodeInfo.nodeId, &olsrIf->hwAddress[0],
+                                       sizeof(PUD_HWADDR_SIZE));
+               } else {
+                       pudError(false, "Could not find OLSR interface %s, cleared its"
+                               " MAC address in the OLSR message\n", ifn->int_name);
+                       memset(&olsrGpsMessage->nodeInfo.nodeId, 0, sizeof(PUD_HWADDR_SIZE));
+               }
+       }
+}
+
 /**
  Determine whether s position is valid.