aboutsummaryrefslogtreecommitdiffstats
path: root/dirmngr/http.h
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2017-02-18 15:09:16 +0000
committerWerner Koch <[email protected]>2017-02-18 15:39:02 +0000
commita74902cccde539ee2bd216caec0da6eb54b67c1b (patch)
treedaa1f4d3c39dd1ce5a26b1349e593ca893679520 /dirmngr/http.h
parentdirmngr: Strip the default https port from the Host: header. (diff)
downloadgnupg-a74902cccde539ee2bd216caec0da6eb54b67c1b.tar.gz
gnupg-a74902cccde539ee2bd216caec0da6eb54b67c1b.zip
dirmngr: Add per-session verify callback to http.c
* dirmngr/http.h (http_verify_cb_t): New type. * dirmngr/http.c (http_session_s): Add fields flags, verify_cb, and verify_cb_value. (http_session_new): Remove arg tls_priority. Add args verify_cb and verify-cb_value. Store them in the session object. (send_request): Use per-session verify callback. (http_verify_server_credentials) [HTTP_USE_NTBTLS]: Return GPG_ERR_NOT_IMPLEMENTED. * dirmngr/ks-engine-hkp.c (send_request): Adjust for changed http_session_new. * dirmngr/ks-engine-http.c (ks_http_fetch): Ditto. * dirmngr/t-http.c (main): Ditto. * dirmngr/server.c (do_get_cert_local): Replace xmalloc by malloc. Signed-off-by: Werner Koch <[email protected]>
Diffstat (limited to '')
-rw-r--r--dirmngr/http.h12
1 files changed, 10 insertions, 2 deletions
diff --git a/dirmngr/http.h b/dirmngr/http.h
index 0b581fe3c..98ac4a31a 100644
--- a/dirmngr/http.h
+++ b/dirmngr/http.h
@@ -97,6 +97,13 @@ typedef struct http_session_s *http_session_t;
struct http_context_s;
typedef struct http_context_s *http_t;
+/* A TLS verify callback function. */
+typedef gpg_error_t (*http_verify_cb_t) (void *opaque,
+ http_t http,
+ http_session_t session,
+ unsigned int flags,
+ void *tls_context);
+
void http_set_verbose (int verbose, int debug);
void http_register_tls_callback (gpg_error_t (*cb)(http_t,http_session_t,int));
@@ -105,9 +112,10 @@ void http_register_netactivity_cb (void (*cb)(void));
gpg_error_t http_session_new (http_session_t *r_session,
- const char *tls_priority,
const char *intended_hostname,
- unsigned int flags);
+ unsigned int flags,
+ http_verify_cb_t cb,
+ void *cb_value);
http_session_t http_session_ref (http_session_t sess);
void http_session_release (http_session_t sess);