aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorDaniel Stenberg <daniel@haxx.se>2003-07-04 16:29:23 +0000
committerDaniel Stenberg <daniel@haxx.se>2003-07-04 16:29:23 +0000
commit45fc760985fa11ef98149418cbad02dadf748f31 (patch)
tree5e9e1c097cac271dd1f0504c2ea844bf57dc56f4 /include
parent7968e3c2de56b035081f30ddcc9b60be2d75f396 (diff)
Peter Sylvester's patch was applied that introduces the following:
CURLOPT_SSL_CTX_FUNCTION to set a callback that gets called with the OpenSSL's ssl_ctx pointer passed in and allow a callback to act on it. If anything but CURLE_OK is returned, that will also be returned by libcurl all the way back. If this function changes the CURLOPT_URL, libcurl will detect this and instead go use the new URL. CURLOPT_SSL_CTX_DATA is a pointer you set to get passed to the callback set with CURLOPT_SSL_CTX_FUNCTION.
Diffstat (limited to 'include')
-rw-r--r--include/curl/curl.h16
1 files changed, 15 insertions, 1 deletions
diff --git a/include/curl/curl.h b/include/curl/curl.h
index 00074d561..ae73c1dde 100644
--- a/include/curl/curl.h
+++ b/include/curl/curl.h
@@ -147,7 +147,7 @@ typedef int (*curl_debug_callback)
curl_infotype type, /* what kind of data */
char *data, /* points to the data */
size_t size, /* size of the data pointed to */
- void *userp); /* whatever the user please */
+ void *userptr); /* whatever the user please */
/* All possible error codes from all sorts of curl functions. Future versions
may return other values, stay prepared.
@@ -224,6 +224,11 @@ typedef enum {
CURL_LAST /* never use! */
} CURLcode;
+typedef CURLcode (*curl_ssl_ctx_callback)(CURL *curl, /* easy handle */
+ void *ssl_ctx, /* actually an
+ OpenSSL SSL_CTX */
+ void *userptr);
+
/* Make a spelling correction for the operation timed-out define */
#define CURLE_OPERATION_TIMEDOUT CURLE_OPERATION_TIMEOUTED
#define CURLE_HTTP_NOT_FOUND CURLE_HTTP_RETURNED_ERROR
@@ -659,6 +664,15 @@ typedef enum {
Note that setting multiple bits may cause extra network round-trips. */
CINIT(HTTPAUTH, LONG, 107),
+ /* Set the ssl context callback function, currently only for OpenSSL ssl_ctx
+ in second argument. The function must be matching the
+ curl_ssl_ctx_callback proto. */
+ CINIT(SSL_CTX_FUNCTION, FUNCTIONPOINT, 108),
+
+ /* Set the userdata for the ssl context callback function's third
+ argument */
+ CINIT(SSL_CTX_DATA, OBJECTPOINT, 109),
+
CURLOPT_LASTENTRY /* the last unused */
} CURLoption;