X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=src%2Fcommon%2Fsessiond-comm%2Finet.c;h=32a16a690342976a68c4d84f6e5c94abd7ad6d14;hb=135347bd92b3e432a973613e0e673db3b50e6044;hp=2c959c5fe81ee08d21cca8f0ac42a62d0dfecb6c;hpb=6cd525e813795a1d5e38feac8dedf2c73ffb1274;p=lttng-tools.git diff --git a/src/common/sessiond-comm/inet.c b/src/common/sessiond-comm/inet.c index 2c959c5fe..32a16a690 100644 --- a/src/common/sessiond-comm/inet.c +++ b/src/common/sessiond-comm/inet.c @@ -275,6 +275,7 @@ struct lttcomm_sock *lttcomm_accept_inet_sock(struct lttcomm_sock *sock) int new_fd; socklen_t len; struct lttcomm_sock *new_sock; + unsigned long timeout; if (sock->proto == LTTCOMM_SOCK_UDP) { /* @@ -298,6 +299,19 @@ struct lttcomm_sock *lttcomm_accept_inet_sock(struct lttcomm_sock *sock) PERROR("accept inet"); goto error; } + timeout = lttcomm_get_network_timeout(); + if (timeout) { + int ret; + + ret = lttcomm_setsockopt_rcv_timeout(new_fd, timeout); + if (ret) { + goto error_close; + } + ret = lttcomm_setsockopt_snd_timeout(new_fd, timeout); + if (ret) { + goto error_close; + } + } new_sock->fd = new_fd; new_sock->ops = &inet_ops; @@ -305,6 +319,11 @@ struct lttcomm_sock *lttcomm_accept_inet_sock(struct lttcomm_sock *sock) end: return new_sock; +error_close: + if (close(new_fd) < 0) { + PERROR("accept inet close fd"); + } + error: free(new_sock); return NULL;