diff options
Diffstat (limited to 'src/ipcpd')
-rw-r--r-- | src/ipcpd/eth/eth.c | 3 | ||||
-rw-r--r-- | src/ipcpd/local/main.c | 3 | ||||
-rw-r--r-- | src/ipcpd/udp/main.c | 4 |
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; |