diff options
Diffstat (limited to 'src/tools/irm/irm_create_ipcp.c')
-rw-r--r-- | src/tools/irm/irm_create_ipcp.c | 21 |
1 files changed, 18 insertions, 3 deletions
diff --git a/src/tools/irm/irm_create_ipcp.c b/src/tools/irm/irm_create_ipcp.c index 73d20dce..08b55259 100644 --- a/src/tools/irm/irm_create_ipcp.c +++ b/src/tools/irm/irm_create_ipcp.c @@ -20,10 +20,11 @@ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ -#include <stdio.h> #include <ouroboros/irm.h> #include <ouroboros/common.h> #include <ouroboros/instance_name.h> + +#include <stdio.h> #include <stdlib.h> #include <string.h> #include <errno.h> @@ -31,18 +32,23 @@ #include "irm_ops.h" #include "irm_utils.h" +#define NORMAL "normal" +#define SHIM_UDP "shim-udp" + static void usage() { printf("Usage: irm create_ipcp\n" " ap <application process name>\n" " [api <application process instance>]\n" - " type <ipc process type>\n"); + " type [TYPE]\n\n" + "where TYPE = {" NORMAL " " SHIM_UDP "}\n"); } int do_create_ipcp(int argc, char ** argv) { char * ipcp_type = NULL; instance_name_t api = {NULL, 0}; + enum ipcp_type type = 0; while (argc > 0) { if (matches(*argv, "type") == 0) { @@ -66,5 +72,14 @@ int do_create_ipcp(int argc, char ** argv) return -1; } - return irm_create_ipcp(&api, ipcp_type); + if (strcmp(ipcp_type, NORMAL) == 0) + type = IPCP_NORMAL; + else if (strcmp(ipcp_type, SHIM_UDP) == 0) + type = IPCP_SHIM_UDP; + else { + usage(); + return -1; + } + + return irm_create_ipcp(&api, type); } |