summaryrefslogtreecommitdiff
path: root/src/irmd/main.c
diff options
context:
space:
mode:
authorSander Vrijders <sander.vrijders@intec.ugent.be>2016-07-05 19:11:26 +0200
committerSander Vrijders <sander.vrijders@intec.ugent.be>2016-07-05 19:11:26 +0200
commit6c799af1b4cf86a32979d98034c560fb976a9caf (patch)
treef9072634e81bc152c0ca52b927ab9984a845e0e8 /src/irmd/main.c
parentdb96f7d488681be47abfeec6c636fd4159a37660 (diff)
parentbc9c60382b226e5a75a11a99364b9b799dc2b0c2 (diff)
downloadouroboros-6c799af1b4cf86a32979d98034c560fb976a9caf.tar.gz
ouroboros-6c799af1b4cf86a32979d98034c560fb976a9caf.zip
Merged in dstaesse/ouroboros/be-pid (pull request #157)
lib: Change invalid pid to -1
Diffstat (limited to 'src/irmd/main.c')
-rw-r--r--src/irmd/main.c20
1 files changed, 12 insertions, 8 deletions
diff --git a/src/irmd/main.c b/src/irmd/main.c
index 8475839b..de100cf8 100644
--- a/src/irmd/main.c
+++ b/src/irmd/main.c
@@ -51,8 +51,6 @@
#include <pthread.h>
#include <sys/stat.h>
-#define API_INVALID 0
-
#define IRMD_CLEANUP_TIMER ((IRMD_FLOW_TIMEOUT / 20) * MILLION) /* ns */
struct ipcp_entry {
@@ -114,9 +112,9 @@ static struct port_map_entry * port_map_entry_create()
if (e == NULL)
return NULL;
- e->n_api = 0;
- e->n_1_api = 0;
- e->port_id = 0;
+ e->n_api = -1;
+ e->n_1_api = -1;
+ e->port_id = -1;
e->state = FLOW_NULL;
if (pthread_cond_init(&e->res_signal, NULL)) {
@@ -256,7 +254,7 @@ static pid_t get_ipcp_by_dst_name(char * dst_name,
}
}
- return 0;
+ return -1;
}
static pid_t create_ipcp(char * name,
@@ -269,7 +267,7 @@ static pid_t create_ipcp(char * name,
if (instance->state != IRMD_RUNNING) {
pthread_rwlock_unlock(&instance->state_lock);
- return 0;
+ return -1;
}
api = ipcp_create(ipcp_type);
@@ -456,6 +454,9 @@ static int bind_name(char * name,
char ** argv_dup = NULL;
char * apn = path_strip(ap_name);
+ if (name == NULL || ap_name == NULL)
+ return -EINVAL;
+
pthread_rwlock_rdlock(&instance->state_lock);
if (instance->state != IRMD_RUNNING) {
@@ -578,6 +579,9 @@ static int ap_reg(char * name,
struct reg_entry * reg = NULL;
struct list_head * pos = NULL;
+ if (name == NULL || difs == NULL || len == 0 || difs[0] == NULL)
+ return -EINVAL;
+
pthread_rwlock_rdlock(&instance->state_lock);
if (instance->state != IRMD_RUNNING) {
@@ -1113,7 +1117,7 @@ static struct port_map_entry * flow_req_arr(pid_t api,
case REG_NAME_FLOW_ACCEPT:
pme->n_api = reg_entry_resolve_api(rne);
- if (pme->n_api == 0) {
+ if (pme->n_api == -1) {
pthread_rwlock_unlock(&instance->reg_lock);
pthread_rwlock_unlock(&instance->state_lock);
LOG_ERR("Invalid api returned.");