From 9c695d2e19b2552bbb837855c68fd98431df7020 Mon Sep 17 00:00:00 2001 From: Jin-Seong Kim Date: Tue, 1 Aug 2017 17:38:55 +0900 Subject: [PATCH] netutils/libcoap : patch to add timeout on accept socket This commit is patch to add timeout on accept socket - to prevent holding socket on libcoap-server, added timeout on socket Change-Id: Ibd40f9ba9c69f272f10af91bed900a0b8faa40b8 Signed-off-by: Jin-Seong Kim --- apps/netutils/libcoap/net.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/apps/netutils/libcoap/net.c b/apps/netutils/libcoap/net.c index 4f59600..171ee65 100644 --- a/apps/netutils/libcoap/net.c +++ b/apps/netutils/libcoap/net.c @@ -1993,6 +1993,8 @@ int coap_net_bind(coap_context_t *ctx, const char *host, const char *port, void struct sockaddr caddr; socklen_t caddrlen; + struct timeval timeout = {10, 0}; /* Timeout for TCP accept */ + #ifdef WITH_MBEDTLS tls_session *session = NULL; #endif @@ -2057,6 +2059,10 @@ int coap_net_bind(coap_context_t *ctx, const char *host, const char *port, void break; } + if (setsockopt(ctx->sockfd, SOL_SOCKET, SO_RCVTIMEO, &timeout, sizeof(struct timeval)) < 0) { + printf("coap_net_bind : failed to set socket option, errno %d\n", errno); + } + newsock = accept(ctx->sockfd, &caddr, &caddrlen); if (newsock < 0) { -- 2.7.4