[lttng-dev] [RFC PATCH lttng-tools] Fix: Propagate socket timeouts on lttcomm_accept_inet_sock()

Jérémie Galarneau jeremie.galarneau at efficios.com
Tue Sep 23 17:46:32 EDT 2014


Ensure that send/recv timeouts are applied to new sockets created
from a lttcomm_accept_inet_sock().

Signed-off-by: Jérémie Galarneau <jeremie.galarneau at efficios.com>
---
 src/common/sessiond-comm/inet.c | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/src/common/sessiond-comm/inet.c b/src/common/sessiond-comm/inet.c
index 2c959c5..cf06ecb 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;
+		}
+		ret = lttcomm_setsockopt_snd_timeout(new_fd, timeout);
+		if (ret) {
+			goto error;
+		}
+	}
 
 	new_sock->fd = new_fd;
 	new_sock->ops = &inet_ops;
-- 
2.1.0




More information about the lttng-dev mailing list