PUD: add downlink socket, no handling yet
[olsrd.git] / lib / pud / src / pud.c
index d9d0cd1..5ad9452 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 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
 
 #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)) {
        /* when we do not loopback then check if the message originated from this
         * node: back off */
        if (!getUseLoopback() && ipequal(originator, &olsr_cnf->main_addr)) {
@@ -171,6 +161,23 @@ bool packetReceivedFromOlsr(union olsr_message *olsrMessage,
        return true;
 }
 
        return true;
 }
 
+/**
+ Called by OLSR core when a packet for the plugin is received from the downlink.
+ It unpacks the messages and distributes them into OLSR and on the LAN.
+
+ @param skfd
+ the socket file descriptor on which the packet is received
+ @param data
+ a pointer to the network interface structure on which the packet was received
+ @param flags
+ unused
+ */
+static void packetReceivedFromDownlink(int skfd, void *data __attribute__ ((unused)), unsigned int flags __attribute__ ((unused))) {
+       if (skfd >= 0) {
+               // empty now
+       }
+}
+
 /**
  Called by OLSR core when a packet for the plugin is received from the non-OLSR
  network. It converts the packet into the internal OLSR wire format for a
 /**
  Called by OLSR core when a packet for the plugin is received from the non-OLSR
  network. It converts the packet into the internal OLSR wire format for a
@@ -274,7 +281,8 @@ bool initPud(void) {
         * Creates receive and transmit sockets and register the receive sockets
         * with the OLSR stack
         */
         * Creates receive and transmit sockets and register the receive sockets
         * with the OLSR stack
         */
-       if (!createNetworkInterfaces(&packetReceivedForOlsr)) {
+       if (!createNetworkInterfaces(&packetReceivedForOlsr,
+                       &packetReceivedFromDownlink)) {
                pudError(false, "Could not create require network interfaces");
                goto error;
        }
                pudError(false, "Could not create require network interfaces");
                goto error;
        }