diff options
| -rw-r--r-- | src/irmd/ipcp.c | 26 | ||||
| -rw-r--r-- | src/lib/sockets.c | 30 | 
2 files changed, 20 insertions, 36 deletions
| diff --git a/src/irmd/ipcp.c b/src/irmd/ipcp.c index b8f11508..e1689b91 100644 --- a/src/irmd/ipcp.c +++ b/src/irmd/ipcp.c @@ -52,9 +52,9 @@ ipcp_msg_t * send_recv_ipcp_msg(pid_t        api,                                  ipcp_msg_t * msg)  {         int            sockfd    = 0; -       buffer_t       buf; +       uint8_t        buf[IPCP_MSG_BUF_SIZE];         char *         sock_path = NULL; -       ssize_t        count     = 0; +       ssize_t        len;         ipcp_msg_t *   recv_msg  = NULL;         struct timeval tv; @@ -73,14 +73,8 @@ ipcp_msg_t * send_recv_ipcp_msg(pid_t        api,         free(sock_path); -       buf.len = ipcp_msg__get_packed_size(msg); -       if (buf.len == 0) { -               close(sockfd); -               return NULL; -       } - -       buf.data = malloc(IPCP_MSG_BUF_SIZE); -       if (buf.data == NULL) { +       len = ipcp_msg__get_packed_size(msg); +       if (len == 0) {                 close(sockfd);                 return NULL;         } @@ -113,18 +107,16 @@ ipcp_msg_t * send_recv_ipcp_msg(pid_t        api,                 log_warn("Failed to set timeout on socket.");         pthread_cleanup_push(close_ptr, (void *) &sockfd); -       pthread_cleanup_push((void (*)(void *)) free, (void *) buf.data); -       ipcp_msg__pack(msg, buf.data); +       ipcp_msg__pack(msg, buf); -       if (write(sockfd, buf.data, buf.len) != -1) -               count = read(sockfd, buf.data, IPCP_MSG_BUF_SIZE); +       if (write(sockfd, buf, len) != -1) +               len = read(sockfd, buf, IPCP_MSG_BUF_SIZE); -       if (count > 0) -               recv_msg = ipcp_msg__unpack(NULL, count, buf.data); +       if (len > 0) +               recv_msg = ipcp_msg__unpack(NULL, len, buf);         pthread_cleanup_pop(true); -       pthread_cleanup_pop(true);         return recv_msg;  } diff --git a/src/lib/sockets.c b/src/lib/sockets.c index 263d2356..9f1b326e 100644 --- a/src/lib/sockets.c +++ b/src/lib/sockets.c @@ -95,40 +95,32 @@ static void close_ptr(void * o)  irm_msg_t * send_recv_irm_msg(irm_msg_t * msg)  { -        int sockfd; -        buffer_t buf; -        ssize_t count = 0; -        irm_msg_t * recv_msg = NULL; +        int         sockfd; +        uint8_t     buf[IRM_MSG_BUF_SIZE]; +        ssize_t     len; +        irm_msg_t * recv_msg;          sockfd = client_socket_open(IRM_SOCK_PATH);          if (sockfd < 0)                  return NULL; -        buf.len = irm_msg__get_packed_size(msg); -        if (buf.len == 0) { -                close(sockfd); -                return NULL; -        } - -        buf.data = malloc(IRM_MSG_BUF_SIZE); -        if (buf.data == NULL) { +        len = irm_msg__get_packed_size(msg); +        if (len == 0) {                  close(sockfd);                  return NULL;          }          pthread_cleanup_push(close_ptr, &sockfd); -        pthread_cleanup_push((void (*)(void *)) free, (void *) buf.data); -        irm_msg__pack(msg, buf.data); +        irm_msg__pack(msg, buf); -        if (write(sockfd, buf.data, buf.len) != -1) -                count = read(sockfd, buf.data, IRM_MSG_BUF_SIZE); +        if (write(sockfd, buf, len) != -1) +                len = read(sockfd, buf, IRM_MSG_BUF_SIZE); -        if (count > 0) -                recv_msg = irm_msg__unpack(NULL, count, buf.data); +        if (len > 0) +                recv_msg = irm_msg__unpack(NULL, len, buf);          pthread_cleanup_pop(true); -        pthread_cleanup_pop(true);          return recv_msg;  } | 
