From b411f856e27b3f76a37128f397a28df45d11db46 Mon Sep 17 00:00:00 2001 From: Sander Vrijders Date: Thu, 11 Aug 2016 12:19:24 +0200 Subject: tools: irm: Create IPCP upon enroll if unexisting This will create a new IPCP if enroll is called on a non existing IPCP. It also fixes two memleaks. --- src/tools/irm/irm_ipcp_destroy.c | 3 +++ src/tools/irm/irm_ipcp_enroll.c | 10 ++++++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/tools/irm/irm_ipcp_destroy.c b/src/tools/irm/irm_ipcp_destroy.c index ebd4283d..9768b5e1 100644 --- a/src/tools/irm/irm_ipcp_destroy.c +++ b/src/tools/irm/irm_ipcp_destroy.c @@ -21,6 +21,7 @@ */ #include +#include #include @@ -66,5 +67,7 @@ int do_destroy_ipcp(int argc, char ** argv) if (irm_destroy_ipcp(apis[i])) return -1; + free(apis); + return 0; } diff --git a/src/tools/irm/irm_ipcp_enroll.c b/src/tools/irm/irm_ipcp_enroll.c index d6b1b27e..b7a12e2c 100644 --- a/src/tools/irm/irm_ipcp_enroll.c +++ b/src/tools/irm/irm_ipcp_enroll.c @@ -21,6 +21,7 @@ */ #include +#include #include @@ -63,12 +64,17 @@ int do_enroll_ipcp(int argc, char ** argv) } len = irm_list_ipcps(name, &apis); - if (len <= 0) - return -1; + if (len <= 0) { + if (!irm_create_ipcp(name, IPCP_NORMAL)) + return -1; + len = irm_list_ipcps(name, &apis); + } for (i = 0; i < len; i++) if (irm_enroll_ipcp(apis[i], dif_name)) return -1; + free(apis); + return 0; } -- cgit v1.2.3