CURL improvement
This commit is contained in:
@@ -187,6 +187,45 @@ namespace lime {
|
||||
case CURLOPT_NOSIGNAL:
|
||||
case CURLOPT_WILDCARDMATCH:
|
||||
case CURLOPT_FAILONERROR:
|
||||
case CURLOPT_DNS_USE_GLOBAL_CACHE:
|
||||
case CURLOPT_TCP_NODELAY:
|
||||
case CURLOPT_TCP_KEEPALIVE:
|
||||
case CURLOPT_SASL_IR:
|
||||
case CURLOPT_AUTOREFERER:
|
||||
case CURLOPT_TRANSFER_ENCODING:
|
||||
case CURLOPT_FOLLOWLOCATION:
|
||||
case CURLOPT_UNRESTRICTED_AUTH:
|
||||
case CURLOPT_PUT:
|
||||
case CURLOPT_POST:
|
||||
case CURLOPT_COOKIESESSION:
|
||||
case CURLOPT_HTTPGET:
|
||||
case CURLOPT_IGNORE_CONTENT_LENGTH:
|
||||
case CURLOPT_HTTP_CONTENT_DECODING:
|
||||
case CURLOPT_HTTP_TRANSFER_DECODING:
|
||||
case CURLOPT_DIRLISTONLY:
|
||||
case CURLOPT_APPEND:
|
||||
case CURLOPT_FTP_USE_EPRT:
|
||||
case CURLOPT_FTP_USE_EPSV:
|
||||
case CURLOPT_FTP_USE_PRET:
|
||||
case CURLOPT_FTP_CREATE_MISSING_DIRS:
|
||||
case CURLOPT_FTP_SKIP_PASV_IP:
|
||||
case CURLOPT_TRANSFERTEXT:
|
||||
case CURLOPT_CRLF:
|
||||
case CURLOPT_NOBODY:
|
||||
case CURLOPT_UPLOAD:
|
||||
case CURLOPT_FRESH_CONNECT:
|
||||
case CURLOPT_FORBID_REUSE:
|
||||
case CURLOPT_CONNECT_ONLY:
|
||||
case CURLOPT_USE_SSL:
|
||||
//case CURLOPT_SSL_ENABLE_ALPN:
|
||||
//case CURLOPT_SSL_ENABLE_NPN:
|
||||
case CURLOPT_SSL_VERIFYPEER:
|
||||
case CURLOPT_SSL_VERIFYHOST:
|
||||
case CURLOPT_SSL_SESSIONID_CACHE:
|
||||
|
||||
code = curl_easy_setopt (curl, type, val_bool (parameter));
|
||||
break;
|
||||
|
||||
case CURLOPT_PROTOCOLS:
|
||||
case CURLOPT_REDIR_PROTOCOLS:
|
||||
case CURLOPT_PROXYPORT:
|
||||
@@ -196,58 +235,32 @@ namespace lime {
|
||||
case CURLOPT_LOCALPORT:
|
||||
case CURLOPT_LOCALPORTRANGE:
|
||||
case CURLOPT_DNS_CACHE_TIMEOUT:
|
||||
case CURLOPT_DNS_USE_GLOBAL_CACHE:
|
||||
case CURLOPT_BUFFERSIZE:
|
||||
case CURLOPT_PORT:
|
||||
case CURLOPT_TCP_NODELAY:
|
||||
case CURLOPT_ADDRESS_SCOPE:
|
||||
case CURLOPT_TCP_KEEPALIVE:
|
||||
case CURLOPT_TCP_KEEPIDLE:
|
||||
case CURLOPT_TCP_KEEPINTVL:
|
||||
case CURLOPT_NETRC:
|
||||
case CURLOPT_HTTPAUTH:
|
||||
case CURLOPT_PROXYAUTH:
|
||||
case CURLOPT_SASL_IR:
|
||||
case CURLOPT_AUTOREFERER:
|
||||
case CURLOPT_TRANSFER_ENCODING:
|
||||
case CURLOPT_FOLLOWLOCATION:
|
||||
case CURLOPT_UNRESTRICTED_AUTH:
|
||||
case CURLOPT_MAXREDIRS:
|
||||
case CURLOPT_POSTREDIR:
|
||||
case CURLOPT_PUT:
|
||||
case CURLOPT_POST:
|
||||
case CURLOPT_POSTFIELDSIZE:
|
||||
//case CURLOPT_HEADEROPT:
|
||||
case CURLOPT_COOKIESESSION:
|
||||
case CURLOPT_HTTPGET:
|
||||
case CURLOPT_HTTP_VERSION:
|
||||
case CURLOPT_IGNORE_CONTENT_LENGTH:
|
||||
case CURLOPT_HTTP_CONTENT_DECODING:
|
||||
case CURLOPT_HTTP_TRANSFER_DECODING:
|
||||
//case CURLOPT_EXPECT_100_TIMEOUT_MS:
|
||||
case CURLOPT_TFTP_BLKSIZE:
|
||||
case CURLOPT_DIRLISTONLY:
|
||||
case CURLOPT_APPEND:
|
||||
case CURLOPT_FTP_USE_EPRT:
|
||||
case CURLOPT_FTP_USE_EPSV:
|
||||
case CURLOPT_FTP_USE_PRET:
|
||||
case CURLOPT_FTP_CREATE_MISSING_DIRS:
|
||||
case CURLOPT_FTP_RESPONSE_TIMEOUT:
|
||||
case CURLOPT_FTP_SKIP_PASV_IP:
|
||||
case CURLOPT_FTPSSLAUTH:
|
||||
case CURLOPT_FTP_SSL_CCC:
|
||||
case CURLOPT_FTP_FILEMETHOD:
|
||||
case CURLOPT_RTSP_REQUEST:
|
||||
case CURLOPT_RTSP_CLIENT_CSEQ:
|
||||
case CURLOPT_RTSP_SERVER_CSEQ:
|
||||
case CURLOPT_TRANSFERTEXT:
|
||||
case CURLOPT_PROXY_TRANSFER_MODE:
|
||||
case CURLOPT_CRLF:
|
||||
case CURLOPT_RESUME_FROM:
|
||||
case CURLOPT_FILETIME:
|
||||
case CURLOPT_NOBODY:
|
||||
case CURLOPT_INFILESIZE:
|
||||
case CURLOPT_UPLOAD:
|
||||
case CURLOPT_MAXFILESIZE:
|
||||
case CURLOPT_TIMECONDITION:
|
||||
case CURLOPT_TIMEVALUE:
|
||||
@@ -256,22 +269,13 @@ namespace lime {
|
||||
case CURLOPT_LOW_SPEED_LIMIT:
|
||||
case CURLOPT_LOW_SPEED_TIME:
|
||||
case CURLOPT_MAXCONNECTS:
|
||||
case CURLOPT_FRESH_CONNECT:
|
||||
case CURLOPT_FORBID_REUSE:
|
||||
case CURLOPT_CONNECTTIMEOUT:
|
||||
case CURLOPT_CONNECTTIMEOUT_MS:
|
||||
case CURLOPT_IPRESOLVE:
|
||||
case CURLOPT_CONNECT_ONLY:
|
||||
case CURLOPT_USE_SSL:
|
||||
case CURLOPT_ACCEPTTIMEOUT_MS:
|
||||
//case CURLOPT_SSL_ENABLE_ALPN:
|
||||
//case CURLOPT_SSL_ENABLE_NPN:
|
||||
case CURLOPT_SSLENGINE_DEFAULT:
|
||||
case CURLOPT_SSLVERSION:
|
||||
case CURLOPT_SSL_VERIFYPEER:
|
||||
case CURLOPT_SSL_VERIFYHOST:
|
||||
case CURLOPT_CERTINFO:
|
||||
case CURLOPT_SSL_SESSIONID_CACHE:
|
||||
case CURLOPT_SSL_OPTIONS:
|
||||
case CURLOPT_GSSAPI_DELEGATION:
|
||||
case CURLOPT_SSH_AUTH_TYPES:
|
||||
@@ -384,7 +388,6 @@ namespace lime {
|
||||
case CURLOPT_FNMATCH_DATA:
|
||||
case CURLOPT_STDERR:
|
||||
case CURLOPT_HTTPPOST:
|
||||
case CURLOPT_HTTPHEADER:
|
||||
//case CURLOPT_PROXYHEADER:
|
||||
case CURLOPT_HTTP200ALIASES:
|
||||
case CURLOPT_MAIL_RCPT:
|
||||
@@ -406,11 +409,26 @@ namespace lime {
|
||||
|
||||
case CURLOPT_READFUNCTION:
|
||||
case CURLOPT_WRITEFUNCTION:
|
||||
|
||||
{
|
||||
AutoGCRoot* callback = new AutoGCRoot (parameter);
|
||||
code = curl_easy_setopt (curl, type, rw_callback);
|
||||
curl_easy_setopt (curl, type == CURLOPT_READFUNCTION ? CURLOPT_READDATA : CURLOPT_WRITEDATA, callback);
|
||||
break;
|
||||
}
|
||||
|
||||
case CURLOPT_HTTPHEADER:
|
||||
|
||||
struct curl_slist *chunk = NULL;
|
||||
int size = val_array_size (parameter);
|
||||
|
||||
for (int i = 0; i < size; i++) {
|
||||
|
||||
chunk = curl_slist_append (chunk, val_string (val_array_i (parameter, i)));
|
||||
|
||||
}
|
||||
|
||||
code = curl_easy_setopt (curl, type, chunk);
|
||||
break;
|
||||
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user