summaryrefslogtreecommitdiff
path: root/src/irmd/reg
diff options
context:
space:
mode:
authorDimitri Staessens <dimitri@ouroboros.rocks>2023-11-27 14:43:11 +0100
committerSander Vrijders <sander@ouroboros.rocks>2023-11-29 09:57:29 +0100
commit346b054ee32a9f7b8491f842709f72cc8d1f3f2e (patch)
tree5a406924ca94a03460e9b1e14d50cd1fca7c5c61 /src/irmd/reg
parent3f24301fff9c544dfe2b89c5737bc3cdf94ef9a9 (diff)
downloadouroboros-346b054ee32a9f7b8491f842709f72cc8d1f3f2e.tar.gz
ouroboros-346b054ee32a9f7b8491f842709f72cc8d1f3f2e.zip
include: Store IPCP name and type in info struct
The information for an IPCP is now stored in an ipcp_info struct, containing name and type. The IRM public API is not changed. Signed-off-by: Dimitri Staessens <dimitri@ouroboros.rocks> Signed-off-by: Sander Vrijders <sander@ouroboros.rocks>
Diffstat (limited to 'src/irmd/reg')
-rw-r--r--src/irmd/reg/ipcp.c11
-rw-r--r--src/irmd/reg/ipcp.h7
2 files changed, 5 insertions, 13 deletions
diff --git a/src/irmd/reg/ipcp.c b/src/irmd/reg/ipcp.c
index 62505871..f64bb5a4 100644
--- a/src/irmd/reg/ipcp.c
+++ b/src/irmd/reg/ipcp.c
@@ -42,8 +42,7 @@
#include <stdlib.h>
#include <string.h>
-struct reg_ipcp * reg_ipcp_create(const char * name,
- enum ipcp_type type)
+struct reg_ipcp * reg_ipcp_create(const struct ipcp_info * info)
{
struct reg_ipcp * ipcp;
pthread_condattr_t cattr;
@@ -63,22 +62,17 @@ struct reg_ipcp * reg_ipcp_create(const char * name,
if (pthread_cond_init(&ipcp->cond, &cattr))
goto fail_cond;
- ipcp->name = strdup(name);
- if (ipcp->name == NULL)
- goto fail_name;
+ memcpy(&ipcp->info, info, sizeof(*info));
pthread_condattr_destroy(&cattr);
ipcp->layer = NULL;
- ipcp->type = type;
ipcp->state = IPCP_BOOT;
list_head_init(&ipcp->next);
return ipcp;
- fail_name:
- pthread_cond_destroy(&ipcp->cond);
fail_cond:
pthread_condattr_destroy(&cattr);
fail_cattr:
@@ -99,7 +93,6 @@ void reg_ipcp_destroy(struct reg_ipcp * ipcp)
pthread_cond_wait(&ipcp->cond, &ipcp->mtx);
free(ipcp->layer);
- free(ipcp->name);
pthread_mutex_unlock(&ipcp->mtx);
diff --git a/src/irmd/reg/ipcp.h b/src/irmd/reg/ipcp.h
index 8ad334cf..3757aff4 100644
--- a/src/irmd/reg/ipcp.h
+++ b/src/irmd/reg/ipcp.h
@@ -34,9 +34,9 @@ enum ipcp_state {
struct reg_ipcp {
struct list_head next;
- char * name;
+ struct ipcp_info info;
+
pid_t pid;
- enum ipcp_type type;
enum hash_algo dir_hash_algo;
char * layer;
@@ -45,8 +45,7 @@ struct reg_ipcp {
pthread_mutex_t mtx;
};
-struct reg_ipcp * reg_ipcp_create(const char * name,
- enum ipcp_type type);
+struct reg_ipcp * reg_ipcp_create(const struct ipcp_info * info);
void reg_ipcp_destroy(struct reg_ipcp * i);