diff options
Diffstat (limited to 'src/ipcpd')
| -rw-r--r-- | src/ipcpd/ipcp-data.c | 18 | ||||
| -rw-r--r-- | src/ipcpd/ipcp-data.h | 2 | ||||
| -rw-r--r-- | src/ipcpd/ipcp.c | 3 | ||||
| -rw-r--r-- | src/ipcpd/shim-udp/main.c | 29 | ||||
| -rw-r--r-- | src/ipcpd/shim-udp/tests/shim_udp_test.c | 3 | 
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); | 
