lldp: move lldp_receive_packet() to lldp-internal.c
authorBeniamino Galvani <bgalvani@redhat.com>
Thu, 24 Sep 2015 21:08:22 +0000 (23:08 +0200)
committerBeniamino Galvani <bgalvani@redhat.com>
Fri, 2 Oct 2015 15:39:22 +0000 (17:39 +0200)
In order to implement tests for the LLDP state machine, we need to
mock lldp_network_bind_raw_socket(). Move the other function
lldp_receive_packet() to another file so that we can replace the first
function with a custom one and keep the second one.

src/libsystemd-network/lldp-internal.c
src/libsystemd-network/lldp-internal.h
src/libsystemd-network/lldp-network.c
src/libsystemd-network/lldp-network.h
src/libsystemd-network/lldp-port.c

index 951f719..4012cd4 100644 (file)
@@ -331,3 +331,30 @@ int lldp_chassis_new(tlv_packet *tlv,
 
         return 0;
 }
+
+int lldp_receive_packet(sd_event_source *s, int fd, uint32_t revents, void *userdata) {
+        _cleanup_lldp_packet_unref_ tlv_packet *packet = NULL;
+        tlv_packet *p;
+        uint16_t length;
+        int r;
+
+        assert(fd);
+        assert(userdata);
+
+        r = tlv_packet_new(&packet);
+        if (r < 0)
+                return r;
+
+        length = read(fd, &packet->pdu, sizeof(packet->pdu));
+
+        /* Silently drop the packet */
+        if ((size_t) length > ETHER_MAX_LEN)
+                return 0;
+
+        packet->userdata = userdata;
+
+        p = packet;
+        packet = NULL;
+
+        return lldp_handle_packet(p, (uint16_t) length);
+}
index 774562e..284cc67 100644 (file)
@@ -26,6 +26,7 @@
 #include "list.h"
 #include "lldp-tlv.h"
 #include "prioq.h"
+#include "sd-event.h"
 
 typedef struct lldp_neighbour_port lldp_neighbour_port;
 typedef struct lldp_chassis lldp_chassis;
@@ -87,4 +88,5 @@ int lldp_mib_add_objects(Prioq *by_expiry, Hashmap *neighbour_mib, tlv_packet *t
 int lldp_mib_remove_objects(lldp_chassis *c, tlv_packet *tlv);
 
 int lldp_handle_packet(tlv_packet *m, uint16_t length);
+int lldp_receive_packet(sd_event_source *s, int fd, uint32_t revents, void *userdata);
 #define log_lldp(fmt, ...) log_internal(LOG_DEBUG, 0, __FILE__, __LINE__, __func__, "LLDP: " fmt, ##__VA_ARGS__)
index 1c6dcae..12a6599 100644 (file)
@@ -82,30 +82,3 @@ int lldp_network_bind_raw_socket(int ifindex) {
 
         return r;
 }
-
-int lldp_receive_packet(sd_event_source *s, int fd, uint32_t revents, void *userdata) {
-        _cleanup_lldp_packet_unref_ tlv_packet *packet = NULL;
-        tlv_packet *p;
-        uint16_t length;
-        int r;
-
-        assert(fd);
-        assert(userdata);
-
-        r = tlv_packet_new(&packet);
-        if (r < 0)
-                return r;
-
-        length = read(fd, &packet->pdu, sizeof(packet->pdu));
-
-        /* Silently drop the packet */
-        if ((size_t) length > ETHER_MAX_LEN)
-                return 0;
-
-        packet->userdata = userdata;
-
-        p = packet;
-        packet = NULL;
-
-        return lldp_handle_packet(p, (uint16_t) length);
-}
index b7f8d3b..74ee13a 100644 (file)
@@ -25,4 +25,3 @@
 #include "sd-event.h"
 
 int lldp_network_bind_raw_socket(int ifindex);
-int lldp_receive_packet(sd_event_source *s, int fd, uint32_t revents, void *userdata);
index 97fe7c1..7486b4c 100644 (file)
@@ -23,6 +23,7 @@
 #include "async.h"
 #include "lldp-port.h"
 #include "lldp-network.h"
+#include "lldp-internal.h"
 
 int lldp_port_start(lldp_port *p) {
         int r;