diff options
| author | Sander Vrijders <sander.vrijders@intec.ugent.be> | 2016-03-28 16:04:34 +0200 | 
|---|---|---|
| committer | Sander Vrijders <sander.vrijders@intec.ugent.be> | 2016-03-28 16:04:34 +0200 | 
| commit | b144406dbb9cbdf83354590746097a93d6e88bc4 (patch) | |
| tree | eff2c905d533c388b5b2fa3396095b7faacbf0ed /src/irmd | |
| parent | a14d696bdbc72754e8019fa9579d5a338cc85a05 (diff) | |
| download | ouroboros-b144406dbb9cbdf83354590746097a93d6e88bc4.tar.gz ouroboros-b144406dbb9cbdf83354590746097a93d6e88bc4.zip | |
lib, irmd: Use GPB for dev.c and IRMd
IRMd and dev.c now also use GPB instead of our own ser/des. irm_msg
struct has been dropped as well as the methods associated with it.
Diffstat (limited to 'src/irmd')
| -rw-r--r-- | src/irmd/main.c | 72 | 
1 files changed, 28 insertions, 44 deletions
| diff --git a/src/irmd/main.c b/src/irmd/main.c index 622b367d..d5e1fcd8 100644 --- a/src/irmd/main.c +++ b/src/irmd/main.c @@ -124,7 +124,7 @@ static void destroy_ipcp(struct irm * instance,  static void bootstrap_ipcp(struct irm * instance,                             rina_name_t name, -                           struct dif_config conf) +                           struct dif_config * conf)  {          pid_t pid = 0; @@ -134,7 +134,7 @@ static void bootstrap_ipcp(struct irm * instance,                  return;          } -        if (ipcp_bootstrap(pid, conf)) +        if (ipcp_bootstrap(pid, *conf))                  LOG_ERR("Could not bootstrap IPCP");  } @@ -219,10 +219,9 @@ int main()          while (true) {                  int cli_sockfd; -                struct irm_msg * msg; +                irm_msg_t * msg;                  ssize_t count; -                buffer_t buffer; -                int i; +                rina_name_t name;                  cli_sockfd = accept(sockfd, 0, 0);                  if (cli_sockfd < 0) { @@ -232,59 +231,44 @@ int main()                  count = read(cli_sockfd, buf, IRM_MSG_BUF_SIZE);                  if (count > 0) { -                        buffer.size = count; -                        buffer.data = buf; -                        msg = deserialize_irm_msg(&buffer); +                        msg = irm_msg__unpack(NULL, count, buf);                          if (msg == NULL)                                  continue; +                        name.ap_name = msg->ap_name; +                        name.api_id = msg->api_id; +                          switch (msg->code) { -                        case IRM_CREATE_IPCP: -                                create_ipcp(instance, -                                            *(msg->name), -                                            msg->ipcp_type); -                                free(msg->ipcp_type); +                        case IRM_MSG_CODE__IRM_CREATE_IPCP: +                                create_ipcp(instance, name, msg->ipcp_type);                                  break; -                        case IRM_DESTROY_IPCP: -                                destroy_ipcp(instance, -                                             *(msg->name)); +                        case IRM_MSG_CODE__IRM_DESTROY_IPCP: +                                destroy_ipcp(instance, name);                                  break; -                        case IRM_BOOTSTRAP_IPCP: -                                bootstrap_ipcp(instance, -                                               *(msg->name), -                                               *(msg->conf)); -                                free(msg->conf); +                        case IRM_MSG_CODE__IRM_BOOTSTRAP_IPCP: +                                bootstrap_ipcp(instance, name, NULL);                                  break; -                        case IRM_ENROLL_IPCP: -                                enroll_ipcp(instance, -                                            *(msg->name), -                                            msg->dif_name); -                                free(msg->dif_name); +                        case IRM_MSG_CODE__IRM_ENROLL_IPCP: +                                if (msg->n_dif_name != 1) +                                        continue; +                                enroll_ipcp(instance, name, msg->dif_name[0]);                                  break; -                        case IRM_REG_IPCP: -                                reg_ipcp(instance, -                                         *(msg->name), -                                         msg->difs, -                                         msg->difs_size); -                                for (i = 0; i < msg->difs_size; i++) -                                        free(msg->difs[i]); -                                free(msg->difs); +                        case IRM_MSG_CODE__IRM_REG_IPCP: +                                reg_ipcp(instance, name, +                                         msg->dif_name, +                                         msg->n_dif_name);                                  break; -                        case IRM_UNREG_IPCP: -                                unreg_ipcp(instance, -                                           *(msg->name), -                                           msg->difs, -                                           msg->difs_size); -                                for (i = 0; i < msg->difs_size; i++) -                                        free(msg->difs[i]); -                                free(msg->difs); +                        case IRM_MSG_CODE__IRM_UNREG_IPCP: +                                unreg_ipcp(instance, name, +                                           msg->dif_name, +                                           msg->n_dif_name);                                  break;                          default:                                  LOG_ERR("Don't know that message code");                                  break;                          } -                        name_destroy(msg->name); -                        free(msg); + +                        irm_msg__free_unpacked(msg, NULL);                  }                  close(cli_sockfd); | 
