Skip to content

Instantly share code, notes, and snippets.

@mala
Created October 12, 2010 07:13
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mala/621797 to your computer and use it in GitHub Desktop.
Save mala/621797 to your computer and use it in GitHub Desktop.
static int
constant(const char *name)
{
errno = 0;
if (strncmp(name, "CURLE_", 6) == 0) {
name += 6;
switch (*name) {
case 'A':
if (strEQ(name, "ABORTED_BY_CALLBACK")) return CURLE_ABORTED_BY_CALLBACK;
if (strEQ(name, "AGAIN")) return CURLE_AGAIN;
break;
case 'B':
if (strEQ(name, "BAD_CONTENT_ENCODING")) return CURLE_BAD_CONTENT_ENCODING;
if (strEQ(name, "BAD_DOWNLOAD_RESUME")) return CURLE_BAD_DOWNLOAD_RESUME;
if (strEQ(name, "BAD_FUNCTION_ARGUMENT")) return CURLE_BAD_FUNCTION_ARGUMENT;
break;
case 'C':
if (strEQ(name, "CONV_FAILED")) return CURLE_CONV_FAILED;
if (strEQ(name, "CONV_REQD")) return CURLE_CONV_REQD;
if (strEQ(name, "COULDNT_CONNECT")) return CURLE_COULDNT_CONNECT;
if (strEQ(name, "COULDNT_RESOLVE_HOST")) return CURLE_COULDNT_RESOLVE_HOST;
if (strEQ(name, "COULDNT_RESOLVE_PROXY")) return CURLE_COULDNT_RESOLVE_PROXY;
break;
case 'D':
case 'E':
case 'F':
if (strEQ(name, "FAILED_INIT")) return CURLE_FAILED_INIT;
if (strEQ(name, "FILESIZE_EXCEEDED")) return CURLE_FILESIZE_EXCEEDED;
if (strEQ(name, "FILE_COULDNT_READ_FILE")) return CURLE_FILE_COULDNT_READ_FILE;
if (strEQ(name, "FTP_CANT_GET_HOST")) return CURLE_FTP_CANT_GET_HOST;
if (strEQ(name, "FTP_COULDNT_RETR_FILE")) return CURLE_FTP_COULDNT_RETR_FILE;
if (strEQ(name, "FTP_COULDNT_SET_TYPE")) return CURLE_FTP_COULDNT_SET_TYPE;
if (strEQ(name, "FTP_COULDNT_USE_REST")) return CURLE_FTP_COULDNT_USE_REST;
if (strEQ(name, "FTP_PORT_FAILED")) return CURLE_FTP_PORT_FAILED;
if (strEQ(name, "FTP_PRET_FAILED")) return CURLE_FTP_PRET_FAILED;
if (strEQ(name, "FTP_WEIRD_227_FORMAT")) return CURLE_FTP_WEIRD_227_FORMAT;
if (strEQ(name, "FTP_WEIRD_PASS_REPLY")) return CURLE_FTP_WEIRD_PASS_REPLY;
if (strEQ(name, "FTP_WEIRD_PASV_REPLY")) return CURLE_FTP_WEIRD_PASV_REPLY;
if (strEQ(name, "FTP_WEIRD_SERVER_REPLY")) return CURLE_FTP_WEIRD_SERVER_REPLY;
if (strEQ(name, "FUNCTION_NOT_FOUND")) return CURLE_FUNCTION_NOT_FOUND;
break;
case 'G':
if (strEQ(name, "GOT_NOTHING")) return CURLE_GOT_NOTHING;
break;
case 'H':
if (strEQ(name, "HTTP_POST_ERROR")) return CURLE_HTTP_POST_ERROR;
if (strEQ(name, "HTTP_RETURNED_ERROR")) return CURLE_HTTP_RETURNED_ERROR;
break;
case 'I':
if (strEQ(name, "INTERFACE_FAILED")) return CURLE_INTERFACE_FAILED;
break;
case 'J':
case 'K':
case 'L':
if (strEQ(name, "LDAP_CANNOT_BIND")) return CURLE_LDAP_CANNOT_BIND;
if (strEQ(name, "LDAP_INVALID_URL")) return CURLE_LDAP_INVALID_URL;
if (strEQ(name, "LDAP_SEARCH_FAILED")) return CURLE_LDAP_SEARCH_FAILED;
if (strEQ(name, "LOGIN_DENIED")) return CURLE_LOGIN_DENIED;
break;
case 'M':
case 'N':
case 'O':
if (strEQ(name, "OBSOLETE10")) return CURLE_OBSOLETE10;
if (strEQ(name, "OBSOLETE12")) return CURLE_OBSOLETE12;
if (strEQ(name, "OBSOLETE16")) return CURLE_OBSOLETE16;
if (strEQ(name, "OBSOLETE20")) return CURLE_OBSOLETE20;
if (strEQ(name, "OBSOLETE24")) return CURLE_OBSOLETE24;
if (strEQ(name, "OBSOLETE29")) return CURLE_OBSOLETE29;
if (strEQ(name, "OBSOLETE32")) return CURLE_OBSOLETE32;
if (strEQ(name, "OBSOLETE4")) return CURLE_OBSOLETE4;
if (strEQ(name, "OBSOLETE40")) return CURLE_OBSOLETE40;
if (strEQ(name, "OBSOLETE44")) return CURLE_OBSOLETE44;
if (strEQ(name, "OBSOLETE46")) return CURLE_OBSOLETE46;
if (strEQ(name, "OBSOLETE50")) return CURLE_OBSOLETE50;
if (strEQ(name, "OBSOLETE57")) return CURLE_OBSOLETE57;
if (strEQ(name, "OK")) return CURLE_OK;
if (strEQ(name, "OPERATION_TIMEDOUT")) return CURLE_OPERATION_TIMEDOUT;
if (strEQ(name, "OUT_OF_MEMORY")) return CURLE_OUT_OF_MEMORY;
break;
case 'P':
if (strEQ(name, "PARTIAL_FILE")) return CURLE_PARTIAL_FILE;
if (strEQ(name, "PEER_FAILED_VERIFICATION")) return CURLE_PEER_FAILED_VERIFICATION;
break;
case 'Q':
if (strEQ(name, "QUOTE_ERROR")) return CURLE_QUOTE_ERROR;
break;
case 'R':
if (strEQ(name, "RANGE_ERROR")) return CURLE_RANGE_ERROR;
if (strEQ(name, "READ_ERROR")) return CURLE_READ_ERROR;
if (strEQ(name, "RECV_ERROR")) return CURLE_RECV_ERROR;
if (strEQ(name, "REMOTE_ACCESS_DENIED")) return CURLE_REMOTE_ACCESS_DENIED;
if (strEQ(name, "REMOTE_DISK_FULL")) return CURLE_REMOTE_DISK_FULL;
if (strEQ(name, "REMOTE_FILE_EXISTS")) return CURLE_REMOTE_FILE_EXISTS;
if (strEQ(name, "REMOTE_FILE_NOT_FOUND")) return CURLE_REMOTE_FILE_NOT_FOUND;
if (strEQ(name, "RTSP_CSEQ_ERROR")) return CURLE_RTSP_CSEQ_ERROR;
if (strEQ(name, "RTSP_SESSION_ERROR")) return CURLE_RTSP_SESSION_ERROR;
break;
case 'S':
if (strEQ(name, "SEND_ERROR")) return CURLE_SEND_ERROR;
if (strEQ(name, "SEND_FAIL_REWIND")) return CURLE_SEND_FAIL_REWIND;
if (strEQ(name, "SSH")) return CURLE_SSH;
if (strEQ(name, "SSL_CACERT")) return CURLE_SSL_CACERT;
if (strEQ(name, "SSL_CACERT_BADFILE")) return CURLE_SSL_CACERT_BADFILE;
if (strEQ(name, "SSL_CERTPROBLEM")) return CURLE_SSL_CERTPROBLEM;
if (strEQ(name, "SSL_CIPHER")) return CURLE_SSL_CIPHER;
if (strEQ(name, "SSL_CONNECT_ERROR")) return CURLE_SSL_CONNECT_ERROR;
if (strEQ(name, "SSL_CRL_BADFILE")) return CURLE_SSL_CRL_BADFILE;
if (strEQ(name, "SSL_ENGINE_INITFAILED")) return CURLE_SSL_ENGINE_INITFAILED;
if (strEQ(name, "SSL_ENGINE_NOTFOUND")) return CURLE_SSL_ENGINE_NOTFOUND;
if (strEQ(name, "SSL_ENGINE_SETFAILED")) return CURLE_SSL_ENGINE_SETFAILED;
if (strEQ(name, "SSL_ISSUER_ERROR")) return CURLE_SSL_ISSUER_ERROR;
if (strEQ(name, "SSL_SHUTDOWN_FAILED")) return CURLE_SSL_SHUTDOWN_FAILED;
break;
case 'T':
if (strEQ(name, "TELNET_OPTION_SYNTAX")) return CURLE_TELNET_OPTION_SYNTAX;
if (strEQ(name, "TFTP_ILLEGAL")) return CURLE_TFTP_ILLEGAL;
if (strEQ(name, "TFTP_NOSUCHUSER")) return CURLE_TFTP_NOSUCHUSER;
if (strEQ(name, "TFTP_NOTFOUND")) return CURLE_TFTP_NOTFOUND;
if (strEQ(name, "TFTP_PERM")) return CURLE_TFTP_PERM;
if (strEQ(name, "TFTP_UNKNOWNID")) return CURLE_TFTP_UNKNOWNID;
if (strEQ(name, "TOO_MANY_REDIRECTS")) return CURLE_TOO_MANY_REDIRECTS;
break;
case 'U':
if (strEQ(name, "UNKNOWN_TELNET_OPTION")) return CURLE_UNKNOWN_TELNET_OPTION;
if (strEQ(name, "UNSUPPORTED_PROTOCOL")) return CURLE_UNSUPPORTED_PROTOCOL;
if (strEQ(name, "UPLOAD_FAILED")) return CURLE_UPLOAD_FAILED;
if (strEQ(name, "URL_MALFORMAT")) return CURLE_URL_MALFORMAT;
if (strEQ(name, "USE_SSL_FAILED")) return CURLE_USE_SSL_FAILED;
break;
case 'V':
case 'W':
if (strEQ(name, "WRITE_ERROR")) return CURLE_WRITE_ERROR;
break;
case 'X':
case 'Y':
case 'Z':
break;
};
}
if (strncmp(name, "CURLINFO_", 9) == 0) {
name += 9;
switch (*name) {
case 'A':
if (strEQ(name, "APPCONNECT_TIME")) return CURLINFO_APPCONNECT_TIME;
break;
case 'B':
case 'C':
if (strEQ(name, "CERTINFO")) return CURLINFO_CERTINFO;
if (strEQ(name, "CONDITION_UNMET")) return CURLINFO_CONDITION_UNMET;
if (strEQ(name, "CONNECT_TIME")) return CURLINFO_CONNECT_TIME;
if (strEQ(name, "CONTENT_LENGTH_DOWNLOAD")) return CURLINFO_CONTENT_LENGTH_DOWNLOAD;
if (strEQ(name, "CONTENT_LENGTH_UPLOAD")) return CURLINFO_CONTENT_LENGTH_UPLOAD;
if (strEQ(name, "CONTENT_TYPE")) return CURLINFO_CONTENT_TYPE;
if (strEQ(name, "COOKIELIST")) return CURLINFO_COOKIELIST;
break;
case 'D':
if (strEQ(name, "DATA_IN")) return CURLINFO_DATA_IN;
if (strEQ(name, "DATA_OUT")) return CURLINFO_DATA_OUT;
break;
case 'E':
if (strEQ(name, "EFFECTIVE_URL")) return CURLINFO_EFFECTIVE_URL;
if (strEQ(name, "END")) return CURLINFO_END;
break;
case 'F':
if (strEQ(name, "FILETIME")) return CURLINFO_FILETIME;
if (strEQ(name, "FTP_ENTRY_PATH")) return CURLINFO_FTP_ENTRY_PATH;
break;
case 'G':
case 'H':
if (strEQ(name, "HEADER_IN")) return CURLINFO_HEADER_IN;
if (strEQ(name, "HEADER_OUT")) return CURLINFO_HEADER_OUT;
if (strEQ(name, "HEADER_SIZE")) return CURLINFO_HEADER_SIZE;
if (strEQ(name, "HTTPAUTH_AVAIL")) return CURLINFO_HTTPAUTH_AVAIL;
if (strEQ(name, "HTTP_CODE")) return CURLINFO_HTTP_CODE;
if (strEQ(name, "HTTP_CONNECTCODE")) return CURLINFO_HTTP_CONNECTCODE;
break;
case 'I':
case 'J':
case 'K':
case 'L':
if (strEQ(name, "LASTONE")) return CURLINFO_LASTONE;
if (strEQ(name, "LASTSOCKET")) return CURLINFO_LASTSOCKET;
break;
case 'M':
case 'N':
if (strEQ(name, "NAMELOOKUP_TIME")) return CURLINFO_NAMELOOKUP_TIME;
if (strEQ(name, "NONE")) return CURLINFO_NONE;
if (strEQ(name, "NUM_CONNECTS")) return CURLINFO_NUM_CONNECTS;
break;
case 'O':
if (strEQ(name, "OS_ERRNO")) return CURLINFO_OS_ERRNO;
break;
case 'P':
if (strEQ(name, "PRETRANSFER_TIME")) return CURLINFO_PRETRANSFER_TIME;
if (strEQ(name, "PRIMARY_IP")) return CURLINFO_PRIMARY_IP;
if (strEQ(name, "PRIVATE")) return CURLINFO_PRIVATE;
if (strEQ(name, "PROXYAUTH_AVAIL")) return CURLINFO_PROXYAUTH_AVAIL;
break;
case 'Q':
case 'R':
if (strEQ(name, "REDIRECT_COUNT")) return CURLINFO_REDIRECT_COUNT;
if (strEQ(name, "REDIRECT_TIME")) return CURLINFO_REDIRECT_TIME;
if (strEQ(name, "REDIRECT_URL")) return CURLINFO_REDIRECT_URL;
if (strEQ(name, "REQUEST_SIZE")) return CURLINFO_REQUEST_SIZE;
if (strEQ(name, "RESPONSE_CODE")) return CURLINFO_RESPONSE_CODE;
if (strEQ(name, "RTSP_CLIENT_CSEQ")) return CURLINFO_RTSP_CLIENT_CSEQ;
if (strEQ(name, "RTSP_CSEQ_RECV")) return CURLINFO_RTSP_CSEQ_RECV;
if (strEQ(name, "RTSP_SERVER_CSEQ")) return CURLINFO_RTSP_SERVER_CSEQ;
if (strEQ(name, "RTSP_SESSION_ID")) return CURLINFO_RTSP_SESSION_ID;
break;
case 'S':
if (strEQ(name, "SIZE_DOWNLOAD")) return CURLINFO_SIZE_DOWNLOAD;
if (strEQ(name, "SIZE_UPLOAD")) return CURLINFO_SIZE_UPLOAD;
if (strEQ(name, "SPEED_DOWNLOAD")) return CURLINFO_SPEED_DOWNLOAD;
if (strEQ(name, "SPEED_UPLOAD")) return CURLINFO_SPEED_UPLOAD;
if (strEQ(name, "SSL_DATA_IN")) return CURLINFO_SSL_DATA_IN;
if (strEQ(name, "SSL_DATA_OUT")) return CURLINFO_SSL_DATA_OUT;
if (strEQ(name, "SSL_ENGINES")) return CURLINFO_SSL_ENGINES;
if (strEQ(name, "SSL_VERIFYRESULT")) return CURLINFO_SSL_VERIFYRESULT;
if (strEQ(name, "STARTTRANSFER_TIME")) return CURLINFO_STARTTRANSFER_TIME;
break;
case 'T':
if (strEQ(name, "TEXT")) return CURLINFO_TEXT;
if (strEQ(name, "TOTAL_TIME")) return CURLINFO_TOTAL_TIME;
break;
case 'U':
case 'V':
case 'W':
case 'X':
case 'Y':
case 'Z':
break;
};
}
if (strncmp(name, "CURLOPT_", 8) == 0) {
name += 8;
switch (*name) {
case 'A':
if (strEQ(name, "ADDRESS_SCOPE")) return CURLOPT_ADDRESS_SCOPE;
if (strEQ(name, "APPEND")) return CURLOPT_APPEND;
if (strEQ(name, "AUTOREFERER")) return CURLOPT_AUTOREFERER;
break;
case 'B':
if (strEQ(name, "BUFFERSIZE")) return CURLOPT_BUFFERSIZE;
break;
case 'C':
if (strEQ(name, "CAINFO")) return CURLOPT_CAINFO;
if (strEQ(name, "CAPATH")) return CURLOPT_CAPATH;
if (strEQ(name, "CERTINFO")) return CURLOPT_CERTINFO;
if (strEQ(name, "CLOSEPOLICY")) return CURLOPT_CLOSEPOLICY;
if (strEQ(name, "CONNECTTIMEOUT")) return CURLOPT_CONNECTTIMEOUT;
if (strEQ(name, "CONNECTTIMEOUT_MS")) return CURLOPT_CONNECTTIMEOUT_MS;
if (strEQ(name, "CONNECT_ONLY")) return CURLOPT_CONNECT_ONLY;
if (strEQ(name, "CONV_FROM_NETWORK_FUNCTION")) return CURLOPT_CONV_FROM_NETWORK_FUNCTION;
if (strEQ(name, "CONV_FROM_UTF8_FUNCTION")) return CURLOPT_CONV_FROM_UTF8_FUNCTION;
if (strEQ(name, "CONV_TO_NETWORK_FUNCTION")) return CURLOPT_CONV_TO_NETWORK_FUNCTION;
if (strEQ(name, "COOKIE")) return CURLOPT_COOKIE;
if (strEQ(name, "COOKIEFILE")) return CURLOPT_COOKIEFILE;
if (strEQ(name, "COOKIEJAR")) return CURLOPT_COOKIEJAR;
if (strEQ(name, "COOKIELIST")) return CURLOPT_COOKIELIST;
if (strEQ(name, "COOKIESESSION")) return CURLOPT_COOKIESESSION;
if (strEQ(name, "COPYPOSTFIELDS")) return CURLOPT_COPYPOSTFIELDS;
if (strEQ(name, "CRLF")) return CURLOPT_CRLF;
if (strEQ(name, "CRLFILE")) return CURLOPT_CRLFILE;
if (strEQ(name, "CUSTOMREQUEST")) return CURLOPT_CUSTOMREQUEST;
break;
case 'D':
if (strEQ(name, "DEBUGDATA")) return CURLOPT_DEBUGDATA;
if (strEQ(name, "DEBUGFUNCTION")) return CURLOPT_DEBUGFUNCTION;
if (strEQ(name, "DIRLISTONLY")) return CURLOPT_DIRLISTONLY;
if (strEQ(name, "DNS_CACHE_TIMEOUT")) return CURLOPT_DNS_CACHE_TIMEOUT;
if (strEQ(name, "DNS_USE_GLOBAL_CACHE")) return CURLOPT_DNS_USE_GLOBAL_CACHE;
break;
case 'E':
if (strEQ(name, "EGDSOCKET")) return CURLOPT_EGDSOCKET;
if (strEQ(name, "ENCODING")) return CURLOPT_ENCODING;
if (strEQ(name, "ERRORBUFFER")) return CURLOPT_ERRORBUFFER;
break;
case 'F':
if (strEQ(name, "FAILONERROR")) return CURLOPT_FAILONERROR;
if (strEQ(name, "FILE")) return CURLOPT_FILE;
if (strEQ(name, "FILETIME")) return CURLOPT_FILETIME;
if (strEQ(name, "FOLLOWLOCATION")) return CURLOPT_FOLLOWLOCATION;
if (strEQ(name, "FORBID_REUSE")) return CURLOPT_FORBID_REUSE;
if (strEQ(name, "FRESH_CONNECT")) return CURLOPT_FRESH_CONNECT;
if (strEQ(name, "FTPAPPEND")) return CURLOPT_APPEND;
if (strEQ(name, "FTPLISTONLY")) return CURLOPT_DIRLISTONLY;
if (strEQ(name, "FTPPORT")) return CURLOPT_FTPPORT;
if (strEQ(name, "FTPSSLAUTH")) return CURLOPT_FTPSSLAUTH;
if (strEQ(name, "FTP_ACCOUNT")) return CURLOPT_FTP_ACCOUNT;
if (strEQ(name, "FTP_ALTERNATIVE_TO_USER")) return CURLOPT_FTP_ALTERNATIVE_TO_USER;
if (strEQ(name, "FTP_CREATE_MISSING_DIRS")) return CURLOPT_FTP_CREATE_MISSING_DIRS;
if (strEQ(name, "FTP_FILEMETHOD")) return CURLOPT_FTP_FILEMETHOD;
if (strEQ(name, "FTP_RESPONSE_TIMEOUT")) return CURLOPT_FTP_RESPONSE_TIMEOUT;
if (strEQ(name, "FTP_SKIP_PASV_IP")) return CURLOPT_FTP_SKIP_PASV_IP;
if (strEQ(name, "FTP_SSL")) return CURLOPT_USE_SSL;
if (strEQ(name, "FTP_SSL_CCC")) return CURLOPT_FTP_SSL_CCC;
if (strEQ(name, "FTP_USE_EPRT")) return CURLOPT_FTP_USE_EPRT;
if (strEQ(name, "FTP_USE_EPSV")) return CURLOPT_FTP_USE_EPSV;
if (strEQ(name, "FTP_USE_PRET")) return CURLOPT_FTP_USE_PRET;
break;
case 'G':
case 'H':
if (strEQ(name, "HEADER")) return CURLOPT_HEADER;
if (strEQ(name, "HEADERDATA")) return CURLOPT_WRITEHEADER;
if (strEQ(name, "HEADERFUNCTION")) return CURLOPT_HEADERFUNCTION;
if (strEQ(name, "HTTP200ALIASES")) return CURLOPT_HTTP200ALIASES;
if (strEQ(name, "HTTPAUTH")) return CURLOPT_HTTPAUTH;
if (strEQ(name, "HTTPGET")) return CURLOPT_HTTPGET;
if (strEQ(name, "HTTPHEADER")) return CURLOPT_HTTPHEADER;
if (strEQ(name, "HTTPPOST")) return CURLOPT_HTTPPOST;
if (strEQ(name, "HTTPPROXYTUNNEL")) return CURLOPT_HTTPPROXYTUNNEL;
if (strEQ(name, "HTTP_CONTENT_DECODING")) return CURLOPT_HTTP_CONTENT_DECODING;
if (strEQ(name, "HTTP_TRANSFER_DECODING")) return CURLOPT_HTTP_TRANSFER_DECODING;
if (strEQ(name, "HTTP_VERSION")) return CURLOPT_HTTP_VERSION;
break;
case 'I':
if (strEQ(name, "IGNORE_CONTENT_LENGTH")) return CURLOPT_IGNORE_CONTENT_LENGTH;
if (strEQ(name, "INFILE")) return CURLOPT_INFILE;
if (strEQ(name, "INFILESIZE")) return CURLOPT_INFILESIZE;
if (strEQ(name, "INFILESIZE_LARGE")) return CURLOPT_INFILESIZE_LARGE;
if (strEQ(name, "INTERFACE")) return CURLOPT_INTERFACE;
if (strEQ(name, "INTERLEAVEDATA")) return CURLOPT_INTERLEAVEDATA;
if (strEQ(name, "INTERLEAVEFUNCTION")) return CURLOPT_INTERLEAVEFUNCTION;
if (strEQ(name, "IOCTLDATA")) return CURLOPT_IOCTLDATA;
if (strEQ(name, "IOCTLFUNCTION")) return CURLOPT_IOCTLFUNCTION;
if (strEQ(name, "IPRESOLVE")) return CURLOPT_IPRESOLVE;
if (strEQ(name, "ISSUERCERT")) return CURLOPT_ISSUERCERT;
break;
case 'J':
case 'K':
if (strEQ(name, "KEYPASSWD")) return CURLOPT_KEYPASSWD;
if (strEQ(name, "KRB4LEVEL")) return CURLOPT_KRBLEVEL;
if (strEQ(name, "KRBLEVEL")) return CURLOPT_KRBLEVEL;
break;
case 'L':
if (strEQ(name, "LOCALPORT")) return CURLOPT_LOCALPORT;
if (strEQ(name, "LOCALPORTRANGE")) return CURLOPT_LOCALPORTRANGE;
if (strEQ(name, "LOW_SPEED_LIMIT")) return CURLOPT_LOW_SPEED_LIMIT;
if (strEQ(name, "LOW_SPEED_TIME")) return CURLOPT_LOW_SPEED_TIME;
break;
case 'M':
if (strEQ(name, "MAIL_FROM")) return CURLOPT_MAIL_FROM;
if (strEQ(name, "MAIL_RCPT")) return CURLOPT_MAIL_RCPT;
if (strEQ(name, "MAXCONNECTS")) return CURLOPT_MAXCONNECTS;
if (strEQ(name, "MAXFILESIZE")) return CURLOPT_MAXFILESIZE;
if (strEQ(name, "MAXFILESIZE_LARGE")) return CURLOPT_MAXFILESIZE_LARGE;
if (strEQ(name, "MAXREDIRS")) return CURLOPT_MAXREDIRS;
if (strEQ(name, "MAX_RECV_SPEED_LARGE")) return CURLOPT_MAX_RECV_SPEED_LARGE;
if (strEQ(name, "MAX_SEND_SPEED_LARGE")) return CURLOPT_MAX_SEND_SPEED_LARGE;
break;
case 'N':
if (strEQ(name, "NETRC")) return CURLOPT_NETRC;
if (strEQ(name, "NETRC_FILE")) return CURLOPT_NETRC_FILE;
if (strEQ(name, "NEW_DIRECTORY_PERMS")) return CURLOPT_NEW_DIRECTORY_PERMS;
if (strEQ(name, "NEW_FILE_PERMS")) return CURLOPT_NEW_FILE_PERMS;
if (strEQ(name, "NOBODY")) return CURLOPT_NOBODY;
if (strEQ(name, "NOPROGRESS")) return CURLOPT_NOPROGRESS;
if (strEQ(name, "NOPROXY")) return CURLOPT_NOPROXY;
if (strEQ(name, "NOSIGNAL")) return CURLOPT_NOSIGNAL;
break;
case 'O':
if (strEQ(name, "OPENSOCKETDATA")) return CURLOPT_OPENSOCKETDATA;
if (strEQ(name, "OPENSOCKETFUNCTION")) return CURLOPT_OPENSOCKETFUNCTION;
break;
case 'P':
if (strEQ(name, "PASSWORD")) return CURLOPT_PASSWORD;
if (strEQ(name, "PORT")) return CURLOPT_PORT;
if (strEQ(name, "POST")) return CURLOPT_POST;
if (strEQ(name, "POST301")) return CURLOPT_POSTREDIR;
if (strEQ(name, "POSTFIELDS")) return CURLOPT_POSTFIELDS;
if (strEQ(name, "POSTFIELDSIZE")) return CURLOPT_POSTFIELDSIZE;
if (strEQ(name, "POSTFIELDSIZE_LARGE")) return CURLOPT_POSTFIELDSIZE_LARGE;
if (strEQ(name, "POSTQUOTE")) return CURLOPT_POSTQUOTE;
if (strEQ(name, "POSTREDIR")) return CURLOPT_POSTREDIR;
if (strEQ(name, "PREQUOTE")) return CURLOPT_PREQUOTE;
if (strEQ(name, "PRIVATE")) return CURLOPT_PRIVATE;
if (strEQ(name, "PROGRESSDATA")) return CURLOPT_PROGRESSDATA;
if (strEQ(name, "PROGRESSFUNCTION")) return CURLOPT_PROGRESSFUNCTION;
if (strEQ(name, "PROTOCOLS")) return CURLOPT_PROTOCOLS;
if (strEQ(name, "PROXY")) return CURLOPT_PROXY;
if (strEQ(name, "PROXYAUTH")) return CURLOPT_PROXYAUTH;
if (strEQ(name, "PROXYPASSWORD")) return CURLOPT_PROXYPASSWORD;
if (strEQ(name, "PROXYPORT")) return CURLOPT_PROXYPORT;
if (strEQ(name, "PROXYTYPE")) return CURLOPT_PROXYTYPE;
if (strEQ(name, "PROXYUSERNAME")) return CURLOPT_PROXYUSERNAME;
if (strEQ(name, "PROXYUSERPWD")) return CURLOPT_PROXYUSERPWD;
if (strEQ(name, "PROXY_TRANSFER_MODE")) return CURLOPT_PROXY_TRANSFER_MODE;
if (strEQ(name, "PUT")) return CURLOPT_PUT;
break;
case 'Q':
if (strEQ(name, "QUOTE")) return CURLOPT_QUOTE;
break;
case 'R':
if (strEQ(name, "RANDOM_FILE")) return CURLOPT_RANDOM_FILE;
if (strEQ(name, "RANGE")) return CURLOPT_RANGE;
if (strEQ(name, "READDATA")) return CURLOPT_INFILE;
if (strEQ(name, "READFUNCTION")) return CURLOPT_READFUNCTION;
if (strEQ(name, "REDIR_PROTOCOLS")) return CURLOPT_REDIR_PROTOCOLS;
if (strEQ(name, "REFERER")) return CURLOPT_REFERER;
if (strEQ(name, "RESUME_FROM")) return CURLOPT_RESUME_FROM;
if (strEQ(name, "RESUME_FROM_LARGE")) return CURLOPT_RESUME_FROM_LARGE;
if (strEQ(name, "RTSPHEADER")) return CURLOPT_HTTPHEADER;
if (strEQ(name, "RTSP_CLIENT_CSEQ")) return CURLOPT_RTSP_CLIENT_CSEQ;
if (strEQ(name, "RTSP_REQUEST")) return CURLOPT_RTSP_REQUEST;
if (strEQ(name, "RTSP_SERVER_CSEQ")) return CURLOPT_RTSP_SERVER_CSEQ;
if (strEQ(name, "RTSP_SESSION_ID")) return CURLOPT_RTSP_SESSION_ID;
if (strEQ(name, "RTSP_STREAM_URI")) return CURLOPT_RTSP_STREAM_URI;
if (strEQ(name, "RTSP_TRANSPORT")) return CURLOPT_RTSP_TRANSPORT;
break;
case 'S':
if (strEQ(name, "SEEKDATA")) return CURLOPT_SEEKDATA;
if (strEQ(name, "SEEKFUNCTION")) return CURLOPT_SEEKFUNCTION;
if (strEQ(name, "SERVER_RESPONSE_TIMEOUT")) return CURLOPT_FTP_RESPONSE_TIMEOUT;
if (strEQ(name, "SHARE")) return CURLOPT_SHARE;
if (strEQ(name, "SOCKOPTDATA")) return CURLOPT_SOCKOPTDATA;
if (strEQ(name, "SOCKOPTFUNCTION")) return CURLOPT_SOCKOPTFUNCTION;
if (strEQ(name, "SOCKS5_GSSAPI_NEC")) return CURLOPT_SOCKS5_GSSAPI_NEC;
if (strEQ(name, "SOCKS5_GSSAPI_SERVICE")) return CURLOPT_SOCKS5_GSSAPI_SERVICE;
if (strEQ(name, "SSH_AUTH_TYPES")) return CURLOPT_SSH_AUTH_TYPES;
if (strEQ(name, "SSH_HOST_PUBLIC_KEY_MD5")) return CURLOPT_SSH_HOST_PUBLIC_KEY_MD5;
if (strEQ(name, "SSH_KEYDATA")) return CURLOPT_SSH_KEYDATA;
if (strEQ(name, "SSH_KEYFUNCTION")) return CURLOPT_SSH_KEYFUNCTION;
if (strEQ(name, "SSH_KNOWNHOSTS")) return CURLOPT_SSH_KNOWNHOSTS;
if (strEQ(name, "SSH_PRIVATE_KEYFILE")) return CURLOPT_SSH_PRIVATE_KEYFILE;
if (strEQ(name, "SSH_PUBLIC_KEYFILE")) return CURLOPT_SSH_PUBLIC_KEYFILE;
if (strEQ(name, "SSLCERT")) return CURLOPT_SSLCERT;
if (strEQ(name, "SSLCERTPASSWD")) return CURLOPT_KEYPASSWD;
if (strEQ(name, "SSLCERTTYPE")) return CURLOPT_SSLCERTTYPE;
if (strEQ(name, "SSLENGINE")) return CURLOPT_SSLENGINE;
if (strEQ(name, "SSLENGINE_DEFAULT")) return CURLOPT_SSLENGINE_DEFAULT;
if (strEQ(name, "SSLKEY")) return CURLOPT_SSLKEY;
if (strEQ(name, "SSLKEYPASSWD")) return CURLOPT_KEYPASSWD;
if (strEQ(name, "SSLKEYTYPE")) return CURLOPT_SSLKEYTYPE;
if (strEQ(name, "SSLVERSION")) return CURLOPT_SSLVERSION;
if (strEQ(name, "SSL_CIPHER_LIST")) return CURLOPT_SSL_CIPHER_LIST;
if (strEQ(name, "SSL_CTX_DATA")) return CURLOPT_SSL_CTX_DATA;
if (strEQ(name, "SSL_CTX_FUNCTION")) return CURLOPT_SSL_CTX_FUNCTION;
if (strEQ(name, "SSL_SESSIONID_CACHE")) return CURLOPT_SSL_SESSIONID_CACHE;
if (strEQ(name, "SSL_VERIFYHOST")) return CURLOPT_SSL_VERIFYHOST;
if (strEQ(name, "SSL_VERIFYPEER")) return CURLOPT_SSL_VERIFYPEER;
if (strEQ(name, "STDERR")) return CURLOPT_STDERR;
break;
case 'T':
if (strEQ(name, "TCP_NODELAY")) return CURLOPT_TCP_NODELAY;
if (strEQ(name, "TELNETOPTIONS")) return CURLOPT_TELNETOPTIONS;
if (strEQ(name, "TFTP_BLKSIZE")) return CURLOPT_TFTP_BLKSIZE;
if (strEQ(name, "TIMECONDITION")) return CURLOPT_TIMECONDITION;
if (strEQ(name, "TIMEOUT")) return CURLOPT_TIMEOUT;
if (strEQ(name, "TIMEOUT_MS")) return CURLOPT_TIMEOUT_MS;
if (strEQ(name, "TIMEVALUE")) return CURLOPT_TIMEVALUE;
if (strEQ(name, "TRANSFERTEXT")) return CURLOPT_TRANSFERTEXT;
break;
case 'U':
if (strEQ(name, "UNRESTRICTED_AUTH")) return CURLOPT_UNRESTRICTED_AUTH;
if (strEQ(name, "UPLOAD")) return CURLOPT_UPLOAD;
if (strEQ(name, "URL")) return CURLOPT_URL;
if (strEQ(name, "USERAGENT")) return CURLOPT_USERAGENT;
if (strEQ(name, "USERNAME")) return CURLOPT_USERNAME;
if (strEQ(name, "USERPWD")) return CURLOPT_USERPWD;
if (strEQ(name, "USE_SSL")) return CURLOPT_USE_SSL;
break;
case 'V':
if (strEQ(name, "VERBOSE")) return CURLOPT_VERBOSE;
break;
case 'W':
if (strEQ(name, "WRITEDATA")) return CURLOPT_FILE;
if (strEQ(name, "WRITEFUNCTION")) return CURLOPT_WRITEFUNCTION;
if (strEQ(name, "WRITEHEADER")) return CURLOPT_WRITEHEADER;
if (strEQ(name, "WRITEINFO")) return CURLOPT_WRITEINFO;
break;
case 'X':
case 'Y':
case 'Z':
break;
};
}
if (strncmp(name, "CURLPROXY_", 10) == 0) {
name += 10;
switch (*name) {
case 'A':
case 'B':
case 'C':
case 'D':
case 'E':
case 'F':
case 'G':
case 'H':
if (strEQ(name, "HTTP")) return CURLPROXY_HTTP;
if (strEQ(name, "HTTP_1_0")) return CURLPROXY_HTTP_1_0;
break;
case 'I':
case 'J':
case 'K':
case 'L':
case 'M':
case 'N':
case 'O':
case 'P':
case 'Q':
case 'R':
case 'S':
if (strEQ(name, "SOCKS4")) return CURLPROXY_SOCKS4;
if (strEQ(name, "SOCKS4A")) return CURLPROXY_SOCKS4A;
if (strEQ(name, "SOCKS5")) return CURLPROXY_SOCKS5;
if (strEQ(name, "SOCKS5_HOSTNAME")) return CURLPROXY_SOCKS5_HOSTNAME;
break;
case 'T':
case 'U':
case 'V':
case 'W':
case 'X':
case 'Y':
case 'Z':
break;
};
}
if (strncmp(name, "CURLSHOPT_", 10) == 0) {
name += 10;
switch (*name) {
case 'A':
case 'B':
case 'C':
case 'D':
case 'E':
case 'F':
case 'G':
case 'H':
case 'I':
case 'J':
case 'K':
case 'L':
if (strEQ(name, "LAST")) return CURLSHOPT_LAST;
if (strEQ(name, "LOCKFUNC")) return CURLSHOPT_LOCKFUNC;
break;
case 'M':
case 'N':
if (strEQ(name, "NONE")) return CURLSHOPT_NONE;
break;
case 'O':
case 'P':
case 'Q':
case 'R':
case 'S':
if (strEQ(name, "SHARE")) return CURLSHOPT_SHARE;
break;
case 'T':
case 'U':
if (strEQ(name, "UNLOCKFUNC")) return CURLSHOPT_UNLOCKFUNC;
if (strEQ(name, "UNSHARE")) return CURLSHOPT_UNSHARE;
if (strEQ(name, "USERDATA")) return CURLSHOPT_USERDATA;
break;
case 'V':
case 'W':
case 'X':
case 'Y':
case 'Z':
break;
};
}
if (strncmp(name, "CURL_LOCK_DATA_", 15) == 0) {
name += 15;
switch (*name) {
case 'A':
case 'B':
case 'C':
if (strEQ(name, "CONNECT")) return CURL_LOCK_DATA_CONNECT;
if (strEQ(name, "COOKIE")) return CURL_LOCK_DATA_COOKIE;
break;
case 'D':
if (strEQ(name, "DNS")) return CURL_LOCK_DATA_DNS;
break;
case 'E':
case 'F':
case 'G':
case 'H':
case 'I':
case 'J':
case 'K':
case 'L':
if (strEQ(name, "LAST")) return CURL_LOCK_DATA_LAST;
break;
case 'M':
case 'N':
if (strEQ(name, "NONE")) return CURL_LOCK_DATA_NONE;
break;
case 'O':
case 'P':
case 'Q':
case 'R':
case 'S':
if (strEQ(name, "SHARE")) return CURL_LOCK_DATA_SHARE;
if (strEQ(name, "SSL_SESSION")) return CURL_LOCK_DATA_SSL_SESSION;
break;
case 'T':
case 'U':
case 'V':
case 'W':
case 'X':
case 'Y':
case 'Z':
break;
};
}
if (strncmp(name, "CURL_NETRC_", 11) == 0) {
name += 11;
switch (*name) {
case 'A':
case 'B':
case 'C':
case 'D':
case 'E':
case 'F':
case 'G':
case 'H':
case 'I':
if (strEQ(name, "IGNORED")) return CURL_NETRC_IGNORED;
break;
case 'J':
case 'K':
case 'L':
if (strEQ(name, "LAST")) return CURL_NETRC_LAST;
break;
case 'M':
case 'N':
case 'O':
if (strEQ(name, "OPTIONAL")) return CURL_NETRC_OPTIONAL;
break;
case 'P':
case 'Q':
case 'R':
if (strEQ(name, "REQUIRED")) return CURL_NETRC_REQUIRED;
break;
case 'S':
case 'T':
case 'U':
case 'V':
case 'W':
case 'X':
case 'Y':
case 'Z':
break;
};
}
errno = EINVAL;
return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment