From c1653e3b0e536e835faf82a5aadadaec1cd38d1a Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Fri, 19 Mar 2010 12:02:27 +0100 Subject: s3:smbd: send keepalive packets under the socket lock metze --- source3/smbd/process.c | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) (limited to 'source3/smbd') diff --git a/source3/smbd/process.c b/source3/smbd/process.c index aaafad4167..e1e4e77634 100644 --- a/source3/smbd/process.c +++ b/source3/smbd/process.c @@ -2234,7 +2234,22 @@ static int client_get_tcp_info(struct sockaddr_storage *server, */ static bool keepalive_fn(const struct timeval *now, void *private_data) { - if (!send_keepalive(smbd_server_fd())) { + bool ok; + bool ret; + + ok = smbd_lock_socket(smbd_server_conn); + if (!ok) { + exit_server_cleanly("failed to lock socket"); + } + + ret = send_keepalive(smbd_server_fd()); + + ok = smbd_unlock_socket(smbd_server_conn); + if (!ok) { + exit_server_cleanly("failed to unlock socket"); + } + + if (!ret) { DEBUG( 2, ( "Keepalive failed - exiting.\n" ) ); return False; } -- cgit