diff options
author | Stefan Metzmacher <metze@samba.org> | 2022-10-13 10:17:25 +0200 |
---|---|---|
committer | Jule Anger <janger@samba.org> | 2022-10-31 14:30:09 +0000 |
commit | f7a84cffe9d9c61df7a7c5dd94e9caf3d18d9b3c (patch) | |
tree | c0638e04bb0f43681610105de702b37e071358fb | |
parent | bc16a8abe3f1446a0da7e672cdba469fcc8ef96a (diff) | |
download | samba-f7a84cffe9d9c61df7a7c5dd94e9caf3d18d9b3c.tar.gz |
s4:ldap_server: let ldapsrv_call_writev_start use conn_idle_time to limit the time
If the client is not able to receive the results within connections idle
time, then we should treat it as dead. It's value is 15 minutes (900 s)
by default.
In order to limit that further an admin can use 'socket options'
and set TCP_KEEPCNT, TCP_KEEPIDLE, TCP_KEEPINTVL and/or TCP_USER_TIMEOUT
to useful values.
BUG: https://bugzilla.samba.org/show_bug.cgi?id=15202
Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
Autobuild-User(master): Stefan Metzmacher <metze@samba.org>
Autobuild-Date(master): Wed Oct 19 17:13:39 UTC 2022 on sn-devel-184
(cherry picked from commit eb2f3526032803f34c88ef1619a832a741f71910)
-rw-r--r-- | source4/ldap_server/ldap_server.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/source4/ldap_server/ldap_server.c b/source4/ldap_server/ldap_server.c index fbea5859756..4198caa451a 100644 --- a/source4/ldap_server/ldap_server.c +++ b/source4/ldap_server/ldap_server.c @@ -697,6 +697,7 @@ static void ldapsrv_call_writev_start(struct ldapsrv_call *call) struct ldapsrv_connection *conn = call->conn; struct ldapsrv_reply *reply = NULL; struct tevent_req *subreq = NULL; + struct timeval endtime; size_t length = 0; size_t i; @@ -781,6 +782,10 @@ static void ldapsrv_call_writev_start(struct ldapsrv_call *call) ldapsrv_terminate_connection(conn, "stream_writev_queue_send failed"); return; } + endtime = timeval_current_ofs(conn->limits.conn_idle_time, 0); + tevent_req_set_endtime(subreq, + conn->connection->event.ctx, + endtime); tevent_req_set_callback(subreq, ldapsrv_call_writev_done, call); } |