summaryrefslogtreecommitdiff
path: root/src/ipcpd
diff options
context:
space:
mode:
Diffstat (limited to 'src/ipcpd')
-rw-r--r--src/ipcpd/ipcp-data.c18
-rw-r--r--src/ipcpd/ipcp-data.h2
-rw-r--r--src/ipcpd/ipcp.c3
-rw-r--r--src/ipcpd/shim-udp/main.c29
-rw-r--r--src/ipcpd/shim-udp/tests/shim_udp_test.c3
5 files changed, 23 insertions, 32 deletions
diff --git a/src/ipcpd/ipcp-data.c b/src/ipcpd/ipcp-data.c
index e6997e3e..106226de 100644
--- a/src/ipcpd/ipcp-data.c
+++ b/src/ipcpd/ipcp-data.c
@@ -104,18 +104,28 @@ struct ipcp_data * ipcp_data_create()
}
struct ipcp_data * ipcp_data_init(struct ipcp_data * dst,
- instance_name_t * iname,
- enum ipcp_type ipcp_type)
+ const char * ipcp_name,
+ enum ipcp_type ipcp_type)
{
if (dst == NULL)
return NULL;
- dst->iname = instance_name_dup(iname);
+ dst->iname = instance_name_create();
+ if (dst->iname == NULL)
+ return NULL;
+
+ if(instance_name_init_from(dst->iname, ipcp_name, getpid()) == NULL) {
+ instance_name_destroy(dst->iname);
+ return NULL;
+ }
+
dst->type = ipcp_type;
dst->dum = shm_du_map_open();
- if (dst->dum == NULL)
+ if (dst->dum == NULL) {
+ instance_name_destroy(dst->iname);
return NULL;
+ }
/* init the lists */
INIT_LIST_HEAD(&dst->registry);
diff --git a/src/ipcpd/ipcp-data.h b/src/ipcpd/ipcp-data.h
index 7e48df24..1dea8c3c 100644
--- a/src/ipcpd/ipcp-data.h
+++ b/src/ipcpd/ipcp-data.h
@@ -53,7 +53,7 @@ struct ipcp_data {
struct ipcp_data * ipcp_data_create();
struct ipcp_data * ipcp_data_init(struct ipcp_data * dst,
- instance_name_t * iname,
+ const char * ipcp_name,
enum ipcp_type ipcp_type);
void ipcp_data_destroy(struct ipcp_data * data);
diff --git a/src/ipcpd/ipcp.c b/src/ipcpd/ipcp.c
index c1071e05..23c432f1 100644
--- a/src/ipcpd/ipcp.c
+++ b/src/ipcpd/ipcp.c
@@ -31,7 +31,7 @@
int ipcp_arg_check(int argc, char * argv[])
{
- if (argc != 4)
+ if (argc != 3)
return -1;
/* argument 1: pid of irmd */
@@ -41,7 +41,6 @@ int ipcp_arg_check(int argc, char * argv[])
/* name conformity responsibility of NMS */
/* argument 2: ap name */
- /* argument 3: instance id */
return 0;
}
diff --git a/src/ipcpd/shim-udp/main.c b/src/ipcpd/shim-udp/main.c
index f67c66ca..785f2344 100644
--- a/src/ipcpd/shim-udp/main.c
+++ b/src/ipcpd/shim-udp/main.c
@@ -96,7 +96,7 @@ void ipcp_sig_handler(int sig, siginfo_t * info, void * c)
case SIGHUP:
LOG_DBG("Terminating by order of %d. Bye.", info->si_pid);
if (info->si_pid == irmd_pid) {
- shm_du_map_close(_ipcp->data->dum);
+ /* shm_du_map_close(_ipcp->data->dum); */
exit(0);
}
default:
@@ -104,29 +104,13 @@ void ipcp_sig_handler(int sig, siginfo_t * info, void * c)
}
}
-struct ipcp_udp_data * ipcp_udp_data_create(char * ap_name,
- char * ap_id)
+struct ipcp_udp_data * ipcp_udp_data_create(char * ap_name)
{
struct ipcp_udp_data * udp_data;
struct ipcp_data * data;
- instance_name_t * instance_name;
enum ipcp_type ipcp_type;
int n;
- instance_name = instance_name_create();
- if (instance_name == NULL) {
- LOG_ERR("Failed to create instance name struct.");
- return NULL;
- }
-
- instance_name = instance_name_init_with(
- instance_name, ap_name, (uint16_t) atoi(ap_id));
-
- if (instance_name == NULL) {
- LOG_ERR("Failed to create instance name struct.");
- return NULL;
- }
-
udp_data = malloc(sizeof *udp_data);
if (udp_data == NULL) {
LOG_DBGF("Failed to allocate.");
@@ -135,7 +119,7 @@ struct ipcp_udp_data * ipcp_udp_data_create(char * ap_name,
ipcp_type = THIS_TYPE;
data = (struct ipcp_data *) udp_data;
- if (ipcp_data_init(data, instance_name, ipcp_type) == NULL) {
+ if (ipcp_data_init(data, ap_name, ipcp_type) == NULL) {
free(udp_data);
return NULL;
}
@@ -548,7 +532,7 @@ int ipcp_udp_du_read(uint32_t port_id,
return 0;
}
-struct ipcp * ipcp_udp_create(char * ap_name, char * i_id)
+struct ipcp * ipcp_udp_create(char * ap_name)
{
struct ipcp * i;
struct ipcp_udp_data * data;
@@ -558,7 +542,7 @@ struct ipcp * ipcp_udp_create(char * ap_name, char * i_id)
if (i == NULL)
return NULL;
- data = ipcp_udp_data_create(ap_name, i_id);
+ data = ipcp_udp_data_create(ap_name);
if (data == NULL) {
free(i);
return NULL;
@@ -597,7 +581,6 @@ int main (int argc, char * argv[])
{
/* argument 1: pid of irmd ? */
/* argument 2: ap name */
- /* argument 3: instance id */
struct sigaction sig_act;
if (ipcp_arg_check(argc, argv)) {
@@ -619,7 +602,7 @@ int main (int argc, char * argv[])
sigaction(SIGTERM, &sig_act, NULL);
sigaction(SIGHUP, &sig_act, NULL);
- _ipcp = ipcp_udp_create(argv[2], argv[3]);
+ _ipcp = ipcp_udp_create(argv[2]);
if (_ipcp == NULL) {
LOG_ERR("Won't.");
exit(1);
diff --git a/src/ipcpd/shim-udp/tests/shim_udp_test.c b/src/ipcpd/shim-udp/tests/shim_udp_test.c
index 0fcf9f4d..4e0c2dd6 100644
--- a/src/ipcpd/shim-udp/tests/shim_udp_test.c
+++ b/src/ipcpd/shim-udp/tests/shim_udp_test.c
@@ -39,7 +39,6 @@ int shim_udp_test(int argc, char ** argv)
/* argument 3: instance id */
struct shm_du_map * dum;
char * ipcp_name = "test-shim-ipcp";
- char * i_id = "1";
int i = 0;
char bogus[15];
@@ -57,7 +56,7 @@ int shim_udp_test(int argc, char ** argv)
exit(1);
}
- _ipcp = ipcp_udp_create(ipcp_name, i_id);
+ _ipcp = ipcp_udp_create(ipcp_name);
if (_ipcp == NULL) {
LOG_ERR("Could not instantiate shim IPCP.");
shm_du_map_close(dum);