diff options
author | Lars Ingebrigtsen <larsi@gnus.org> | 2016-01-30 00:49:18 +0100 |
---|---|---|
committer | Lars Ingebrigtsen <larsi@gnus.org> | 2016-01-30 00:49:18 +0100 |
commit | fdfb68690f75a77a32d286e17a39e2543e07e58c (patch) | |
tree | 1b5d30b5e03e8196d179a6c8b3e2848b89a52f94 /src/process.h | |
parent | 44e235dd88d3f506b31db24373c0f5d5fd27c79d (diff) | |
download | emacs-fdfb68690f75a77a32d286e17a39e2543e07e58c.tar.gz |
Implement asynchronous name resolution
* process.c (Fmake_network_process): Do asynchronous DNS
lookups if we have getaddrinfo_a and the user requests :nowait.
(check_for_dns): New function.
(wait_reading_process_output): Check for pending name
resolution in the idle loop.
* process.h: Add structure for async DNS.
Diffstat (limited to 'src/process.h')
-rw-r--r-- | src/process.h | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/process.h b/src/process.h index e2e6ca92984..684434c1748 100644 --- a/src/process.h +++ b/src/process.h @@ -161,14 +161,26 @@ struct Lisp_Process flag indicates that `raw_status' contains a new status that still needs to be synced to `status'. */ bool_bf raw_status_new : 1; + /* Whether this is a nonblocking socket. */ bool_bf is_non_blocking_client : 1; + /* Whether this is a server or a client socket. */ bool_bf is_server : 1; int raw_status; + /* The length of the socket backlog. */ int backlog; + /* The port number. */ int port; + /* The socket type. */ int socktype; + /* The socket protocol. */ int ai_protocol; +#ifdef HAVE_GETADDRINFO_A + /* Whether the socket is waiting for response from an asynchronous + DNS call. */ + struct gaicb* dns_request; +#endif + #ifdef HAVE_GNUTLS gnutls_initstage_t gnutls_initstage; gnutls_session_t gnutls_state; |