int test(char *URL) { int res = 0; CURLcode easyret; CURLMcode multiret; CURLSHcode shareret; (void)URL; curl_easy_strerror(INT_MAX); curl_multi_strerror(INT_MAX); curl_share_strerror(INT_MAX); curl_easy_strerror(-INT_MAX); curl_multi_strerror(-INT_MAX); curl_share_strerror(-INT_MAX); for(easyret=CURLE_OK; easyret <= CURL_LAST; easyret++) { printf("e%d: %s\n", (int)easyret, curl_easy_strerror(easyret)); } for(multiret=CURLM_CALL_MULTI_PERFORM; multiret <= CURLM_LAST; multiret++) { printf("m%d: %s\n", (int)multiret, curl_multi_strerror(multiret)); } for(shareret=CURLSHE_OK; shareret <= CURLSHE_LAST; shareret++) { printf("s%d: %s\n", (int)shareret, curl_share_strerror(shareret)); } return (int)res; }
int l_share_gc(lua_State *L) { /* gc resources */ l_share_userdata *privp = lua_touserdata(L, 1); CURLSH *curlsh = privp->curlsh; CURLSHcode errornum; if ((errornum = curl_share_cleanup(curlsh)) != CURLSHE_OK) luaL_error(L, "%s", curl_share_strerror(errornum)); return 0; }
static const char* _lcurl_err_msg(int tp, int err){ switch(tp){ case LCURL_ERROR_EASY : return curl_easy_strerror (err); case LCURL_ERROR_MULTI: return curl_multi_strerror(err); case LCURL_ERROR_SHARE: return curl_share_strerror(err); case LCURL_ERROR_FORM : return lcurl_err_form_mnemo(err); } assert(0); return "<UNSUPPORTED ERROR TYPE>"; }
std::string http::to_string(http::error_code code) { if((0 <= code) && (code < 1000)) { return curl_easy_strerror( static_cast<CURLcode>( code - 0)); } if((1000 <= code) && (code < 2000)) { return curl_multi_strerror(static_cast<CURLMcode>( code - 1000)); } if((2000 <= code) && (code < 3000)) { return curl_share_strerror(static_cast<CURLSHcode>(code - 2000)); } switch(code) { case HTTP_ERROR_REPORT_PROGRESS: return "progress"; case HTTP_ERROR_REQUEST_CANCELED: return "request canceled"; case HTTP_ERROR_COULDNT_OPEN_SEND_FILE: return "could not open send file"; case HTTP_ERROR_COULDNT_OPEN_RECEIVE_FILE: return "could not open receive file"; default: return "unknown error code"; } }
int l_share_setopt_share(lua_State *L) { l_share_userdata *privatep = luaL_checkudata(L, 1, LUACURL_SHAREMETATABLE); CURLSH *curlsh = privatep->curlsh; const char *value = luaL_checkstring(L, 2); CURLoption type; CURLSHcode errornum; if (!strcmp("COOKIE", value)) type = CURL_LOCK_DATA_COOKIE; else if (!strcmp("DNS", value)) type = CURL_LOCK_DATA_DNS; else luaL_error(L, "Invalid share type: %s", value); if ((errornum = curl_share_setopt(curlsh, CURLSHOPT_SHARE, type)) != CURLSHE_OK) luaL_error(L, "%s", curl_share_strerror(errornum)); return 0; }