diff options
author | dimitri staessens <dimitri.staessens@intec.ugent.be> | 2016-10-13 15:47:55 +0200 |
---|---|---|
committer | dimitri staessens <dimitri.staessens@intec.ugent.be> | 2016-10-13 15:47:55 +0200 |
commit | 20921b8300d1699d8b0133b3f5fc360fdd99fc0d (patch) | |
tree | 5192d254611ec919edf4596152ed5c041463acf2 /src/ipcpd | |
parent | 550e7892e47cf8daf351eb773ef3900b33ecabae (diff) | |
download | ouroboros-20921b8300d1699d8b0133b3f5fc360fdd99fc0d.tar.gz ouroboros-20921b8300d1699d8b0133b3f5fc360fdd99fc0d.zip |
lib: Fix flow deallocation logic
Both the N and N-1 entity must now call flow_dealloc for the port_id
to be released.
Diffstat (limited to 'src/ipcpd')
-rw-r--r-- | src/ipcpd/local/main.c | 2 | ||||
-rw-r--r-- | src/ipcpd/shim-eth-llc/main.c | 2 | ||||
-rw-r--r-- | src/ipcpd/shim-udp/main.c | 2 |
3 files changed, 6 insertions, 0 deletions
diff --git a/src/ipcpd/local/main.c b/src/ipcpd/local/main.c index 1ccec0c0..7d23c08d 100644 --- a/src/ipcpd/local/main.c +++ b/src/ipcpd/local/main.c @@ -252,6 +252,8 @@ static int ipcp_local_flow_dealloc(int fd) pthread_rwlock_unlock(&local_data.lock); pthread_rwlock_unlock(&ipcpi.state_lock); + flow_dealloc(fd); + LOG_INFO("Flow with fd %d deallocated.", fd); return 0; diff --git a/src/ipcpd/shim-eth-llc/main.c b/src/ipcpd/shim-eth-llc/main.c index 130f3945..399d3dc8 100644 --- a/src/ipcpd/shim-eth-llc/main.c +++ b/src/ipcpd/shim-eth-llc/main.c @@ -975,6 +975,8 @@ static int eth_llc_ipcp_flow_dealloc(int fd) if (ret < 0) LOG_DBG("Could not notify remote."); + flow_dealloc(fd); + LOG_DBG("Flow with fd %d deallocated.", fd); return 0; diff --git a/src/ipcpd/shim-udp/main.c b/src/ipcpd/shim-udp/main.c index 12f6d82e..7c109a8a 100644 --- a/src/ipcpd/shim-udp/main.c +++ b/src/ipcpd/shim-udp/main.c @@ -1117,6 +1117,8 @@ static int ipcp_udp_flow_dealloc(int fd) close(skfd); + flow_dealloc(fd); + LOG_DBG("Flow with fd %d deallocated.", fd); return 0; |