summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordimitri staessens <dimitri.staessens@intec.ugent.be>2016-04-26 15:24:26 +0200
committerdimitri staessens <dimitri.staessens@intec.ugent.be>2016-04-26 15:24:26 +0200
commit45b7d79088174303193f8772c9b14fed2011551e (patch)
tree4a34c3e83f4fa268528586b9db4fc2358860c274
parent6be9ae98877f23b05f69e6006036fec0f6c9d338 (diff)
downloadouroboros-45b7d79088174303193f8772c9b14fed2011551e.tar.gz
ouroboros-45b7d79088174303193f8772c9b14fed2011551e.zip
lib: irm.h create_ipcp now returns pid_t
ipcp_create now returns the pid of the created process to allow for more efficient scripting.
-rw-r--r--include/ouroboros/irm.h6
-rw-r--r--src/irmd/main.c6
-rw-r--r--src/lib/irm.c4
-rw-r--r--src/tools/irm/irm_create_ipcp.c2
4 files changed, 10 insertions, 8 deletions
diff --git a/include/ouroboros/irm.h b/include/ouroboros/irm.h
index 26ff536a..37524098 100644
--- a/include/ouroboros/irm.h
+++ b/include/ouroboros/irm.h
@@ -26,8 +26,10 @@
#include <ouroboros/instance_name.h>
#include <ouroboros/dif_config.h>
-int irm_create_ipcp(char * ipcp_name,
- enum ipcp_type ipcp_type);
+#include <sys/types.h>
+
+pid_t irm_create_ipcp(char * ipcp_name,
+ enum ipcp_type ipcp_type);
int irm_destroy_ipcp(instance_name_t * api);
diff --git a/src/irmd/main.c b/src/irmd/main.c
index c47bcffc..31dabebb 100644
--- a/src/irmd/main.c
+++ b/src/irmd/main.c
@@ -218,8 +218,8 @@ static int reg_name_entry_del_name(char * name)
return 0;
}
-static int create_ipcp(char * ap_name,
- enum ipcp_type ipcp_type)
+static pid_t create_ipcp(char * ap_name,
+ enum ipcp_type ipcp_type)
{
pid_t pid;
struct ipcp_entry * tmp = NULL;
@@ -254,7 +254,7 @@ static int create_ipcp(char * ap_name,
LOG_DBG("Created IPC process with pid %d", pid);
list_add(&tmp->next, &instance->ipcps);
- return 0;
+ return pid;
}
static int destroy_ipcp(instance_name_t * api)
diff --git a/src/lib/irm.c b/src/lib/irm.c
index d3c77f2e..cc1c0d01 100644
--- a/src/lib/irm.c
+++ b/src/lib/irm.c
@@ -30,8 +30,8 @@
#include <stdlib.h>
-int irm_create_ipcp(char * ipcp_name,
- enum ipcp_type ipcp_type)
+pid_t irm_create_ipcp(char * ipcp_name,
+ enum ipcp_type ipcp_type)
{
irm_msg_t msg = IRM_MSG__INIT;
irm_msg_t * recv_msg = NULL;
diff --git a/src/tools/irm/irm_create_ipcp.c b/src/tools/irm/irm_create_ipcp.c
index 3c9b9cb8..e82bd980 100644
--- a/src/tools/irm/irm_create_ipcp.c
+++ b/src/tools/irm/irm_create_ipcp.c
@@ -78,5 +78,5 @@ int do_create_ipcp(int argc, char ** argv)
return -1;
}
- return irm_create_ipcp(ipcp_name, type);
+ return !irm_create_ipcp(ipcp_name, type);
}