diff options
Diffstat (limited to 'src/ipcpd/normal')
| -rw-r--r-- | src/ipcpd/normal/addr_auth.c | 6 | ||||
| -rw-r--r-- | src/ipcpd/normal/enroll.c | 56 | ||||
| -rw-r--r-- | src/ipcpd/normal/fmgr.c | 42 | ||||
| -rw-r--r-- | src/ipcpd/normal/frct.c | 18 | ||||
| -rw-r--r-- | src/ipcpd/normal/gam.c | 22 | ||||
| -rw-r--r-- | src/ipcpd/normal/main.c | 141 | ||||
| -rw-r--r-- | src/ipcpd/normal/pol/flat.c | 14 | ||||
| -rw-r--r-- | src/ipcpd/normal/ribmgr.c | 10 | 
8 files changed, 150 insertions, 159 deletions
| diff --git a/src/ipcpd/normal/addr_auth.c b/src/ipcpd/normal/addr_auth.c index c41ffcd2..210744af 100644 --- a/src/ipcpd/normal/addr_auth.c +++ b/src/ipcpd/normal/addr_auth.c @@ -36,7 +36,7 @@ struct addr_auth * addr_auth_create(enum pol_addr_auth type)          tmp = malloc(sizeof(*tmp));          if (tmp == NULL) { -                LOG_ERR("Failed to malloc addr auth."); +                log_err("Failed to malloc addr auth.");                  return NULL;          } @@ -46,7 +46,7 @@ struct addr_auth * addr_auth_create(enum pol_addr_auth type)                  tmp->type = type;                  break;          default: -                LOG_ERR("Unknown address authority type."); +                log_err("Unknown address authority type.");                  free(tmp);                  return NULL;          } @@ -62,7 +62,7 @@ int addr_auth_destroy(struct addr_auth * instance)          case FLAT_RANDOM:                  break;          default: -                LOG_ERR("Unknown address authority type."); +                log_err("Unknown address authority type.");          }          free(instance); diff --git a/src/ipcpd/normal/enroll.c b/src/ipcpd/normal/enroll.c index 695ceb1d..fb4ff3c3 100644 --- a/src/ipcpd/normal/enroll.c +++ b/src/ipcpd/normal/enroll.c @@ -58,14 +58,14 @@ int enroll_handle(int fd)          if (flow_alloc_resp(fd, 0) < 0) {                  flow_dealloc(fd); -                LOG_ERR("Could not respond to request."); +                log_err("Could not respond to request.");                  return -1;          }          ci = cdap_create(fd);          if (ci == NULL) {                  flow_dealloc(fd); -                LOG_ERR("Failed to create CDAP instance."); +                log_err("Failed to create CDAP instance.");                  return -1;          } @@ -78,11 +78,11 @@ int enroll_handle(int fd)                  if (data != NULL) {                          free(data); -                        LOG_WARN("Received data with enrollment request."); +                        log_warn("Received data with enrollment request.");                  }                  if (oc != CDAP_READ) { -                        LOG_WARN("Invalid request."); +                        log_warn("Invalid request.");                          cdap_reply_send(ci, key, -1, NULL, 0);                          cdap_destroy(ci);                          flow_dealloc(fd); @@ -97,7 +97,7 @@ int enroll_handle(int fd)                  } else if (strcmp(name, dif_ro) == 0) {                          dif_name_r = true;                  } else { -                        LOG_WARN("Illegal read: %s.", name); +                        log_warn("Illegal read: %s.", name);                          cdap_reply_send(ci, key, -1, NULL, 0);                          cdap_destroy(ci);                          flow_dealloc(fd); @@ -107,7 +107,7 @@ int enroll_handle(int fd)                  len = rib_pack(name, &buf, PACK_HASH_ROOT);                  if (len < 0) { -                        LOG_ERR("Failed to pack %s.", name); +                        log_err("Failed to pack %s.", name);                          cdap_reply_send(ci, key, -1, NULL, 0);                          cdap_destroy(ci);                          flow_dealloc(fd); @@ -115,12 +115,12 @@ int enroll_handle(int fd)                          return -1;                  } -                LOG_DBG("Packed %s (%lu bytes).", name, len); +                log_dbg("Packed %s (%lu bytes).", name, len);                  free(name);                  if (cdap_reply_send(ci, key, 0, buf, len)) { -                        LOG_ERR("Failed to send CDAP reply."); +                        log_err("Failed to send CDAP reply.");                          cdap_destroy(ci);                          flow_dealloc(fd);                          return -1; @@ -129,7 +129,7 @@ int enroll_handle(int fd)                  free(buf);          } -        LOG_DBG("Sent boot info to new member."); +        log_dbg("Sent boot info to new member.");          cdap_destroy(ci); @@ -152,44 +152,44 @@ int enroll_boot(char * dst_name)          fd = flow_alloc(dst_name, ENROLL_AE, NULL);          if (fd < 0) { -                LOG_ERR("Failed to allocate flow."); +                log_err("Failed to allocate flow.");                  return -1;          }          if (flow_alloc_res(fd)) { -                LOG_ERR("Flow allocation failed."); +                log_err("Flow allocation failed.");                  flow_dealloc(fd);                  return -1;          }          ci = cdap_create(fd);          if (ci == NULL) { -                LOG_ERR("Failed to create CDAP instance."); +                log_err("Failed to create CDAP instance.");                  flow_dealloc(fd);                  return -1;          } -        LOG_DBG("Getting boot information from %s.", dst_name); +        log_dbg("Getting boot information from %s.", dst_name);          key = cdap_request_send(ci, CDAP_READ, boot_ro, NULL, 0, 0);          if (key < 0) { -                LOG_ERR("Failed to send CDAP request."); +                log_err("Failed to send CDAP request.");                  cdap_destroy(ci);                  flow_dealloc(fd);                  return -1;          }          if (cdap_reply_wait(ci, key, &data, &len)) { -                LOG_ERR("Failed to get CDAP reply."); +                log_err("Failed to get CDAP reply.");                  cdap_destroy(ci);                  flow_dealloc(fd);                  return -1;          } -        LOG_DBG("Packed information received (%lu bytes).", len); +        log_dbg("Packed information received (%lu bytes).", len);          if (rib_unpack(data, len, UNPACK_CREATE)) { -                LOG_WARN("Error unpacking RIB data."); +                log_warn("Error unpacking RIB data.");                  rib_del(boot_ro);                  free(data);                  cdap_destroy(ci); @@ -197,27 +197,27 @@ int enroll_boot(char * dst_name)                  return -1;          } -        LOG_DBG("Packed information inserted into RIB."); +        log_dbg("Packed information inserted into RIB.");          key = cdap_request_send(ci, CDAP_READ, members_ro, NULL, 0, 0);          if (key < 0) { -                LOG_ERR("Failed to send CDAP request."); +                log_err("Failed to send CDAP request.");                  cdap_destroy(ci);                  flow_dealloc(fd);                  return -1;          }          if (cdap_reply_wait(ci, key, &data, &len)) { -                LOG_ERR("Failed to get CDAP reply."); +                log_err("Failed to get CDAP reply.");                  cdap_destroy(ci);                  flow_dealloc(fd);                  return -1;          } -        LOG_DBG("Packed information received (%lu bytes).", len); +        log_dbg("Packed information received (%lu bytes).", len);          if (rib_unpack(data, len, UNPACK_CREATE)) { -                LOG_WARN("Error unpacking RIB data."); +                log_warn("Error unpacking RIB data.");                  rib_del(boot_ro);                  free(data);                  cdap_destroy(ci); @@ -225,27 +225,27 @@ int enroll_boot(char * dst_name)                  return -1;          } -        LOG_DBG("Packed information inserted into RIB."); +        log_dbg("Packed information inserted into RIB.");          key = cdap_request_send(ci, CDAP_READ, dif_ro, NULL, 0, 0);          if (key < 0) { -                LOG_ERR("Failed to send CDAP request."); +                log_err("Failed to send CDAP request.");                  cdap_destroy(ci);                  flow_dealloc(fd);                  return -1;          }          if (cdap_reply_wait(ci, key, &data, &len)) { -                LOG_ERR("Failed to get CDAP reply."); +                log_err("Failed to get CDAP reply.");                  cdap_destroy(ci);                  flow_dealloc(fd);                  return -1;          } -        LOG_DBG("Packed information received (%lu bytes).", len); +        log_dbg("Packed information received (%lu bytes).", len);          if (rib_unpack(data, len, UNPACK_CREATE)) { -                LOG_WARN("Error unpacking RIB data."); +                log_warn("Error unpacking RIB data.");                  rib_del(boot_ro);                  free(data);                  cdap_destroy(ci); @@ -253,7 +253,7 @@ int enroll_boot(char * dst_name)                  return -1;          } -        LOG_DBG("Packed information inserted into RIB."); +        log_dbg("Packed information inserted into RIB.");          cdap_destroy(ci); diff --git a/src/ipcpd/normal/fmgr.c b/src/ipcpd/normal/fmgr.c index b79d20b4..b958abfa 100644 --- a/src/ipcpd/normal/fmgr.c +++ b/src/ipcpd/normal/fmgr.c @@ -98,13 +98,13 @@ static void * fmgr_np1_sdu_reader(void * o)                          continue;                  if (ret < 0) { -                        LOG_WARN("Event error: %d.", ret); +                        log_warn("Event error: %d.", ret);                          continue;                  }                  while ((fd = fqueue_next(fmgr.np1_fqs[i])) >= 0) {                          if (ipcp_flow_read(fd, &sdb)) { -                                LOG_WARN("Failed to read SDU from fd %d.", fd); +                                log_warn("Failed to read SDU from fd %d.", fd);                                  continue;                          } @@ -113,7 +113,7 @@ static void * fmgr_np1_sdu_reader(void * o)                          if (frct_i_write_sdu(fmgr.np1_fd_to_cep_id[fd], sdb)) {                                  pthread_rwlock_unlock(&fmgr.np1_flows_lock);                                  ipcp_flow_del(sdb); -                                LOG_WARN("Failed to hand SDU to FRCT."); +                                log_warn("Failed to hand SDU to FRCT.");                                  continue;                          } @@ -149,23 +149,23 @@ void * fmgr_nm1_sdu_reader(void * o)                          continue;                  if (ret < 0) { -                        LOG_ERR("Event error: %d.", ret); +                        log_err("Event error: %d.", ret);                          continue;                  }                  while ((fd = fqueue_next(fmgr.nm1_fqs[i])) >= 0) {                          if (ipcp_flow_read(fd, &sdb)) { -                                LOG_ERR("Failed to read SDU from fd %d.", fd); +                                log_err("Failed to read SDU from fd %d.", fd);                                  continue;                          }                          shm_pci_des(sdb, &pci);                          if (pci.dst_addr != ipcpi.address) { -                                LOG_DBG("PDU needs to be forwarded."); +                                log_dbg("PDU needs to be forwarded.");                                  if (pci.ttl == 0) { -                                        LOG_DBG("TTL was zero."); +                                        log_dbg("TTL was zero.");                                          ipcp_flow_del(sdb);                                          continue;                                  } @@ -181,7 +181,7 @@ void * fmgr_nm1_sdu_reader(void * o)                          shm_pci_shrink(sdb);                          if (frct_nm1_post_sdu(&pci, sdb)) { -                                LOG_ERR("Failed to hand PDU to FRCT."); +                                log_err("Failed to hand PDU to FRCT.");                                  ipcp_flow_del(sdb);                                  continue;                          } @@ -203,7 +203,7 @@ static void * fmgr_nm1_flow_wait(void * o)          while (true) {                  if (gam_flow_wait(fmgr.gam, &fd, &info, &qs)) { -                        LOG_ERR("Failed to get next flow descriptor."); +                        log_err("Failed to get next flow descriptor.");                          continue;                  } @@ -287,13 +287,13 @@ int fmgr_init(void)          if (rib_read("/" BOOT_NAME "/dt/gam/type", &pg, sizeof(pg))              != sizeof(pg)) { -                LOG_ERR("Failed to read policy for ribmgr gam."); +                log_err("Failed to read policy for ribmgr gam.");                  return -1;          }          if (rib_read("/" BOOT_NAME "/dt/gam/cacep", &pc, sizeof(pc))              != sizeof(pc)) { -                LOG_ERR("Failed to read CACEP policy for ribmgr gam."); +                log_err("Failed to read CACEP policy for ribmgr gam.");                  return -1;          } @@ -302,7 +302,7 @@ int fmgr_init(void)          fmgr.gam = gam_create(pg, DT_AE);          if (fmgr.gam == NULL) { -                LOG_ERR("Failed to create graph adjacency manager."); +                log_err("Failed to create graph adjacency manager.");                  fmgr_destroy_flows();                  return -1;          } @@ -536,7 +536,7 @@ int fmgr_np1_post_buf(cep_id_t   cep_id,          msg = flow_alloc_msg__unpack(NULL, buf->len, buf->data);          if (msg == NULL) { -                LOG_ERR("Failed to unpack flow alloc message"); +                log_err("Failed to unpack flow alloc message");                  return -1;          } @@ -548,7 +548,7 @@ int fmgr_np1_post_buf(cep_id_t   cep_id,                                         msg->qoscube);                  if (fd < 0) {                          flow_alloc_msg__free_unpacked(msg, NULL); -                        LOG_ERR("Failed to get fd for flow."); +                        log_err("Failed to get fd for flow.");                          return -1;                  } @@ -584,7 +584,7 @@ int fmgr_np1_post_buf(cep_id_t   cep_id,                  ret = flow_dealloc(fd);                  break;          default: -                LOG_ERR("Got an unknown flow allocation message."); +                log_err("Got an unknown flow allocation message.");                  ret = -1;                  break;          } @@ -604,7 +604,7 @@ int fmgr_np1_post_sdu(cep_id_t             cep_id,          fd = fmgr.np1_cep_id_to_fd[cep_id];          if (ipcp_flow_write(fd, sdb)) {                  pthread_rwlock_unlock(&fmgr.np1_flows_lock); -                LOG_ERR("Failed to hand SDU to N flow."); +                log_err("Failed to hand SDU to N flow.");                  return -1;          } @@ -619,7 +619,7 @@ int fmgr_nm1_flow_arr(int       fd,          assert(fmgr.gam);          if (gam_flow_arr(fmgr.gam, fd, qs)) { -                LOG_ERR("Failed to hand to graph adjacency manager."); +                log_err("Failed to hand to graph adjacency manager.");                  return -1;          } @@ -633,13 +633,13 @@ int fmgr_nm1_write_sdu(struct pci *         pci,                  return -1;          if (shm_pci_ser(sdb, pci)) { -                LOG_ERR("Failed to serialize PDU."); +                log_err("Failed to serialize PDU.");                  ipcp_flow_del(sdb);                  return -1;          }          if (ipcp_flow_write(fmgr.fd, sdb)) { -                LOG_ERR("Failed to write SDU to fd %d.", fmgr.fd); +                log_err("Failed to write SDU to fd %d.", fmgr.fd);                  ipcp_flow_del(sdb);                  return -1;          } @@ -657,13 +657,13 @@ int fmgr_nm1_write_buf(struct pci * pci,          buffer = shm_pci_ser_buf(buf, pci);          if (buffer == NULL) { -                LOG_ERR("Failed to serialize buffer."); +                log_err("Failed to serialize buffer.");                  free(buf->data);                  return -1;          }          if (flow_write(fmgr.fd, buffer->data, buffer->len) == -1) { -                LOG_ERR("Failed to write buffer to fd."); +                log_err("Failed to write buffer to fd.");                  free(buffer);                  return -1;          } diff --git a/src/ipcpd/normal/frct.c b/src/ipcpd/normal/frct.c index ce316ca2..915feaf8 100644 --- a/src/ipcpd/normal/frct.c +++ b/src/ipcpd/normal/frct.c @@ -225,7 +225,7 @@ int frct_nm1_post_sdu(struct pci * pci,                  buf.data = shm_du_buff_head(sdb);                  if (fmgr_np1_post_buf(id, &buf)) { -                        LOG_ERR("Failed to hand buffer to FMGR."); +                        log_err("Failed to hand buffer to FMGR.");                          free(pci);                          return -1;                  } @@ -244,14 +244,14 @@ int frct_nm1_post_sdu(struct pci * pci,                  buf.data = shm_du_buff_head(sdb);                  if (fmgr_np1_post_buf(pci->dst_cep_id, &buf)) { -                        LOG_ERR("Failed to hand buffer to Flow Manager."); +                        log_err("Failed to hand buffer to Flow Manager.");                          free(pci);                          return -1;                  }          } else {                  /* FIXME: Known cep-ids are delivered to FMGR (minimal DTP) */                  if (fmgr_np1_post_sdu(pci->dst_cep_id, sdb)) { -                        LOG_ERR("Failed to hand SDU to FMGR."); +                        log_err("Failed to hand SDU to FMGR.");                          free(pci);                          return -1;                  } @@ -293,7 +293,7 @@ cep_id_t frct_i_create(uint64_t   address,          if (fmgr_nm1_write_buf(&pci, buf)) {                  free(instance); -                LOG_ERR("Failed to hand PDU to FMGR."); +                log_err("Failed to hand PDU to FMGR.");                  return INVALID_CEP_ID;          } @@ -315,7 +315,7 @@ int frct_i_accept(cep_id_t   id,          instance = frct.instances[id];          if (instance == NULL) {                  pthread_mutex_unlock(&frct.instances_lock); -                LOG_ERR("Invalid instance."); +                log_err("Invalid instance.");                  return -1;          } @@ -355,7 +355,7 @@ int frct_i_destroy(cep_id_t   id,          instance = frct.instances[id];          if (instance == NULL) {                  pthread_mutex_unlock(&frct.instances_lock); -                LOG_ERR("Invalid instance."); +                log_err("Invalid instance.");                  return -1;          } @@ -401,13 +401,13 @@ int frct_i_write_sdu(cep_id_t             id,          instance = frct.instances[id];          if (instance == NULL) {                  pthread_mutex_unlock(&frct.instances_lock); -                LOG_ERR("Invalid instance."); +                log_err("Invalid instance.");                  return -1;          }          if (instance->state != CONN_ESTABLISHED) {                  pthread_mutex_unlock(&frct.instances_lock); -                LOG_ERR("Connection is not established."); +                log_err("Connection is not established.");                  return -1;          } @@ -421,7 +421,7 @@ int frct_i_write_sdu(cep_id_t             id,          if (fmgr_nm1_write_sdu(&pci, sdb)) {                  pthread_mutex_unlock(&frct.instances_lock); -                LOG_ERR("Failed to hand SDU to FMGR."); +                log_err("Failed to hand SDU to FMGR.");                  return -1;          } diff --git a/src/ipcpd/normal/gam.c b/src/ipcpd/normal/gam.c index c337afd0..fae34dfe 100644 --- a/src/ipcpd/normal/gam.c +++ b/src/ipcpd/normal/gam.c @@ -72,7 +72,7 @@ struct gam * gam_create(enum pol_gam gam_type,                  tmp->ops = &complete_ops;                  break;          default: -                LOG_ERR("Unknown gam policy: %d.", gam_type); +                log_err("Unknown gam policy: %d.", gam_type);                  free(tmp);                  return NULL;          } @@ -169,7 +169,7 @@ static int add_ga(struct gam *        instance,          pthread_cond_signal(&instance->gas_cond);          pthread_mutex_unlock(&instance->gas_lock); -        LOG_INFO("Added %s flow to %s.", instance->ae_name, info->name); +        log_info("Added %s flow to %s.", instance->ae_name, info->name);          return 0;  } @@ -183,19 +183,19 @@ int gam_flow_arr(struct gam * instance,          if (flow_alloc_resp(fd, instance->ops->accept_new_flow(instance->ops_o))              < 0) { -                LOG_ERR("Could not respond to new flow."); +                log_err("Could not respond to new flow.");                  return -1;          }          cacep = cacep_create(fd, ipcpi.name, ipcpi.address);          if (cacep == NULL) { -                LOG_ERR("Failed to create CACEP instance."); +                log_err("Failed to create CACEP instance.");                  return -1;          }          info = cacep_auth_wait(cacep);          if (info == NULL) { -                LOG_ERR("Other side failed to authenticate."); +                log_err("Other side failed to authenticate.");                  cacep_destroy(cacep);                  return -1;          } @@ -210,7 +210,7 @@ int gam_flow_arr(struct gam * instance,          }          if (add_ga(instance, fd, qs, info)) { -                LOG_ERR("Failed to add ga to graph adjacency manager list."); +                log_err("Failed to add ga to graph adjacency manager list.");                  free(info->name);                  free(info);                  return -1; @@ -230,25 +230,25 @@ int gam_flow_alloc(struct gam * instance,          fd = flow_alloc(dst_name, instance->ae_name, NULL);          if (fd < 0) { -                LOG_ERR("Failed to allocate flow to %s.", dst_name); +                log_err("Failed to allocate flow to %s.", dst_name);                  return -1;          }          if (flow_alloc_res(fd)) { -                LOG_ERR("Flow allocation to %s failed.", dst_name); +                log_err("Flow allocation to %s failed.", dst_name);                  flow_dealloc(fd);                  return -1;          }          cacep = cacep_create(fd, ipcpi.name, ipcpi.address);          if (cacep == NULL) { -                LOG_ERR("Failed to create CACEP instance."); +                log_err("Failed to create CACEP instance.");                  return -1;          }          info = cacep_auth(cacep);          if (info == NULL) { -                LOG_ERR("Failed to authenticate."); +                log_err("Failed to authenticate.");                  cacep_destroy(cacep);                  return -1;          } @@ -262,7 +262,7 @@ int gam_flow_alloc(struct gam * instance,          }          if (add_ga(instance, fd, qs, info)) { -                LOG_ERR("Failed to add GA to graph adjacency manager list."); +                log_err("Failed to add GA to graph adjacency manager list.");                  free(info);                  return -1;          } diff --git a/src/ipcpd/normal/main.c b/src/ipcpd/normal/main.c index 97484958..5d8af688 100644 --- a/src/ipcpd/normal/main.c +++ b/src/ipcpd/normal/main.c @@ -99,7 +99,7 @@ static void * flow_acceptor(void * o)                  if (ipcp_get_state() != IPCP_OPERATIONAL) {                          pthread_rwlock_unlock(&ipcpi.state_lock); -                        LOG_INFO("Shutting down flow acceptor."); +                        log_info("Shutting down flow acceptor.");                          return 0;                  } @@ -107,11 +107,11 @@ static void * flow_acceptor(void * o)                  fd = flow_accept(&ae_name, &qs);                  if (fd < 0) { -                        LOG_WARN("Flow accept failed."); +                        log_warn("Flow accept failed.");                          continue;                  } -                LOG_DBG("New flow allocation request for AE %s.", ae_name); +                log_dbg("New flow allocation request for AE %s.", ae_name);                  if (strcmp(ae_name, ENROLL_AE) == 0) {                          enroll_handle(fd); @@ -120,10 +120,10 @@ static void * flow_acceptor(void * o)                  } else if (strcmp(ae_name, DT_AE) == 0) {                          fmgr_nm1_flow_arr(fd, qs);                  } else { -                        LOG_DBG("Flow allocation request for unknown AE %s.", +                        log_dbg("Flow allocation request for unknown AE %s.",                                  ae_name);                          if (flow_alloc_resp(fd, -1)) -                                LOG_WARN("Failed to reply to flow allocation."); +                                log_warn("Failed to reply to flow allocation.");                          flow_dealloc(fd);                  } @@ -146,66 +146,66 @@ static int boot_components(void)          len = rib_read(DIF_PATH, &buf, 256);          if (len < 0) { -                LOG_ERR("Failed to read DIF name: %ld.", len); +                log_err("Failed to read DIF name: %ld.", len);                  return -1;          }          ipcpi.dif_name = strdup(buf);          if (ipcpi.dif_name == NULL) { -                LOG_ERR("Failed to set DIF name."); +                log_err("Failed to set DIF name.");                  return -1;          }          if (rib_add(MEMBERS_PATH, ipcpi.name)) { -                LOG_WARN("Failed to add name to " MEMBERS_PATH); +                log_warn("Failed to add name to " MEMBERS_PATH);                  return -1;          } -        LOG_DBG("Starting components."); +        log_dbg("Starting components.");          if (rib_read(BOOT_PATH "/addr_auth/type", &pa, sizeof(pa))              != sizeof(pa)) { -                LOG_ERR("Failed to read policy for address authority."); +                log_err("Failed to read policy for address authority.");                  return -1;          }          normal.auth = addr_auth_create(pa);          if (normal.auth == NULL) { -                LOG_ERR("Failed to init address authority."); +                log_err("Failed to init address authority.");                  return -1;          }          ipcpi.address = normal.auth->address();          if (ipcpi.address == 0) { -                LOG_ERR("Failed to get a valid address."); +                log_err("Failed to get a valid address.");                  addr_auth_destroy(normal.auth);                  return -1;          } -        LOG_DBG("IPCP got address %lu.", ipcpi.address); +        log_dbg("IPCP got address %lu.", ipcpi.address); -        LOG_DBG("Starting ribmgr."); +        log_dbg("Starting ribmgr.");          if (ribmgr_init()) { -                LOG_ERR("Failed to initialize RIB manager."); +                log_err("Failed to initialize RIB manager.");                  addr_auth_destroy(normal.auth);                  return -1;          }          if (dir_init()) { -                LOG_ERR("Failed to initialize directory."); +                log_err("Failed to initialize directory.");                  ribmgr_fini();                  addr_auth_destroy(normal.auth);                  return -1;          } -        LOG_DBG("Ribmgr started."); +        log_dbg("Ribmgr started.");          if (fmgr_init()) {                  dir_fini();                  ribmgr_fini();                  addr_auth_destroy(normal.auth); -                LOG_ERR("Failed to start flow manager."); +                log_err("Failed to start flow manager.");                  return -1;          } @@ -214,7 +214,7 @@ static int boot_components(void)                  dir_fini();                  ribmgr_fini();                  addr_auth_destroy(normal.auth); -                LOG_ERR("Failed to initialize FRCT."); +                log_err("Failed to initialize FRCT.");                  return -1;          } @@ -226,45 +226,61 @@ static int boot_components(void)                  dir_fini();                  ribmgr_fini();                  addr_auth_destroy(normal.auth); -                LOG_ERR("Failed to create acceptor thread."); +                log_err("Failed to create acceptor thread.");                  return -1;          }          return 0;  } +void shutdown_components(void) +{ +        pthread_cancel(normal.acceptor); +        pthread_join(normal.acceptor, NULL); + +        frct_fini(); + +        fmgr_fini(); + +        dir_fini(); + +        ribmgr_fini(); + +        addr_auth_destroy(normal.auth); +} +  static int normal_ipcp_enroll(char * dst_name)  {          pthread_rwlock_wrlock(&ipcpi.state_lock);          if (ipcp_get_state() != IPCP_INIT) {                  pthread_rwlock_unlock(&ipcpi.state_lock); -                LOG_ERR("IPCP in wrong state."); +                log_err("IPCP in wrong state.");                  return -1; /* -ENOTINIT */          }          if (rib_add(RIB_ROOT, MEMBERS_NAME)) {                  pthread_rwlock_unlock(&ipcpi.state_lock); -                LOG_ERR("Failed to create members."); +                log_err("Failed to create members.");                  return -1;          }          /* Get boot state from peer */          if (enroll_boot(dst_name)) {                  pthread_rwlock_unlock(&ipcpi.state_lock); -                LOG_ERR("Failed to boot IPCP components."); +                log_err("Failed to boot IPCP components.");                  return -1;          }          if (boot_components()) {                  pthread_rwlock_unlock(&ipcpi.state_lock); -                LOG_ERR("Failed to boot IPCP components."); +                log_err("Failed to boot IPCP components.");                  return -1;          }          pthread_rwlock_unlock(&ipcpi.state_lock); -        LOG_DBG("Enrolled with %s.", dst_name); +        log_dbg("Enrolled with %s.", dst_name);          return 0;  } @@ -314,7 +330,7 @@ int normal_rib_init(void)          for (r = (struct ros *) ros; r->parent; ++r) {                  if (rib_add(r->parent, r->child)) { -                        LOG_ERR("Failed to create %s/%s", +                        log_err("Failed to create %s/%s",                                  r->parent, r->child);                          return -1;                  } @@ -331,7 +347,7 @@ static int normal_ipcp_bootstrap(struct dif_config * conf)          (void) pol;          if (conf == NULL || conf->type != THIS_TYPE) { -                LOG_ERR("Bad DIF configuration."); +                log_err("Bad DIF configuration.");                  return -EINVAL;          } @@ -339,13 +355,13 @@ static int normal_ipcp_bootstrap(struct dif_config * conf)          if (ipcp_get_state() != IPCP_INIT) {                  pthread_rwlock_unlock(&ipcpi.state_lock); -                LOG_ERR("IPCP in wrong state."); +                log_err("IPCP in wrong state.");                  return -1; /* -ENOTINIT */          }          if (normal_rib_init()) {                  pthread_rwlock_unlock(&ipcpi.state_lock); -                LOG_ERR("Failed to write initial structure to the RIB."); +                log_err("Failed to write initial structure to the RIB.");                  return -1;          } @@ -388,20 +404,20 @@ static int normal_ipcp_bootstrap(struct dif_config * conf)              rib_write(BOOT_PATH "/addr_auth/type",                        &conf->addr_auth_type,                        sizeof(conf->addr_auth_type))) { -                LOG_ERR("Failed to write boot info to RIB."); +                log_err("Failed to write boot info to RIB.");                  pthread_rwlock_unlock(&ipcpi.state_lock);                  return -1;          }          if (boot_components()) { -                LOG_ERR("Failed to boot IPCP components."); +                log_err("Failed to boot IPCP components.");                  pthread_rwlock_unlock(&ipcpi.state_lock);                  return -1;          }          pthread_rwlock_unlock(&ipcpi.state_lock); -        LOG_DBG("Bootstrapped in DIF %s.", conf->dif_name); +        log_dbg("Bootstrapped in DIF %s.", conf->dif_name);          return 0;  } @@ -423,28 +439,12 @@ int main(int    argc,          struct sigaction sig_act;          sigset_t         sigset; -        if (ap_init(argv[0])) { -                LOG_ERR("Failed to init AP"); -                exit(EXIT_FAILURE); -        } -          sigemptyset(&sigset);          sigaddset(&sigset, SIGINT);          sigaddset(&sigset, SIGQUIT);          sigaddset(&sigset, SIGHUP);          sigaddset(&sigset, SIGPIPE); -        if (ipcp_parse_arg(argc, argv)) { -                LOG_ERR("Failed to parse arguments."); -                exit(EXIT_FAILURE); -        } - -        if (irm_bind_api(getpid(), ipcpi.name)) { -                LOG_ERR("Failed to bind AP name."); -                close_logfile(); -                exit(EXIT_FAILURE); -        } -          /* init sig_act */          memset(&sig_act, 0, sizeof(sig_act)); @@ -457,59 +457,50 @@ int main(int    argc,          sigaction(SIGHUP,  &sig_act, NULL);          sigaction(SIGPIPE, &sig_act, NULL); -        if (rib_init()) { -                LOG_ERR("Failed to initialize RIB."); -                close_logfile(); +        if (irm_bind_api(getpid(), ipcpi.name)) { +                log_err("Failed to bind AP name.");                  exit(EXIT_FAILURE);          } -        if (ipcp_init(THIS_TYPE, &normal_ops) < 0) { -                LOG_ERR("Failed to create instance."); -                rib_fini(); -                close_logfile(); +        if (ipcp_init(argc, argv, THIS_TYPE, &normal_ops) < 0) { +                log_err("Failed to create instance."); +                exit(EXIT_FAILURE); +        } + +        if (rib_init()) { +                log_err("Failed to initialize RIB."); +                ipcp_fini();                  exit(EXIT_FAILURE);          }          pthread_sigmask(SIG_BLOCK, &sigset, NULL);          if (ipcp_boot() < 0) { -                LOG_ERR("Failed to boot IPCP."); -                ipcp_fini(); +                log_err("Failed to boot IPCP.");                  rib_fini(); -                close_logfile(); +                ipcp_fini();                  exit(EXIT_FAILURE);          }          pthread_sigmask(SIG_UNBLOCK, &sigset, NULL);          if (ipcp_create_r(getpid())) { -                LOG_ERR("Failed to notify IRMd we are initialized."); -                ipcp_fini(); +                log_err("Failed to notify IRMd we are initialized."); +                ipcp_set_state(IPCP_NULL); +                ipcp_shutdown();                  rib_fini(); -                close_logfile(); +                ipcp_fini();                  exit(EXIT_FAILURE);          }          ipcp_shutdown(); -        if (ipcp_get_state() == IPCP_SHUTDOWN) { -                pthread_cancel(normal.acceptor); -                pthread_join(normal.acceptor, NULL); -        } - -        ribmgr_fini(); - -        dir_fini(); - -        addr_auth_destroy(normal.auth); +        if (ipcp_get_state() == IPCP_SHUTDOWN) +                shutdown_components();          rib_fini();          ipcp_fini(); -        close_logfile(); - -        ap_fini(); -          exit(EXIT_SUCCESS);  } diff --git a/src/ipcpd/normal/pol/flat.c b/src/ipcpd/normal/pol/flat.c index 31fcd4e8..9ffeb5c7 100644 --- a/src/ipcpd/normal/pol/flat.c +++ b/src/ipcpd/normal/pol/flat.c @@ -102,29 +102,29 @@ uint64_t flat_address(void)          strcpy(path, "/" MEMBERS_NAME);          if (!rib_has(path)) { -                LOG_ERR("Could not read members from RIB."); +                log_err("Could not read members from RIB.");                  return INVALID_ADDRESS;          }          if (rib_read("/" BOOT_NAME "/dt/const/addr_size",                       &addr_size, sizeof(addr_size)) != sizeof(addr_size)) { -                LOG_ERR("Failed to read address size."); +                log_err("Failed to read address size.");                  return INVALID_ADDRESS;          }          if (addr_size != 4) { -                LOG_ERR("Flat address policy mandates 4 byte addresses."); +                log_err("Flat address policy mandates 4 byte addresses.");                  return INVALID_ADDRESS;          }          n_members = rib_children(path, &members);          if (n_members > REC_DIF_SIZE) -                LOG_WARN("DIF exceeding recommended size for flat addresses."); +                log_warn("DIF exceeding recommended size for flat addresses.");          rib_path_append(path, ipcpi.name);          if (!rib_has(path)) { -                LOG_ERR("This ipcp is not a member."); +                log_err("This ipcp is not a member.");                  freepp(char, members, n_members);                  return INVALID_ADDRESS;          } @@ -142,12 +142,12 @@ uint64_t flat_address(void)          freepp(char, members, n_members);          if (rib_add(path, name)) { -                LOG_ERR("Failed to add address to RIB."); +                log_err("Failed to add address to RIB.");                  return INVALID_ADDRESS;          }          if (rib_write(path, &addr, sizeof(addr))) { -                LOG_ERR("Failed to write address in RIB."); +                log_err("Failed to write address in RIB.");                  return INVALID_ADDRESS;          } diff --git a/src/ipcpd/normal/ribmgr.c b/src/ipcpd/normal/ribmgr.c index 4ff316dc..05d881ea 100644 --- a/src/ipcpd/normal/ribmgr.c +++ b/src/ipcpd/normal/ribmgr.c @@ -60,13 +60,13 @@ int ribmgr_init(void)          if (rib_read(BOOT_PATH "/rm/gam/type", &pg, sizeof(pg))              != sizeof(pg)) { -                LOG_ERR("Failed to read policy for ribmgr gam."); +                log_err("Failed to read policy for ribmgr gam.");                  return -1;          }          if (rib_read(BOOT_PATH "/rm/gam/cacep", &pc, sizeof(pc))              != sizeof(pc)) { -                LOG_ERR("Failed to read CACEP policy for ribmgr gam."); +                log_err("Failed to read CACEP policy for ribmgr gam.");                  return -1;          } @@ -75,20 +75,20 @@ int ribmgr_init(void)          ribmgr.gam = gam_create(pg, MGMT_AE);          if (ribmgr.gam == NULL) { -                LOG_ERR("Failed to create gam."); +                log_err("Failed to create gam.");                  return -1;          }          ribmgr.fs = flow_set_create();          if (ribmgr.fs == NULL) { -                LOG_ERR("Failed to create flow set."); +                log_err("Failed to create flow set.");                  gam_destroy(ribmgr.gam);                  return -1;          }          ribmgr.fq = fqueue_create();          if (ribmgr.fq == NULL) { -                LOG_ERR("Failed to create fq."); +                log_err("Failed to create fq.");                  flow_set_destroy(ribmgr.fs);                  gam_destroy(ribmgr.gam);                  return -1; | 
