From 7c0d66ff6da42e72f06ea21d5bd9ed56a2cdcac4 Mon Sep 17 00:00:00 2001 From: dimitri staessens Date: Wed, 12 Jul 2017 11:44:22 +0200 Subject: lib: Make read_msg static in cacep.c --- src/lib/cacep.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/lib/cacep.c b/src/lib/cacep.c index a2c5c3d2..19585126 100644 --- a/src/lib/cacep.c +++ b/src/lib/cacep.c @@ -34,8 +34,8 @@ typedef CacepMsg cacep_msg_t; #define BUF_SIZE 64 -int read_msg(int fd, - struct conn_info * info) +static int read_msg(int fd, + struct conn_info * info) { uint8_t buf[BUF_SIZE]; cacep_msg_t * msg; -- cgit v1.2.3 From 4282e49f55c7353e0fd0b1985b6f4b1072a91092 Mon Sep 17 00:00:00 2001 From: dimitri staessens Date: Wed, 12 Jul 2017 11:46:03 +0200 Subject: lib: Fix formatting in irm.c --- src/lib/irm.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/lib/irm.c b/src/lib/irm.c index 68202ad9..9ee9e9e0 100644 --- a/src/lib/irm.c +++ b/src/lib/irm.c @@ -189,9 +189,8 @@ ssize_t irm_list_ipcps(const char * name, return -ENOMEM; } - for (i = 0; i < nr; i++) { + for (i = 0; i < nr; i++) (*apis)[i] = recv_msg->apis[i]; - } irm_msg__free_unpacked(recv_msg, NULL); -- cgit v1.2.3 From 3efcafe5a445cd736300657e59a8b505bace5c71 Mon Sep 17 00:00:00 2001 From: dimitri staessens Date: Wed, 12 Jul 2017 11:56:50 +0200 Subject: ipcpd: Check connmgr acceptor thread at create --- src/ipcpd/normal/connmgr.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/ipcpd/normal/connmgr.c b/src/ipcpd/normal/connmgr.c index 00af3db4..6259969a 100644 --- a/src/ipcpd/normal/connmgr.c +++ b/src/ipcpd/normal/connmgr.c @@ -169,7 +169,8 @@ int connmgr_init(void) int connmgr_start(void) { - pthread_create(&connmgr.acceptor, NULL, flow_acceptor, NULL); + if (pthread_create(&connmgr.acceptor, NULL, flow_acceptor, NULL)) + return -1; return 0; } -- cgit v1.2.3 From 9f553e440bd540ac46c98fa13ddf93e81daff221 Mon Sep 17 00:00:00 2001 From: dimitri staessens Date: Wed, 12 Jul 2017 11:58:38 +0200 Subject: ipcpd: Shutdown shim-udp without cancellation --- src/ipcpd/shim-udp/main.c | 31 ++++++++++++++----------------- 1 file changed, 14 insertions(+), 17 deletions(-) diff --git a/src/ipcpd/shim-udp/main.c b/src/ipcpd/shim-udp/main.c index b793c414..4ef3015a 100644 --- a/src/ipcpd/shim-udp/main.c +++ b/src/ipcpd/shim-udp/main.c @@ -376,14 +376,20 @@ static int ipcp_udp_port_alloc_reply(uint16_t src_udp_port, static void * ipcp_udp_listener(void * o) { - uint8_t buf[SHIM_UDP_MSG_SIZE]; - ssize_t n = 0; + uint8_t buf[SHIM_UDP_MSG_SIZE]; + ssize_t n = 0; struct sockaddr_in c_saddr; - int sfd = udp_data.s_fd; + int sfd = udp_data.s_fd; + struct timeval ltv = {(SOCKET_TIMEOUT / 1000), + (SOCKET_TIMEOUT % 1000) * 1000}; (void) o; - while (true) { + if (setsockopt(sfd, SOL_SOCKET, SO_RCVTIMEO, + (void *) <v, sizeof(ltv))) + log_warn("Failed to set timeout on socket."); + + while (ipcp_get_state() == IPCP_OPERATIONAL) { shim_udp_msg_t * msg = NULL; memset(&buf, 0, SHIM_UDP_MSG_SIZE); @@ -443,7 +449,7 @@ static void * ipcp_udp_sdu_reader(void * o) (void) o; - while (true) { + while (ipcp_get_state() == IPCP_OPERATIONAL) { pthread_rwlock_rdlock(&udp_data.flows_lock); pthread_mutex_lock(&udp_data.fd_set_lock); @@ -492,19 +498,14 @@ static void * ipcp_udp_sdu_loop(void * o) (void) o; - while (flow_event_wait(udp_data.np1_flows, udp_data.fq, &timeout)) { + while (ipcp_get_state() == IPCP_OPERATIONAL) { + flow_event_wait(udp_data.np1_flows, udp_data.fq, &timeout); while ((fd = fqueue_next(udp_data.fq)) >= 0) { if (ipcp_flow_read(fd, &sdb)) { log_err("Bad read from fd %d.", fd); continue; } - - if (ipcp_get_state() != IPCP_OPERATIONAL) { - ipcp_sdb_release(sdb); - return (void *) 0; /* -ENOTENROLLED */ - } - pthread_rwlock_rdlock(&udp_data.flows_lock); fd = udp_data.fd_to_uf[fd].skfd; @@ -744,8 +745,7 @@ static int ipcp_udp_reg(const uint8_t * hash) #ifdef CONFIG_OUROBOROS_ENABLE_DNS char ipstr[INET_ADDRSTRLEN]; char dnsstr[INET_ADDRSTRLEN]; - /* max DNS name length + max IP length + command length */ - char cmd[100]; + char cmd[1000]; uint32_t dns_addr; uint32_t ip_addr; #endif @@ -1114,9 +1114,6 @@ int main(int argc, ipcp_shutdown(); if (ipcp_get_state() == IPCP_SHUTDOWN) { - pthread_cancel(udp_data.handler); - pthread_cancel(udp_data.sdu_reader); - pthread_cancel(udp_data.sduloop); pthread_join(udp_data.sduloop, NULL); pthread_join(udp_data.handler, NULL); pthread_join(udp_data.sdu_reader, NULL); -- cgit v1.2.3