diff options
author | Sander Vrijders <sander.vrijders@intec.ugent.be> | 2016-10-26 16:59:04 +0200 |
---|---|---|
committer | Sander Vrijders <sander.vrijders@intec.ugent.be> | 2016-10-26 16:59:04 +0200 |
commit | 00f0606c3b4e74e768ab250bf04572afe178b4f6 (patch) | |
tree | 8685e2455ca514484735314c343b2c55511a3d1c | |
parent | f60e18adc78afaf4d07a10e6fe8aec3767e0ca11 (diff) | |
download | ouroboros-00f0606c3b4e74e768ab250bf04572afe178b4f6.tar.gz ouroboros-00f0606c3b4e74e768ab250bf04572afe178b4f6.zip |
tools: irm: Bind IPCP name to IPCP-I
This will invoke the bind operation when using the irm tool to create
a new IPCP. The new IPCP will be bound to the IPCP name as specified
by the administrator.
-rw-r--r-- | src/tools/irm/irm_ipcp_bootstrap.c | 6 | ||||
-rw-r--r-- | src/tools/irm/irm_ipcp_create.c | 10 | ||||
-rw-r--r-- | src/tools/irm/irm_ipcp_enroll.c | 5 |
3 files changed, 18 insertions, 3 deletions
diff --git a/src/tools/irm/irm_ipcp_bootstrap.c b/src/tools/irm/irm_ipcp_bootstrap.c index cc1bf6f9..7d72eb15 100644 --- a/src/tools/irm/irm_ipcp_bootstrap.c +++ b/src/tools/irm/irm_ipcp_bootstrap.c @@ -78,6 +78,7 @@ static void usage(void) int do_bootstrap_ipcp(int argc, char ** argv) { char * name = NULL; + pid_t api; struct dif_config conf; uint8_t addr_size = DEFAULT_ADDR_SIZE; uint8_t cep_id_size = DEFAULT_CEP_ID_SIZE; @@ -186,8 +187,11 @@ int do_bootstrap_ipcp(int argc, char ** argv) len = irm_list_ipcps(name, &apis); if (len <= 0) { - if (!irm_create_ipcp(name, conf.type)) + api = irm_create_ipcp(name, conf.type); + if (api == 0) return -1; + if (conf.type == IPCP_NORMAL) + irm_bind_api(api, name); len = irm_list_ipcps(name, &apis); } diff --git a/src/tools/irm/irm_ipcp_create.c b/src/tools/irm/irm_ipcp_create.c index e9921112..e152af71 100644 --- a/src/tools/irm/irm_ipcp_create.c +++ b/src/tools/irm/irm_ipcp_create.c @@ -47,6 +47,7 @@ int do_create_ipcp(int argc, char ** argv) char * ipcp_type = NULL; char * ipcp_name = NULL; enum ipcp_type type = 0; + pid_t api; while (argc > 0) { if (matches(*argv, "type") == 0) { @@ -81,5 +82,12 @@ int do_create_ipcp(int argc, char ** argv) return -1; } - return !irm_create_ipcp(ipcp_name, type); + api = irm_create_ipcp(ipcp_name, type); + if (api == 0) + return -1; + + if (type == IPCP_NORMAL) + irm_bind_api(api, ipcp_name); + + return 0; } diff --git a/src/tools/irm/irm_ipcp_enroll.c b/src/tools/irm/irm_ipcp_enroll.c index b5517bcd..911a81a1 100644 --- a/src/tools/irm/irm_ipcp_enroll.c +++ b/src/tools/irm/irm_ipcp_enroll.c @@ -40,6 +40,7 @@ int do_enroll_ipcp(int argc, char ** argv) char * name = NULL; char * dif_name = NULL; pid_t * apis = NULL; + pid_t api; ssize_t len = 0; int i = 0; @@ -65,8 +66,10 @@ int do_enroll_ipcp(int argc, char ** argv) len = irm_list_ipcps(name, &apis); if (len <= 0) { - if (!irm_create_ipcp(name, IPCP_NORMAL)) + api = irm_create_ipcp(name, IPCP_NORMAL); + if (api == 0) return -1; + irm_bind_api(api, name); len = irm_list_ipcps(name, &apis); } |