From d4ce582882e832acda9cbf3802ac1ee7cd5abbfd Mon Sep 17 00:00:00 2001 From: Sander Vrijders Date: Mon, 23 Jul 2018 11:29:24 +0200 Subject: tools: Enhance irm connect and disconnect command This enhances the irm connect and irm disconnect command to allow creating connections between IPCPs based on wildcard matching for the component name. In case no component was specified it sets up connections between all possible components. Signed-off-by: Sander Vrijders Signed-off-by: Dimitri Staessens --- src/tools/irm/irm_ipcp_connect.c | 30 +++++++++++++++++------------- src/tools/irm/irm_ipcp_disconnect.c | 30 +++++++++++++++++------------- 2 files changed, 34 insertions(+), 26 deletions(-) (limited to 'src/tools') diff --git a/src/tools/irm/irm_ipcp_connect.c b/src/tools/irm/irm_ipcp_connect.c index 42c07354..0b377dce 100644 --- a/src/tools/irm/irm_ipcp_connect.c +++ b/src/tools/irm/irm_ipcp_connect.c @@ -45,15 +45,15 @@ #include #include -#define DT "dt" -#define MGMT "mgmt" +#define DT "dt" +#define MGMT "mgmt" static void usage(void) { printf("Usage: irm ipcp connect\n" " name \n" - " component [COMPONENT]\n" - " dst \n\n" + " dst \n" + " [component [COMPONENT]]\n\n" "where COMPONENT = {" DT " " MGMT "}\n"); } @@ -62,7 +62,8 @@ int do_connect_ipcp(int argc, { char * ipcp = NULL; char * dst = NULL; - char * comp = NULL; + char * comp = "*"; + char * component = NULL; struct ipcp_info * ipcps; ssize_t len = 0; pid_t pid = -1; @@ -77,7 +78,7 @@ int do_connect_ipcp(int argc, comp = *(argv + 1); } else { printf("\"%s\" is unknown, try \"irm " - "ipcpi connect\".\n", *argv); + "ipcp connect\".\n", *argv); return -1; } @@ -100,14 +101,17 @@ int do_connect_ipcp(int argc, if (pid == -1) return -1; - if (!strcmp(comp, DT)) - comp = DT_COMP; - - if (!strcmp(comp , MGMT)) - comp = MGMT_COMP; + if (wildcard_match(comp, MGMT) == 0) { + component = MGMT_COMP; + if (irm_connect_ipcp(pid, dst, component)) + return -1; + } - if (irm_connect_ipcp(pid, dst, comp)) - return -1; + if (wildcard_match(comp, DT) == 0) { + component = DT_COMP; + if (irm_connect_ipcp(pid, dst, component)) + return -1; + } return 0; } diff --git a/src/tools/irm/irm_ipcp_disconnect.c b/src/tools/irm/irm_ipcp_disconnect.c index 73f1588d..c54bfdc3 100644 --- a/src/tools/irm/irm_ipcp_disconnect.c +++ b/src/tools/irm/irm_ipcp_disconnect.c @@ -45,15 +45,15 @@ #include #include -#define DT "dt" -#define MGMT "mgmt" +#define DT "dt" +#define MGMT "mgmt" static void usage(void) { printf("Usage: irm ipcp disconnect\n" " name \n" - " component [COMPONENT]\n" - " dst \n\n" + " dst \n" + " [component [COMPONENT]]\n\n" "where COMPONENT = {" DT " " MGMT "}\n"); } @@ -62,7 +62,8 @@ int do_disconnect_ipcp(int argc, { char * ipcp = NULL; char * dst = NULL; - char * comp = NULL; + char * comp = "*"; + char * component = NULL; struct ipcp_info * ipcps; ssize_t len = 0; pid_t pid = -1; @@ -77,7 +78,7 @@ int do_disconnect_ipcp(int argc, comp = *(argv + 1); } else { printf("\"%s\" is unknown, try \"irm " - "ipcpi connect\".\n", *argv); + "ipcp connect\".\n", *argv); return -1; } @@ -100,14 +101,17 @@ int do_disconnect_ipcp(int argc, if (pid == -1) return -1; - if (!strcmp(comp, DT)) - comp = DT_COMP; - - if (!strcmp(comp , MGMT)) - comp = MGMT_COMP; + if (wildcard_match(comp, DT) == 0) { + component = DT_COMP; + if (irm_disconnect_ipcp(pid, dst, component)) + return -1; + } - if (irm_disconnect_ipcp(pid, dst, comp)) - return -1; + if (wildcard_match(comp, MGMT) == 0) { + component = MGMT_COMP; + if (irm_disconnect_ipcp(pid, dst, component)) + return -1; + } return 0; } -- cgit v1.2.3