From: Stefan Metzmacher Date: Fri, 22 Jan 2016 07:53:57 +0000 (+0100) Subject: ldb-samba: fix the timeout setup in ildb_request_send() X-Git-Tag: ldb-1.1.26~10 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=5db9f865bca818da8d2334208f3141f7f5c7286d;p=thirdparty%2Fsamba.git ldb-samba: fix the timeout setup in ildb_request_send() We need to use the startime as reference not the current time. We also allow timeout == -1 to indicate no timeout at all. Signed-off-by: Stefan Metzmacher Reviewed-by: Garming Sam Reviewed-by: Andrew Bartlett --- diff --git a/lib/ldb-samba/ldb_ildap.c b/lib/ldb-samba/ldb_ildap.c index 6ec363de9de..65f11dba018 100644 --- a/lib/ldb-samba/ldb_ildap.c +++ b/lib/ldb-samba/ldb_ildap.c @@ -418,11 +418,13 @@ static int ildb_request_send(struct ildb_context *ac, struct ldap_message *msg) return LDB_ERR_OPERATIONS_ERROR; } - talloc_free(req->time_event); - req->time_event = NULL; - if (ac->req->timeout) { - req->time_event = tevent_add_timer(ac->ildb->event_ctx, ac, - timeval_current_ofs(ac->req->timeout, 0), + TALLOC_FREE(req->time_event); + if (ac->req->timeout > 0) { + struct timeval tv = { + .tv_sec = ac->req->starttime + ac->req->timeout, + }; + + req->time_event = tevent_add_timer(ac->ildb->event_ctx, ac, tv, ildb_request_timeout, ac); }