Kjetil Jacobsen's patch that introduces CURLOPT_PRIVATE and CURLINFO_PRIVATE
for storage and retrieval of private data in the curl handle.
This commit is contained in:
parent
f68505ee23
commit
8bca5e05b8
@ -115,8 +115,12 @@ Pass a pointer to a 'char *' to receive the content-type of the downloaded
|
|||||||
object. This is the value read from the Content-Type: field. If you get NULL,
|
object. This is the value read from the Content-Type: field. If you get NULL,
|
||||||
it means that the server didn't send a valid Content-Type header or that the
|
it means that the server didn't send a valid Content-Type header or that the
|
||||||
protocol used doesn't support this. (Added in 7.9.4)
|
protocol used doesn't support this. (Added in 7.9.4)
|
||||||
|
.TP
|
||||||
|
.B CURLINFO_PRIVATE
|
||||||
|
Pass a pointer to a 'char *' to receive the pointer to the private data
|
||||||
|
associated with the curl handle (set with the CURLOPT_PRIVATE option to curl_easy_setopt).
|
||||||
|
(Added in 7.10.3)
|
||||||
.PP
|
.PP
|
||||||
|
|
||||||
.SH RETURN VALUE
|
.SH RETURN VALUE
|
||||||
If the operation was successful, CURLE_OK is returned. Otherwise an
|
If the operation was successful, CURLE_OK is returned. Otherwise an
|
||||||
appropriate error code will be returned.
|
appropriate error code will be returned.
|
||||||
|
@ -763,6 +763,13 @@ krb4 awareness. This is a string, 'clear', 'safe', 'confidential' or
|
|||||||
will be used. Set the string to NULL to disable kerberos4. The kerberos
|
will be used. Set the string to NULL to disable kerberos4. The kerberos
|
||||||
support only works for FTP. (Added in 7.3)
|
support only works for FTP. (Added in 7.3)
|
||||||
.PP
|
.PP
|
||||||
|
.SH OTHER OPTIONS
|
||||||
|
.TP 0.4i
|
||||||
|
.B CURLOPT_PRIVATE
|
||||||
|
Pass a char * as parameter, pointing to data that should be
|
||||||
|
associated with the curl handle. The pointer can be subsequently retrieved using
|
||||||
|
the CURLINFO_PRIVATE options to curl_easy_getinfo. (Added in 7.10.3)
|
||||||
|
.PP
|
||||||
.SH RETURN VALUE
|
.SH RETURN VALUE
|
||||||
CURLE_OK (zero) means that the option was set properly, non-zero means an
|
CURLE_OK (zero) means that the option was set properly, non-zero means an
|
||||||
error occurred as \fI<curl/curl.h>\fP defines. See the \fIlibcurl-errors.3\fP
|
error occurred as \fI<curl/curl.h>\fP defines. See the \fIlibcurl-errors.3\fP
|
||||||
|
@ -610,6 +610,8 @@ typedef enum {
|
|||||||
the response to be compressed. */
|
the response to be compressed. */
|
||||||
CINIT(ENCODING, OBJECTPOINT, 102),
|
CINIT(ENCODING, OBJECTPOINT, 102),
|
||||||
|
|
||||||
|
/* Set pointer to private data */
|
||||||
|
CINIT(PRIVATE, OBJECTPOINT, 103),
|
||||||
|
|
||||||
CURLOPT_LASTENTRY /* the last unused */
|
CURLOPT_LASTENTRY /* the last unused */
|
||||||
} CURLoption;
|
} CURLoption;
|
||||||
@ -861,9 +863,11 @@ typedef enum {
|
|||||||
CURLINFO_REDIRECT_TIME = CURLINFO_DOUBLE + 19,
|
CURLINFO_REDIRECT_TIME = CURLINFO_DOUBLE + 19,
|
||||||
CURLINFO_REDIRECT_COUNT = CURLINFO_LONG + 20,
|
CURLINFO_REDIRECT_COUNT = CURLINFO_LONG + 20,
|
||||||
|
|
||||||
|
CURLINFO_PRIVATE = CURLINFO_STRING + 21,
|
||||||
|
|
||||||
/* Fill in new entries here! */
|
/* Fill in new entries here! */
|
||||||
|
|
||||||
CURLINFO_LASTONE = 21
|
CURLINFO_LASTONE = 22
|
||||||
} CURLINFO;
|
} CURLINFO;
|
||||||
|
|
||||||
/* unfortunately, the easy.h and multi.h include files need options and info
|
/* unfortunately, the easy.h and multi.h include files need options and info
|
||||||
|
@ -158,6 +158,9 @@ CURLcode Curl_getinfo(struct SessionHandle *data, CURLINFO info, ...)
|
|||||||
case CURLINFO_CONTENT_TYPE:
|
case CURLINFO_CONTENT_TYPE:
|
||||||
*param_charp = data->info.contenttype;
|
*param_charp = data->info.contenttype;
|
||||||
break;
|
break;
|
||||||
|
case CURLINFO_PRIVATE:
|
||||||
|
*param_charp = data->set.private?data->set.private:(char *)"";
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
return CURLE_BAD_FUNCTION_ARGUMENT;
|
return CURLE_BAD_FUNCTION_ARGUMENT;
|
||||||
}
|
}
|
||||||
|
@ -1088,6 +1088,13 @@ CURLcode Curl_setopt(struct SessionHandle *data, CURLoption option, ...)
|
|||||||
data->set.proxytype = va_arg(param, long);
|
data->set.proxytype = va_arg(param, long);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case CURLOPT_PRIVATE:
|
||||||
|
/*
|
||||||
|
* Set private data pointer.
|
||||||
|
*/
|
||||||
|
data->set.private = va_arg(param, char *);
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
/* unknown tag and its companion, just ignore: */
|
/* unknown tag and its companion, just ignore: */
|
||||||
return CURLE_FAILED_INIT; /* correct this */
|
return CURLE_FAILED_INIT; /* correct this */
|
||||||
|
@ -686,6 +686,8 @@ struct UserDefined {
|
|||||||
|
|
||||||
int dns_cache_timeout; /* DNS cache timeout */
|
int dns_cache_timeout; /* DNS cache timeout */
|
||||||
long buffer_size; /* size of receive buffer to use */
|
long buffer_size; /* size of receive buffer to use */
|
||||||
|
|
||||||
|
char *private; /* Private data */
|
||||||
|
|
||||||
/* Here follows boolean settings that define how to behave during
|
/* Here follows boolean settings that define how to behave during
|
||||||
this session. They are STATIC, set by libcurl users or at least initially
|
this session. They are STATIC, set by libcurl users or at least initially
|
||||||
|
Loading…
Reference in New Issue
Block a user