summaryrefslogtreecommitdiff
path: root/src/ipcpd
diff options
context:
space:
mode:
Diffstat (limited to 'src/ipcpd')
-rw-r--r--src/ipcpd/eth/eth.c3
-rw-r--r--src/ipcpd/local/main.c3
-rw-r--r--src/ipcpd/udp/main.c4
3 files changed, 10 insertions, 0 deletions
diff --git a/src/ipcpd/eth/eth.c b/src/ipcpd/eth/eth.c
index 9cc11848..daeb9be2 100644
--- a/src/ipcpd/eth/eth.c
+++ b/src/ipcpd/eth/eth.c
@@ -1035,6 +1035,9 @@ static void * eth_ipcp_packet_writer(void * o)
while (true) {
fevent(eth_data.np1_flows, fq, NULL);
while ((fd = fqueue_next(fq)) >= 0) {
+ if (fqueue_type(fq) != FLOW_PKT)
+ continue
+;
if (ipcp_flow_read(fd, &sdb)) {
log_dbg("Bad read from fd %d.", fd);
continue;
diff --git a/src/ipcpd/local/main.c b/src/ipcpd/local/main.c
index 28a7c32b..009a3fde 100644
--- a/src/ipcpd/local/main.c
+++ b/src/ipcpd/local/main.c
@@ -110,6 +110,9 @@ static void * ipcp_local_packet_loop(void * o)
fevent(local_data.flows, local_data.fq, NULL);
while ((fd = fqueue_next(local_data.fq)) >= 0) {
+ if (fqueue_type(local_data.fq) != FLOW_PKT)
+ continue;
+
idx = local_flow_read(fd);
if (idx < 0)
continue;
diff --git a/src/ipcpd/udp/main.c b/src/ipcpd/udp/main.c
index a444e956..1f0bebf0 100644
--- a/src/ipcpd/udp/main.c
+++ b/src/ipcpd/udp/main.c
@@ -520,6 +520,10 @@ static void * ipcp_udp_packet_writer(void * o)
struct shm_du_buff * sdb;
uint8_t * buf;
uint16_t len;
+
+ if (fqueue_type(fq) != FLOW_PKT)
+ continue;
+
if (ipcp_flow_read(fd, &sdb)) {
log_dbg("Bad read from fd %d.", fd);
continue;