From ad28e916756f7075a06f6b54d456676d0c081b36 Mon Sep 17 00:00:00 2001
From: dimitri staessens <dimitri.staessens@intec.ugent.be>
Date: Fri, 2 Sep 2016 11:09:13 +0200
Subject: lib: ipcp: Decouple flow_dealloc

Sending a dealloc to the irmd moved to its own call.
---
 src/lib/ipcp.c | 68 ++++++++++++++++++++++++++++++----------------------------
 1 file changed, 35 insertions(+), 33 deletions(-)

(limited to 'src/lib')

diff --git a/src/lib/ipcp.c b/src/lib/ipcp.c
index e8e31e46..01741121 100644
--- a/src/lib/ipcp.c
+++ b/src/lib/ipcp.c
@@ -464,49 +464,51 @@ int ipcp_flow_alloc_reply(pid_t api,
 int ipcp_flow_dealloc(pid_t api,
                       int   port_id)
 {
-        if (api != 0) {
-                ipcp_msg_t msg = IPCP_MSG__INIT;
-                ipcp_msg_t * recv_msg = NULL;
-                int ret = -1;
 
-                msg.code        = IPCP_MSG_CODE__IPCP_FLOW_DEALLOC;
-                msg.has_port_id = true;
-                msg.port_id     = port_id;
+        ipcp_msg_t msg = IPCP_MSG__INIT;
+        ipcp_msg_t * recv_msg = NULL;
+        int ret = -1;
 
-                recv_msg = send_recv_ipcp_msg(api, &msg);
-                if (recv_msg == NULL)
-                        return 0;
+        msg.code        = IPCP_MSG_CODE__IPCP_FLOW_DEALLOC;
+        msg.has_port_id = true;
+        msg.port_id     = port_id;
 
-                if (recv_msg->has_result == false) {
-                        ipcp_msg__free_unpacked(recv_msg, NULL);
-                        return 0;
-                }
+        recv_msg = send_recv_ipcp_msg(api, &msg);
+        if (recv_msg == NULL)
+                return 0;
 
-                ret = recv_msg->result;
+        if (recv_msg->has_result == false) {
                 ipcp_msg__free_unpacked(recv_msg, NULL);
+                return 0;
+        }
 
-                return ret;
-        } else {
-                irm_msg_t msg = IRM_MSG__INIT;
-                irm_msg_t * recv_msg = NULL;
-                int ret = -1;
+        ret = recv_msg->result;
+        ipcp_msg__free_unpacked(recv_msg, NULL);
+
+        return ret;
+}
 
-                msg.code        = IRM_MSG_CODE__IPCP_FLOW_DEALLOC;
-                msg.has_port_id = true;
-                msg.port_id     = port_id;
+int irm_flow_dealloc(int port_id)
+{
+        irm_msg_t msg = IRM_MSG__INIT;
+        irm_msg_t * recv_msg = NULL;
+        int ret = -1;
 
-                recv_msg = send_recv_irm_msg(&msg);
-                if (recv_msg == NULL)
-                        return 0;
+        msg.code        = IRM_MSG_CODE__IPCP_FLOW_DEALLOC;
+        msg.has_port_id = true;
+        msg.port_id     = port_id;
 
-                if (recv_msg->has_result == false) {
-                        irm_msg__free_unpacked(recv_msg, NULL);
-                        return 0;
-                }
+        recv_msg = send_recv_irm_msg(&msg);
+        if (recv_msg == NULL)
+                return 0;
 
-                ret = recv_msg->result;
+        if (recv_msg->has_result == false) {
                 irm_msg__free_unpacked(recv_msg, NULL);
-
-                return ret;
+                return 0;
         }
+
+        ret = recv_msg->result;
+        irm_msg__free_unpacked(recv_msg, NULL);
+
+        return ret;
 }
-- 
cgit v1.2.3