Guest User

Untitled

a guest
Jun 17th, 2018
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 30.80 KB | None | 0 0
  1. static int
  2. constant(const char *name)
  3. {
  4. errno = 0;
  5.  
  6. if (strncmp(name, "CURLE_", 6) == 0) {
  7. name += 6;
  8. switch (*name) {
  9. case 'A':
  10. if (strEQ(name, "ABORTED_BY_CALLBACK")) return CURLE_ABORTED_BY_CALLBACK;
  11. if (strEQ(name, "AGAIN")) return CURLE_AGAIN;
  12. break;
  13. case 'B':
  14. if (strEQ(name, "BAD_CONTENT_ENCODING")) return CURLE_BAD_CONTENT_ENCODING;
  15. if (strEQ(name, "BAD_DOWNLOAD_RESUME")) return CURLE_BAD_DOWNLOAD_RESUME;
  16. if (strEQ(name, "BAD_FUNCTION_ARGUMENT")) return CURLE_BAD_FUNCTION_ARGUMENT;
  17. break;
  18. case 'C':
  19. if (strEQ(name, "CONV_FAILED")) return CURLE_CONV_FAILED;
  20. if (strEQ(name, "CONV_REQD")) return CURLE_CONV_REQD;
  21. if (strEQ(name, "COULDNT_CONNECT")) return CURLE_COULDNT_CONNECT;
  22. if (strEQ(name, "COULDNT_RESOLVE_HOST")) return CURLE_COULDNT_RESOLVE_HOST;
  23. if (strEQ(name, "COULDNT_RESOLVE_PROXY")) return CURLE_COULDNT_RESOLVE_PROXY;
  24. break;
  25. case 'D':
  26. case 'E':
  27. case 'F':
  28. if (strEQ(name, "FAILED_INIT")) return CURLE_FAILED_INIT;
  29. if (strEQ(name, "FILESIZE_EXCEEDED")) return CURLE_FILESIZE_EXCEEDED;
  30. if (strEQ(name, "FILE_COULDNT_READ_FILE")) return CURLE_FILE_COULDNT_READ_FILE;
  31. if (strEQ(name, "FTP_CANT_GET_HOST")) return CURLE_FTP_CANT_GET_HOST;
  32. if (strEQ(name, "FTP_COULDNT_RETR_FILE")) return CURLE_FTP_COULDNT_RETR_FILE;
  33. if (strEQ(name, "FTP_COULDNT_SET_TYPE")) return CURLE_FTP_COULDNT_SET_TYPE;
  34. if (strEQ(name, "FTP_COULDNT_USE_REST")) return CURLE_FTP_COULDNT_USE_REST;
  35. if (strEQ(name, "FTP_PORT_FAILED")) return CURLE_FTP_PORT_FAILED;
  36. if (strEQ(name, "FTP_PRET_FAILED")) return CURLE_FTP_PRET_FAILED;
  37. if (strEQ(name, "FTP_WEIRD_227_FORMAT")) return CURLE_FTP_WEIRD_227_FORMAT;
  38. if (strEQ(name, "FTP_WEIRD_PASS_REPLY")) return CURLE_FTP_WEIRD_PASS_REPLY;
  39. if (strEQ(name, "FTP_WEIRD_PASV_REPLY")) return CURLE_FTP_WEIRD_PASV_REPLY;
  40. if (strEQ(name, "FTP_WEIRD_SERVER_REPLY")) return CURLE_FTP_WEIRD_SERVER_REPLY;
  41. if (strEQ(name, "FUNCTION_NOT_FOUND")) return CURLE_FUNCTION_NOT_FOUND;
  42. break;
  43. case 'G':
  44. if (strEQ(name, "GOT_NOTHING")) return CURLE_GOT_NOTHING;
  45. break;
  46. case 'H':
  47. if (strEQ(name, "HTTP_POST_ERROR")) return CURLE_HTTP_POST_ERROR;
  48. if (strEQ(name, "HTTP_RETURNED_ERROR")) return CURLE_HTTP_RETURNED_ERROR;
  49. break;
  50. case 'I':
  51. if (strEQ(name, "INTERFACE_FAILED")) return CURLE_INTERFACE_FAILED;
  52. break;
  53. case 'J':
  54. case 'K':
  55. case 'L':
  56. if (strEQ(name, "LDAP_CANNOT_BIND")) return CURLE_LDAP_CANNOT_BIND;
  57. if (strEQ(name, "LDAP_INVALID_URL")) return CURLE_LDAP_INVALID_URL;
  58. if (strEQ(name, "LDAP_SEARCH_FAILED")) return CURLE_LDAP_SEARCH_FAILED;
  59. if (strEQ(name, "LOGIN_DENIED")) return CURLE_LOGIN_DENIED;
  60. break;
  61. case 'M':
  62. case 'N':
  63. case 'O':
  64. if (strEQ(name, "OBSOLETE10")) return CURLE_OBSOLETE10;
  65. if (strEQ(name, "OBSOLETE12")) return CURLE_OBSOLETE12;
  66. if (strEQ(name, "OBSOLETE16")) return CURLE_OBSOLETE16;
  67. if (strEQ(name, "OBSOLETE20")) return CURLE_OBSOLETE20;
  68. if (strEQ(name, "OBSOLETE24")) return CURLE_OBSOLETE24;
  69. if (strEQ(name, "OBSOLETE29")) return CURLE_OBSOLETE29;
  70. if (strEQ(name, "OBSOLETE32")) return CURLE_OBSOLETE32;
  71. if (strEQ(name, "OBSOLETE4")) return CURLE_OBSOLETE4;
  72. if (strEQ(name, "OBSOLETE40")) return CURLE_OBSOLETE40;
  73. if (strEQ(name, "OBSOLETE44")) return CURLE_OBSOLETE44;
  74. if (strEQ(name, "OBSOLETE46")) return CURLE_OBSOLETE46;
  75. if (strEQ(name, "OBSOLETE50")) return CURLE_OBSOLETE50;
  76. if (strEQ(name, "OBSOLETE57")) return CURLE_OBSOLETE57;
  77. if (strEQ(name, "OK")) return CURLE_OK;
  78. if (strEQ(name, "OPERATION_TIMEDOUT")) return CURLE_OPERATION_TIMEDOUT;
  79. if (strEQ(name, "OUT_OF_MEMORY")) return CURLE_OUT_OF_MEMORY;
  80. break;
  81. case 'P':
  82. if (strEQ(name, "PARTIAL_FILE")) return CURLE_PARTIAL_FILE;
  83. if (strEQ(name, "PEER_FAILED_VERIFICATION")) return CURLE_PEER_FAILED_VERIFICATION;
  84. break;
  85. case 'Q':
  86. if (strEQ(name, "QUOTE_ERROR")) return CURLE_QUOTE_ERROR;
  87. break;
  88. case 'R':
  89. if (strEQ(name, "RANGE_ERROR")) return CURLE_RANGE_ERROR;
  90. if (strEQ(name, "READ_ERROR")) return CURLE_READ_ERROR;
  91. if (strEQ(name, "RECV_ERROR")) return CURLE_RECV_ERROR;
  92. if (strEQ(name, "REMOTE_ACCESS_DENIED")) return CURLE_REMOTE_ACCESS_DENIED;
  93. if (strEQ(name, "REMOTE_DISK_FULL")) return CURLE_REMOTE_DISK_FULL;
  94. if (strEQ(name, "REMOTE_FILE_EXISTS")) return CURLE_REMOTE_FILE_EXISTS;
  95. if (strEQ(name, "REMOTE_FILE_NOT_FOUND")) return CURLE_REMOTE_FILE_NOT_FOUND;
  96. if (strEQ(name, "RTSP_CSEQ_ERROR")) return CURLE_RTSP_CSEQ_ERROR;
  97. if (strEQ(name, "RTSP_SESSION_ERROR")) return CURLE_RTSP_SESSION_ERROR;
  98. break;
  99. case 'S':
  100. if (strEQ(name, "SEND_ERROR")) return CURLE_SEND_ERROR;
  101. if (strEQ(name, "SEND_FAIL_REWIND")) return CURLE_SEND_FAIL_REWIND;
  102. if (strEQ(name, "SSH")) return CURLE_SSH;
  103. if (strEQ(name, "SSL_CACERT")) return CURLE_SSL_CACERT;
  104. if (strEQ(name, "SSL_CACERT_BADFILE")) return CURLE_SSL_CACERT_BADFILE;
  105. if (strEQ(name, "SSL_CERTPROBLEM")) return CURLE_SSL_CERTPROBLEM;
  106. if (strEQ(name, "SSL_CIPHER")) return CURLE_SSL_CIPHER;
  107. if (strEQ(name, "SSL_CONNECT_ERROR")) return CURLE_SSL_CONNECT_ERROR;
  108. if (strEQ(name, "SSL_CRL_BADFILE")) return CURLE_SSL_CRL_BADFILE;
  109. if (strEQ(name, "SSL_ENGINE_INITFAILED")) return CURLE_SSL_ENGINE_INITFAILED;
  110. if (strEQ(name, "SSL_ENGINE_NOTFOUND")) return CURLE_SSL_ENGINE_NOTFOUND;
  111. if (strEQ(name, "SSL_ENGINE_SETFAILED")) return CURLE_SSL_ENGINE_SETFAILED;
  112. if (strEQ(name, "SSL_ISSUER_ERROR")) return CURLE_SSL_ISSUER_ERROR;
  113. if (strEQ(name, "SSL_SHUTDOWN_FAILED")) return CURLE_SSL_SHUTDOWN_FAILED;
  114. break;
  115. case 'T':
  116. if (strEQ(name, "TELNET_OPTION_SYNTAX")) return CURLE_TELNET_OPTION_SYNTAX;
  117. if (strEQ(name, "TFTP_ILLEGAL")) return CURLE_TFTP_ILLEGAL;
  118. if (strEQ(name, "TFTP_NOSUCHUSER")) return CURLE_TFTP_NOSUCHUSER;
  119. if (strEQ(name, "TFTP_NOTFOUND")) return CURLE_TFTP_NOTFOUND;
  120. if (strEQ(name, "TFTP_PERM")) return CURLE_TFTP_PERM;
  121. if (strEQ(name, "TFTP_UNKNOWNID")) return CURLE_TFTP_UNKNOWNID;
  122. if (strEQ(name, "TOO_MANY_REDIRECTS")) return CURLE_TOO_MANY_REDIRECTS;
  123. break;
  124. case 'U':
  125. if (strEQ(name, "UNKNOWN_TELNET_OPTION")) return CURLE_UNKNOWN_TELNET_OPTION;
  126. if (strEQ(name, "UNSUPPORTED_PROTOCOL")) return CURLE_UNSUPPORTED_PROTOCOL;
  127. if (strEQ(name, "UPLOAD_FAILED")) return CURLE_UPLOAD_FAILED;
  128. if (strEQ(name, "URL_MALFORMAT")) return CURLE_URL_MALFORMAT;
  129. if (strEQ(name, "USE_SSL_FAILED")) return CURLE_USE_SSL_FAILED;
  130. break;
  131. case 'V':
  132. case 'W':
  133. if (strEQ(name, "WRITE_ERROR")) return CURLE_WRITE_ERROR;
  134. break;
  135. case 'X':
  136. case 'Y':
  137. case 'Z':
  138. break;
  139. };
  140. }
  141.  
  142. if (strncmp(name, "CURLINFO_", 9) == 0) {
  143. name += 9;
  144. switch (*name) {
  145. case 'A':
  146. if (strEQ(name, "APPCONNECT_TIME")) return CURLINFO_APPCONNECT_TIME;
  147. break;
  148. case 'B':
  149. case 'C':
  150. if (strEQ(name, "CERTINFO")) return CURLINFO_CERTINFO;
  151. if (strEQ(name, "CONDITION_UNMET")) return CURLINFO_CONDITION_UNMET;
  152. if (strEQ(name, "CONNECT_TIME")) return CURLINFO_CONNECT_TIME;
  153. if (strEQ(name, "CONTENT_LENGTH_DOWNLOAD")) return CURLINFO_CONTENT_LENGTH_DOWNLOAD;
  154. if (strEQ(name, "CONTENT_LENGTH_UPLOAD")) return CURLINFO_CONTENT_LENGTH_UPLOAD;
  155. if (strEQ(name, "CONTENT_TYPE")) return CURLINFO_CONTENT_TYPE;
  156. if (strEQ(name, "COOKIELIST")) return CURLINFO_COOKIELIST;
  157. break;
  158. case 'D':
  159. if (strEQ(name, "DATA_IN")) return CURLINFO_DATA_IN;
  160. if (strEQ(name, "DATA_OUT")) return CURLINFO_DATA_OUT;
  161. break;
  162. case 'E':
  163. if (strEQ(name, "EFFECTIVE_URL")) return CURLINFO_EFFECTIVE_URL;
  164. if (strEQ(name, "END")) return CURLINFO_END;
  165. break;
  166. case 'F':
  167. if (strEQ(name, "FILETIME")) return CURLINFO_FILETIME;
  168. if (strEQ(name, "FTP_ENTRY_PATH")) return CURLINFO_FTP_ENTRY_PATH;
  169. break;
  170. case 'G':
  171. case 'H':
  172. if (strEQ(name, "HEADER_IN")) return CURLINFO_HEADER_IN;
  173. if (strEQ(name, "HEADER_OUT")) return CURLINFO_HEADER_OUT;
  174. if (strEQ(name, "HEADER_SIZE")) return CURLINFO_HEADER_SIZE;
  175. if (strEQ(name, "HTTPAUTH_AVAIL")) return CURLINFO_HTTPAUTH_AVAIL;
  176. if (strEQ(name, "HTTP_CODE")) return CURLINFO_HTTP_CODE;
  177. if (strEQ(name, "HTTP_CONNECTCODE")) return CURLINFO_HTTP_CONNECTCODE;
  178. break;
  179. case 'I':
  180. case 'J':
  181. case 'K':
  182. case 'L':
  183. if (strEQ(name, "LASTONE")) return CURLINFO_LASTONE;
  184. if (strEQ(name, "LASTSOCKET")) return CURLINFO_LASTSOCKET;
  185. break;
  186. case 'M':
  187. case 'N':
  188. if (strEQ(name, "NAMELOOKUP_TIME")) return CURLINFO_NAMELOOKUP_TIME;
  189. if (strEQ(name, "NONE")) return CURLINFO_NONE;
  190. if (strEQ(name, "NUM_CONNECTS")) return CURLINFO_NUM_CONNECTS;
  191. break;
  192. case 'O':
  193. if (strEQ(name, "OS_ERRNO")) return CURLINFO_OS_ERRNO;
  194. break;
  195. case 'P':
  196. if (strEQ(name, "PRETRANSFER_TIME")) return CURLINFO_PRETRANSFER_TIME;
  197. if (strEQ(name, "PRIMARY_IP")) return CURLINFO_PRIMARY_IP;
  198. if (strEQ(name, "PRIVATE")) return CURLINFO_PRIVATE;
  199. if (strEQ(name, "PROXYAUTH_AVAIL")) return CURLINFO_PROXYAUTH_AVAIL;
  200. break;
  201. case 'Q':
  202. case 'R':
  203. if (strEQ(name, "REDIRECT_COUNT")) return CURLINFO_REDIRECT_COUNT;
  204. if (strEQ(name, "REDIRECT_TIME")) return CURLINFO_REDIRECT_TIME;
  205. if (strEQ(name, "REDIRECT_URL")) return CURLINFO_REDIRECT_URL;
  206. if (strEQ(name, "REQUEST_SIZE")) return CURLINFO_REQUEST_SIZE;
  207. if (strEQ(name, "RESPONSE_CODE")) return CURLINFO_RESPONSE_CODE;
  208. if (strEQ(name, "RTSP_CLIENT_CSEQ")) return CURLINFO_RTSP_CLIENT_CSEQ;
  209. if (strEQ(name, "RTSP_CSEQ_RECV")) return CURLINFO_RTSP_CSEQ_RECV;
  210. if (strEQ(name, "RTSP_SERVER_CSEQ")) return CURLINFO_RTSP_SERVER_CSEQ;
  211. if (strEQ(name, "RTSP_SESSION_ID")) return CURLINFO_RTSP_SESSION_ID;
  212. break;
  213. case 'S':
  214. if (strEQ(name, "SIZE_DOWNLOAD")) return CURLINFO_SIZE_DOWNLOAD;
  215. if (strEQ(name, "SIZE_UPLOAD")) return CURLINFO_SIZE_UPLOAD;
  216. if (strEQ(name, "SPEED_DOWNLOAD")) return CURLINFO_SPEED_DOWNLOAD;
  217. if (strEQ(name, "SPEED_UPLOAD")) return CURLINFO_SPEED_UPLOAD;
  218. if (strEQ(name, "SSL_DATA_IN")) return CURLINFO_SSL_DATA_IN;
  219. if (strEQ(name, "SSL_DATA_OUT")) return CURLINFO_SSL_DATA_OUT;
  220. if (strEQ(name, "SSL_ENGINES")) return CURLINFO_SSL_ENGINES;
  221. if (strEQ(name, "SSL_VERIFYRESULT")) return CURLINFO_SSL_VERIFYRESULT;
  222. if (strEQ(name, "STARTTRANSFER_TIME")) return CURLINFO_STARTTRANSFER_TIME;
  223. break;
  224. case 'T':
  225. if (strEQ(name, "TEXT")) return CURLINFO_TEXT;
  226. if (strEQ(name, "TOTAL_TIME")) return CURLINFO_TOTAL_TIME;
  227. break;
  228. case 'U':
  229. case 'V':
  230. case 'W':
  231. case 'X':
  232. case 'Y':
  233. case 'Z':
  234. break;
  235. };
  236. }
  237.  
  238. if (strncmp(name, "CURLOPT_", 8) == 0) {
  239. name += 8;
  240. switch (*name) {
  241. case 'A':
  242. if (strEQ(name, "ADDRESS_SCOPE")) return CURLOPT_ADDRESS_SCOPE;
  243. if (strEQ(name, "APPEND")) return CURLOPT_APPEND;
  244. if (strEQ(name, "AUTOREFERER")) return CURLOPT_AUTOREFERER;
  245. break;
  246. case 'B':
  247. if (strEQ(name, "BUFFERSIZE")) return CURLOPT_BUFFERSIZE;
  248. break;
  249. case 'C':
  250. if (strEQ(name, "CAINFO")) return CURLOPT_CAINFO;
  251. if (strEQ(name, "CAPATH")) return CURLOPT_CAPATH;
  252. if (strEQ(name, "CERTINFO")) return CURLOPT_CERTINFO;
  253. if (strEQ(name, "CLOSEPOLICY")) return CURLOPT_CLOSEPOLICY;
  254. if (strEQ(name, "CONNECTTIMEOUT")) return CURLOPT_CONNECTTIMEOUT;
  255. if (strEQ(name, "CONNECTTIMEOUT_MS")) return CURLOPT_CONNECTTIMEOUT_MS;
  256. if (strEQ(name, "CONNECT_ONLY")) return CURLOPT_CONNECT_ONLY;
  257. if (strEQ(name, "CONV_FROM_NETWORK_FUNCTION")) return CURLOPT_CONV_FROM_NETWORK_FUNCTION;
  258. if (strEQ(name, "CONV_FROM_UTF8_FUNCTION")) return CURLOPT_CONV_FROM_UTF8_FUNCTION;
  259. if (strEQ(name, "CONV_TO_NETWORK_FUNCTION")) return CURLOPT_CONV_TO_NETWORK_FUNCTION;
  260. if (strEQ(name, "COOKIE")) return CURLOPT_COOKIE;
  261. if (strEQ(name, "COOKIEFILE")) return CURLOPT_COOKIEFILE;
  262. if (strEQ(name, "COOKIEJAR")) return CURLOPT_COOKIEJAR;
  263. if (strEQ(name, "COOKIELIST")) return CURLOPT_COOKIELIST;
  264. if (strEQ(name, "COOKIESESSION")) return CURLOPT_COOKIESESSION;
  265. if (strEQ(name, "COPYPOSTFIELDS")) return CURLOPT_COPYPOSTFIELDS;
  266. if (strEQ(name, "CRLF")) return CURLOPT_CRLF;
  267. if (strEQ(name, "CRLFILE")) return CURLOPT_CRLFILE;
  268. if (strEQ(name, "CUSTOMREQUEST")) return CURLOPT_CUSTOMREQUEST;
  269. break;
  270. case 'D':
  271. if (strEQ(name, "DEBUGDATA")) return CURLOPT_DEBUGDATA;
  272. if (strEQ(name, "DEBUGFUNCTION")) return CURLOPT_DEBUGFUNCTION;
  273. if (strEQ(name, "DIRLISTONLY")) return CURLOPT_DIRLISTONLY;
  274. if (strEQ(name, "DNS_CACHE_TIMEOUT")) return CURLOPT_DNS_CACHE_TIMEOUT;
  275. if (strEQ(name, "DNS_USE_GLOBAL_CACHE")) return CURLOPT_DNS_USE_GLOBAL_CACHE;
  276. break;
  277. case 'E':
  278. if (strEQ(name, "EGDSOCKET")) return CURLOPT_EGDSOCKET;
  279. if (strEQ(name, "ENCODING")) return CURLOPT_ENCODING;
  280. if (strEQ(name, "ERRORBUFFER")) return CURLOPT_ERRORBUFFER;
  281. break;
  282. case 'F':
  283. if (strEQ(name, "FAILONERROR")) return CURLOPT_FAILONERROR;
  284. if (strEQ(name, "FILE")) return CURLOPT_FILE;
  285. if (strEQ(name, "FILETIME")) return CURLOPT_FILETIME;
  286. if (strEQ(name, "FOLLOWLOCATION")) return CURLOPT_FOLLOWLOCATION;
  287. if (strEQ(name, "FORBID_REUSE")) return CURLOPT_FORBID_REUSE;
  288. if (strEQ(name, "FRESH_CONNECT")) return CURLOPT_FRESH_CONNECT;
  289. if (strEQ(name, "FTPAPPEND")) return CURLOPT_APPEND;
  290. if (strEQ(name, "FTPLISTONLY")) return CURLOPT_DIRLISTONLY;
  291. if (strEQ(name, "FTPPORT")) return CURLOPT_FTPPORT;
  292. if (strEQ(name, "FTPSSLAUTH")) return CURLOPT_FTPSSLAUTH;
  293. if (strEQ(name, "FTP_ACCOUNT")) return CURLOPT_FTP_ACCOUNT;
  294. if (strEQ(name, "FTP_ALTERNATIVE_TO_USER")) return CURLOPT_FTP_ALTERNATIVE_TO_USER;
  295. if (strEQ(name, "FTP_CREATE_MISSING_DIRS")) return CURLOPT_FTP_CREATE_MISSING_DIRS;
  296. if (strEQ(name, "FTP_FILEMETHOD")) return CURLOPT_FTP_FILEMETHOD;
  297. if (strEQ(name, "FTP_RESPONSE_TIMEOUT")) return CURLOPT_FTP_RESPONSE_TIMEOUT;
  298. if (strEQ(name, "FTP_SKIP_PASV_IP")) return CURLOPT_FTP_SKIP_PASV_IP;
  299. if (strEQ(name, "FTP_SSL")) return CURLOPT_USE_SSL;
  300. if (strEQ(name, "FTP_SSL_CCC")) return CURLOPT_FTP_SSL_CCC;
  301. if (strEQ(name, "FTP_USE_EPRT")) return CURLOPT_FTP_USE_EPRT;
  302. if (strEQ(name, "FTP_USE_EPSV")) return CURLOPT_FTP_USE_EPSV;
  303. if (strEQ(name, "FTP_USE_PRET")) return CURLOPT_FTP_USE_PRET;
  304. break;
  305. case 'G':
  306. case 'H':
  307. if (strEQ(name, "HEADER")) return CURLOPT_HEADER;
  308. if (strEQ(name, "HEADERDATA")) return CURLOPT_WRITEHEADER;
  309. if (strEQ(name, "HEADERFUNCTION")) return CURLOPT_HEADERFUNCTION;
  310. if (strEQ(name, "HTTP200ALIASES")) return CURLOPT_HTTP200ALIASES;
  311. if (strEQ(name, "HTTPAUTH")) return CURLOPT_HTTPAUTH;
  312. if (strEQ(name, "HTTPGET")) return CURLOPT_HTTPGET;
  313. if (strEQ(name, "HTTPHEADER")) return CURLOPT_HTTPHEADER;
  314. if (strEQ(name, "HTTPPOST")) return CURLOPT_HTTPPOST;
  315. if (strEQ(name, "HTTPPROXYTUNNEL")) return CURLOPT_HTTPPROXYTUNNEL;
  316. if (strEQ(name, "HTTP_CONTENT_DECODING")) return CURLOPT_HTTP_CONTENT_DECODING;
  317. if (strEQ(name, "HTTP_TRANSFER_DECODING")) return CURLOPT_HTTP_TRANSFER_DECODING;
  318. if (strEQ(name, "HTTP_VERSION")) return CURLOPT_HTTP_VERSION;
  319. break;
  320. case 'I':
  321. if (strEQ(name, "IGNORE_CONTENT_LENGTH")) return CURLOPT_IGNORE_CONTENT_LENGTH;
  322. if (strEQ(name, "INFILE")) return CURLOPT_INFILE;
  323. if (strEQ(name, "INFILESIZE")) return CURLOPT_INFILESIZE;
  324. if (strEQ(name, "INFILESIZE_LARGE")) return CURLOPT_INFILESIZE_LARGE;
  325. if (strEQ(name, "INTERFACE")) return CURLOPT_INTERFACE;
  326. if (strEQ(name, "INTERLEAVEDATA")) return CURLOPT_INTERLEAVEDATA;
  327. if (strEQ(name, "INTERLEAVEFUNCTION")) return CURLOPT_INTERLEAVEFUNCTION;
  328. if (strEQ(name, "IOCTLDATA")) return CURLOPT_IOCTLDATA;
  329. if (strEQ(name, "IOCTLFUNCTION")) return CURLOPT_IOCTLFUNCTION;
  330. if (strEQ(name, "IPRESOLVE")) return CURLOPT_IPRESOLVE;
  331. if (strEQ(name, "ISSUERCERT")) return CURLOPT_ISSUERCERT;
  332. break;
  333. case 'J':
  334. case 'K':
  335. if (strEQ(name, "KEYPASSWD")) return CURLOPT_KEYPASSWD;
  336. if (strEQ(name, "KRB4LEVEL")) return CURLOPT_KRBLEVEL;
  337. if (strEQ(name, "KRBLEVEL")) return CURLOPT_KRBLEVEL;
  338. break;
  339. case 'L':
  340. if (strEQ(name, "LOCALPORT")) return CURLOPT_LOCALPORT;
  341. if (strEQ(name, "LOCALPORTRANGE")) return CURLOPT_LOCALPORTRANGE;
  342. if (strEQ(name, "LOW_SPEED_LIMIT")) return CURLOPT_LOW_SPEED_LIMIT;
  343. if (strEQ(name, "LOW_SPEED_TIME")) return CURLOPT_LOW_SPEED_TIME;
  344. break;
  345. case 'M':
  346. if (strEQ(name, "MAIL_FROM")) return CURLOPT_MAIL_FROM;
  347. if (strEQ(name, "MAIL_RCPT")) return CURLOPT_MAIL_RCPT;
  348. if (strEQ(name, "MAXCONNECTS")) return CURLOPT_MAXCONNECTS;
  349. if (strEQ(name, "MAXFILESIZE")) return CURLOPT_MAXFILESIZE;
  350. if (strEQ(name, "MAXFILESIZE_LARGE")) return CURLOPT_MAXFILESIZE_LARGE;
  351. if (strEQ(name, "MAXREDIRS")) return CURLOPT_MAXREDIRS;
  352. if (strEQ(name, "MAX_RECV_SPEED_LARGE")) return CURLOPT_MAX_RECV_SPEED_LARGE;
  353. if (strEQ(name, "MAX_SEND_SPEED_LARGE")) return CURLOPT_MAX_SEND_SPEED_LARGE;
  354. break;
  355. case 'N':
  356. if (strEQ(name, "NETRC")) return CURLOPT_NETRC;
  357. if (strEQ(name, "NETRC_FILE")) return CURLOPT_NETRC_FILE;
  358. if (strEQ(name, "NEW_DIRECTORY_PERMS")) return CURLOPT_NEW_DIRECTORY_PERMS;
  359. if (strEQ(name, "NEW_FILE_PERMS")) return CURLOPT_NEW_FILE_PERMS;
  360. if (strEQ(name, "NOBODY")) return CURLOPT_NOBODY;
  361. if (strEQ(name, "NOPROGRESS")) return CURLOPT_NOPROGRESS;
  362. if (strEQ(name, "NOPROXY")) return CURLOPT_NOPROXY;
  363. if (strEQ(name, "NOSIGNAL")) return CURLOPT_NOSIGNAL;
  364. break;
  365. case 'O':
  366. if (strEQ(name, "OPENSOCKETDATA")) return CURLOPT_OPENSOCKETDATA;
  367. if (strEQ(name, "OPENSOCKETFUNCTION")) return CURLOPT_OPENSOCKETFUNCTION;
  368. break;
  369. case 'P':
  370. if (strEQ(name, "PASSWORD")) return CURLOPT_PASSWORD;
  371. if (strEQ(name, "PORT")) return CURLOPT_PORT;
  372. if (strEQ(name, "POST")) return CURLOPT_POST;
  373. if (strEQ(name, "POST301")) return CURLOPT_POSTREDIR;
  374. if (strEQ(name, "POSTFIELDS")) return CURLOPT_POSTFIELDS;
  375. if (strEQ(name, "POSTFIELDSIZE")) return CURLOPT_POSTFIELDSIZE;
  376. if (strEQ(name, "POSTFIELDSIZE_LARGE")) return CURLOPT_POSTFIELDSIZE_LARGE;
  377. if (strEQ(name, "POSTQUOTE")) return CURLOPT_POSTQUOTE;
  378. if (strEQ(name, "POSTREDIR")) return CURLOPT_POSTREDIR;
  379. if (strEQ(name, "PREQUOTE")) return CURLOPT_PREQUOTE;
  380. if (strEQ(name, "PRIVATE")) return CURLOPT_PRIVATE;
  381. if (strEQ(name, "PROGRESSDATA")) return CURLOPT_PROGRESSDATA;
  382. if (strEQ(name, "PROGRESSFUNCTION")) return CURLOPT_PROGRESSFUNCTION;
  383. if (strEQ(name, "PROTOCOLS")) return CURLOPT_PROTOCOLS;
  384. if (strEQ(name, "PROXY")) return CURLOPT_PROXY;
  385. if (strEQ(name, "PROXYAUTH")) return CURLOPT_PROXYAUTH;
  386. if (strEQ(name, "PROXYPASSWORD")) return CURLOPT_PROXYPASSWORD;
  387. if (strEQ(name, "PROXYPORT")) return CURLOPT_PROXYPORT;
  388. if (strEQ(name, "PROXYTYPE")) return CURLOPT_PROXYTYPE;
  389. if (strEQ(name, "PROXYUSERNAME")) return CURLOPT_PROXYUSERNAME;
  390. if (strEQ(name, "PROXYUSERPWD")) return CURLOPT_PROXYUSERPWD;
  391. if (strEQ(name, "PROXY_TRANSFER_MODE")) return CURLOPT_PROXY_TRANSFER_MODE;
  392. if (strEQ(name, "PUT")) return CURLOPT_PUT;
  393. break;
  394. case 'Q':
  395. if (strEQ(name, "QUOTE")) return CURLOPT_QUOTE;
  396. break;
  397. case 'R':
  398. if (strEQ(name, "RANDOM_FILE")) return CURLOPT_RANDOM_FILE;
  399. if (strEQ(name, "RANGE")) return CURLOPT_RANGE;
  400. if (strEQ(name, "READDATA")) return CURLOPT_INFILE;
  401. if (strEQ(name, "READFUNCTION")) return CURLOPT_READFUNCTION;
  402. if (strEQ(name, "REDIR_PROTOCOLS")) return CURLOPT_REDIR_PROTOCOLS;
  403. if (strEQ(name, "REFERER")) return CURLOPT_REFERER;
  404. if (strEQ(name, "RESUME_FROM")) return CURLOPT_RESUME_FROM;
  405. if (strEQ(name, "RESUME_FROM_LARGE")) return CURLOPT_RESUME_FROM_LARGE;
  406. if (strEQ(name, "RTSPHEADER")) return CURLOPT_HTTPHEADER;
  407. if (strEQ(name, "RTSP_CLIENT_CSEQ")) return CURLOPT_RTSP_CLIENT_CSEQ;
  408. if (strEQ(name, "RTSP_REQUEST")) return CURLOPT_RTSP_REQUEST;
  409. if (strEQ(name, "RTSP_SERVER_CSEQ")) return CURLOPT_RTSP_SERVER_CSEQ;
  410. if (strEQ(name, "RTSP_SESSION_ID")) return CURLOPT_RTSP_SESSION_ID;
  411. if (strEQ(name, "RTSP_STREAM_URI")) return CURLOPT_RTSP_STREAM_URI;
  412. if (strEQ(name, "RTSP_TRANSPORT")) return CURLOPT_RTSP_TRANSPORT;
  413. break;
  414. case 'S':
  415. if (strEQ(name, "SEEKDATA")) return CURLOPT_SEEKDATA;
  416. if (strEQ(name, "SEEKFUNCTION")) return CURLOPT_SEEKFUNCTION;
  417. if (strEQ(name, "SERVER_RESPONSE_TIMEOUT")) return CURLOPT_FTP_RESPONSE_TIMEOUT;
  418. if (strEQ(name, "SHARE")) return CURLOPT_SHARE;
  419. if (strEQ(name, "SOCKOPTDATA")) return CURLOPT_SOCKOPTDATA;
  420. if (strEQ(name, "SOCKOPTFUNCTION")) return CURLOPT_SOCKOPTFUNCTION;
  421. if (strEQ(name, "SOCKS5_GSSAPI_NEC")) return CURLOPT_SOCKS5_GSSAPI_NEC;
  422. if (strEQ(name, "SOCKS5_GSSAPI_SERVICE")) return CURLOPT_SOCKS5_GSSAPI_SERVICE;
  423. if (strEQ(name, "SSH_AUTH_TYPES")) return CURLOPT_SSH_AUTH_TYPES;
  424. if (strEQ(name, "SSH_HOST_PUBLIC_KEY_MD5")) return CURLOPT_SSH_HOST_PUBLIC_KEY_MD5;
  425. if (strEQ(name, "SSH_KEYDATA")) return CURLOPT_SSH_KEYDATA;
  426. if (strEQ(name, "SSH_KEYFUNCTION")) return CURLOPT_SSH_KEYFUNCTION;
  427. if (strEQ(name, "SSH_KNOWNHOSTS")) return CURLOPT_SSH_KNOWNHOSTS;
  428. if (strEQ(name, "SSH_PRIVATE_KEYFILE")) return CURLOPT_SSH_PRIVATE_KEYFILE;
  429. if (strEQ(name, "SSH_PUBLIC_KEYFILE")) return CURLOPT_SSH_PUBLIC_KEYFILE;
  430. if (strEQ(name, "SSLCERT")) return CURLOPT_SSLCERT;
  431. if (strEQ(name, "SSLCERTPASSWD")) return CURLOPT_KEYPASSWD;
  432. if (strEQ(name, "SSLCERTTYPE")) return CURLOPT_SSLCERTTYPE;
  433. if (strEQ(name, "SSLENGINE")) return CURLOPT_SSLENGINE;
  434. if (strEQ(name, "SSLENGINE_DEFAULT")) return CURLOPT_SSLENGINE_DEFAULT;
  435. if (strEQ(name, "SSLKEY")) return CURLOPT_SSLKEY;
  436. if (strEQ(name, "SSLKEYPASSWD")) return CURLOPT_KEYPASSWD;
  437. if (strEQ(name, "SSLKEYTYPE")) return CURLOPT_SSLKEYTYPE;
  438. if (strEQ(name, "SSLVERSION")) return CURLOPT_SSLVERSION;
  439. if (strEQ(name, "SSL_CIPHER_LIST")) return CURLOPT_SSL_CIPHER_LIST;
  440. if (strEQ(name, "SSL_CTX_DATA")) return CURLOPT_SSL_CTX_DATA;
  441. if (strEQ(name, "SSL_CTX_FUNCTION")) return CURLOPT_SSL_CTX_FUNCTION;
  442. if (strEQ(name, "SSL_SESSIONID_CACHE")) return CURLOPT_SSL_SESSIONID_CACHE;
  443. if (strEQ(name, "SSL_VERIFYHOST")) return CURLOPT_SSL_VERIFYHOST;
  444. if (strEQ(name, "SSL_VERIFYPEER")) return CURLOPT_SSL_VERIFYPEER;
  445. if (strEQ(name, "STDERR")) return CURLOPT_STDERR;
  446. break;
  447. case 'T':
  448. if (strEQ(name, "TCP_NODELAY")) return CURLOPT_TCP_NODELAY;
  449. if (strEQ(name, "TELNETOPTIONS")) return CURLOPT_TELNETOPTIONS;
  450. if (strEQ(name, "TFTP_BLKSIZE")) return CURLOPT_TFTP_BLKSIZE;
  451. if (strEQ(name, "TIMECONDITION")) return CURLOPT_TIMECONDITION;
  452. if (strEQ(name, "TIMEOUT")) return CURLOPT_TIMEOUT;
  453. if (strEQ(name, "TIMEOUT_MS")) return CURLOPT_TIMEOUT_MS;
  454. if (strEQ(name, "TIMEVALUE")) return CURLOPT_TIMEVALUE;
  455. if (strEQ(name, "TRANSFERTEXT")) return CURLOPT_TRANSFERTEXT;
  456. break;
  457. case 'U':
  458. if (strEQ(name, "UNRESTRICTED_AUTH")) return CURLOPT_UNRESTRICTED_AUTH;
  459. if (strEQ(name, "UPLOAD")) return CURLOPT_UPLOAD;
  460. if (strEQ(name, "URL")) return CURLOPT_URL;
  461. if (strEQ(name, "USERAGENT")) return CURLOPT_USERAGENT;
  462. if (strEQ(name, "USERNAME")) return CURLOPT_USERNAME;
  463. if (strEQ(name, "USERPWD")) return CURLOPT_USERPWD;
  464. if (strEQ(name, "USE_SSL")) return CURLOPT_USE_SSL;
  465. break;
  466. case 'V':
  467. if (strEQ(name, "VERBOSE")) return CURLOPT_VERBOSE;
  468. break;
  469. case 'W':
  470. if (strEQ(name, "WRITEDATA")) return CURLOPT_FILE;
  471. if (strEQ(name, "WRITEFUNCTION")) return CURLOPT_WRITEFUNCTION;
  472. if (strEQ(name, "WRITEHEADER")) return CURLOPT_WRITEHEADER;
  473. if (strEQ(name, "WRITEINFO")) return CURLOPT_WRITEINFO;
  474. break;
  475. case 'X':
  476. case 'Y':
  477. case 'Z':
  478. break;
  479. };
  480. }
  481.  
  482. if (strncmp(name, "CURLPROXY_", 10) == 0) {
  483. name += 10;
  484. switch (*name) {
  485. case 'A':
  486. case 'B':
  487. case 'C':
  488. case 'D':
  489. case 'E':
  490. case 'F':
  491. case 'G':
  492. case 'H':
  493. if (strEQ(name, "HTTP")) return CURLPROXY_HTTP;
  494. if (strEQ(name, "HTTP_1_0")) return CURLPROXY_HTTP_1_0;
  495. break;
  496. case 'I':
  497. case 'J':
  498. case 'K':
  499. case 'L':
  500. case 'M':
  501. case 'N':
  502. case 'O':
  503. case 'P':
  504. case 'Q':
  505. case 'R':
  506. case 'S':
  507. if (strEQ(name, "SOCKS4")) return CURLPROXY_SOCKS4;
  508. if (strEQ(name, "SOCKS4A")) return CURLPROXY_SOCKS4A;
  509. if (strEQ(name, "SOCKS5")) return CURLPROXY_SOCKS5;
  510. if (strEQ(name, "SOCKS5_HOSTNAME")) return CURLPROXY_SOCKS5_HOSTNAME;
  511. break;
  512. case 'T':
  513. case 'U':
  514. case 'V':
  515. case 'W':
  516. case 'X':
  517. case 'Y':
  518. case 'Z':
  519. break;
  520. };
  521. }
  522.  
  523. if (strncmp(name, "CURLSHOPT_", 10) == 0) {
  524. name += 10;
  525. switch (*name) {
  526. case 'A':
  527. case 'B':
  528. case 'C':
  529. case 'D':
  530. case 'E':
  531. case 'F':
  532. case 'G':
  533. case 'H':
  534. case 'I':
  535. case 'J':
  536. case 'K':
  537. case 'L':
  538. if (strEQ(name, "LAST")) return CURLSHOPT_LAST;
  539. if (strEQ(name, "LOCKFUNC")) return CURLSHOPT_LOCKFUNC;
  540. break;
  541. case 'M':
  542. case 'N':
  543. if (strEQ(name, "NONE")) return CURLSHOPT_NONE;
  544. break;
  545. case 'O':
  546. case 'P':
  547. case 'Q':
  548. case 'R':
  549. case 'S':
  550. if (strEQ(name, "SHARE")) return CURLSHOPT_SHARE;
  551. break;
  552. case 'T':
  553. case 'U':
  554. if (strEQ(name, "UNLOCKFUNC")) return CURLSHOPT_UNLOCKFUNC;
  555. if (strEQ(name, "UNSHARE")) return CURLSHOPT_UNSHARE;
  556. if (strEQ(name, "USERDATA")) return CURLSHOPT_USERDATA;
  557. break;
  558. case 'V':
  559. case 'W':
  560. case 'X':
  561. case 'Y':
  562. case 'Z':
  563. break;
  564. };
  565. }
  566.  
  567. if (strncmp(name, "CURL_LOCK_DATA_", 15) == 0) {
  568. name += 15;
  569. switch (*name) {
  570. case 'A':
  571. case 'B':
  572. case 'C':
  573. if (strEQ(name, "CONNECT")) return CURL_LOCK_DATA_CONNECT;
  574. if (strEQ(name, "COOKIE")) return CURL_LOCK_DATA_COOKIE;
  575. break;
  576. case 'D':
  577. if (strEQ(name, "DNS")) return CURL_LOCK_DATA_DNS;
  578. break;
  579. case 'E':
  580. case 'F':
  581. case 'G':
  582. case 'H':
  583. case 'I':
  584. case 'J':
  585. case 'K':
  586. case 'L':
  587. if (strEQ(name, "LAST")) return CURL_LOCK_DATA_LAST;
  588. break;
  589. case 'M':
  590. case 'N':
  591. if (strEQ(name, "NONE")) return CURL_LOCK_DATA_NONE;
  592. break;
  593. case 'O':
  594. case 'P':
  595. case 'Q':
  596. case 'R':
  597. case 'S':
  598. if (strEQ(name, "SHARE")) return CURL_LOCK_DATA_SHARE;
  599. if (strEQ(name, "SSL_SESSION")) return CURL_LOCK_DATA_SSL_SESSION;
  600. break;
  601. case 'T':
  602. case 'U':
  603. case 'V':
  604. case 'W':
  605. case 'X':
  606. case 'Y':
  607. case 'Z':
  608. break;
  609. };
  610. }
  611.  
  612. if (strncmp(name, "CURL_NETRC_", 11) == 0) {
  613. name += 11;
  614. switch (*name) {
  615. case 'A':
  616. case 'B':
  617. case 'C':
  618. case 'D':
  619. case 'E':
  620. case 'F':
  621. case 'G':
  622. case 'H':
  623. case 'I':
  624. if (strEQ(name, "IGNORED")) return CURL_NETRC_IGNORED;
  625. break;
  626. case 'J':
  627. case 'K':
  628. case 'L':
  629. if (strEQ(name, "LAST")) return CURL_NETRC_LAST;
  630. break;
  631. case 'M':
  632. case 'N':
  633. case 'O':
  634. if (strEQ(name, "OPTIONAL")) return CURL_NETRC_OPTIONAL;
  635. break;
  636. case 'P':
  637. case 'Q':
  638. case 'R':
  639. if (strEQ(name, "REQUIRED")) return CURL_NETRC_REQUIRED;
  640. break;
  641. case 'S':
  642. case 'T':
  643. case 'U':
  644. case 'V':
  645. case 'W':
  646. case 'X':
  647. case 'Y':
  648. case 'Z':
  649. break;
  650. };
  651. }
  652.  
  653. errno = EINVAL;
  654. return 0;
  655. }
Add Comment
Please, Sign In to add comment