Home GnuPG
Diffusion GnuPG 5b9025cfa1f9

dirmngr: Allow a timeout for HTTP and other TCP connects.

Description

dirmngr: Allow a timeout for HTTP and other TCP connects.

* dirmngr/http.c: Include fcntl.h.
(http_session_s): Add field 'connect_timeout'.
(http_session_new): Clear that.
(http_session_set_timeout): New function.
(my_wsagetlasterror) [W32]: New.
(connect_with_timeout): New function.
(connect_server): Add arg 'timeout' and call connect_with_timeout.
(send_request): Add arg 'timeout' and pass it to connect_server.
(http_raw_connect): Add arg 'timeout'.
(http_open): Pass TIMEOUT from the session to connect_server.

Note that the non-blocking connect we implement is traditional a
pretty non-portable thing due to slighly different semantics. The
code uses the strategy W. Richard Stevens suggested in 1998.
Hopefully current OS versions got it all right.

The code has not been tested on Windows.

  • Signed-off-by: Werner Koch <wk@gnupg.org>

Details

Provenance
wernerAuthored on Jun 8 2017, 8:23 AM
Parents
rG17e5afd80f24: gpg: Avoid failure exit when scdaemon is disabled but not needed.
Branches
Unknown
Tags
Unknown