diff --git a/doc/lcurl.ldoc b/doc/lcurl.ldoc index ef113d0..fb821e1 100644 --- a/doc/lcurl.ldoc +++ b/doc/lcurl.ldoc @@ -2,7 +2,7 @@ -- @module lcurl do ---- Create HTTP multipart object. +--- Create HTTP multipart/formdata object. -- -- @treturn[1] httpform new curl HTTP Post object context function form() end diff --git a/src/lceasy.c b/src/lceasy.c index 99c1138..b99ff48 100644 --- a/src/lceasy.c +++ b/src/lceasy.c @@ -9,43 +9,6 @@ static const char *LCURL_ERROR_TAG = "LCURL_ERROR_TAG"; #define LCURL_EASY_NAME LCURL_PREFIX" Easy" static const char *LCURL_EASY = LCURL_EASY_NAME; -typedef struct lcurl_read_buffer_tag{ - int ref; - int off; -}lcurl_read_buffer_t; - -#define LCURL_LST_INDEX(N) LCURL_##N##_LIST, -#define LCURL_STR_INDEX(N) -#define LCURL_LNG_INDEX(N) -#define OPT_ENTRY(L, N, T, S) LCURL_##T##_INDEX(N) - -enum { - LCURL_LIST_DUMMY = -1, - - #include"lcopteasy.h" - - LCURL_LIST_COUNT, -}; - -#undef LCURL_LST_INDEX -#undef LCURL_STR_INDEX -#undef LCURL_LNG_INDEX -#undef OPT_ENTRY - -typedef struct lcurl_easy_tag{ - lua_State *L; - CURL *curl; - int storage; - int lists[LCURL_LIST_COUNT]; - int err_mode; - lcurl_callback_t wr; - lcurl_callback_t rd; - lcurl_callback_t hd; - lcurl_callback_t pr; - lcurl_read_buffer_t rbuffer; - -}lcurl_easy_t; - //{ int lcurl_easy_create(lua_State *L, int error_mode){ @@ -67,14 +30,12 @@ int lcurl_easy_create(lua_State *L, int error_mode){ return 1; } -static lcurl_easy_t *lcurl_geteasy_at(lua_State *L, int i){ +lcurl_easy_t *lcurl_geteasy_at(lua_State *L, int i){ lcurl_easy_t *p = (lcurl_easy_t *)lutil_checkudatap (L, i, LCURL_EASY); luaL_argcheck (L, p != NULL, 1, LCURL_PREFIX"HTTPPost object expected"); return p; } -#define lcurl_geteasy(L) lcurl_geteasy_at((L),1) - static int lcurl_easy_cleanup(lua_State *L){ lcurl_easy_t *p = lcurl_geteasy(L); if(p->curl){ @@ -154,10 +115,7 @@ static int lcurl_easy_unescape(lua_State *L){ static int lcurl_easy_reset(lua_State *L){ lcurl_easy_t *p = lcurl_geteasy(L); - CURLcode code = curl_easy_init(p->curl); - if(code != CURLE_OK){ - return lcurl_fail_ex(L, p->err_mode, LCURL_ERROR_EASY, code); - } + curl_easy_reset(p->curl); lua_settop(L, 1); if(p->storage != LUA_NOREF){ diff --git a/src/lceasy.h b/src/lceasy.h index 7ce09fa..5d64928 100644 --- a/src/lceasy.h +++ b/src/lceasy.h @@ -2,9 +2,51 @@ #define _LCEASY_H_ #include "lcurl.h" +#include "lcutils.h" + +#define LCURL_LST_INDEX(N) LCURL_##N##_LIST, +#define LCURL_STR_INDEX(N) +#define LCURL_LNG_INDEX(N) +#define OPT_ENTRY(L, N, T, S) LCURL_##T##_INDEX(N) + +enum { + LCURL_LIST_DUMMY = -1, + +#include"lcopteasy.h" + + LCURL_LIST_COUNT, +}; + +#undef LCURL_LST_INDEX +#undef LCURL_STR_INDEX +#undef LCURL_LNG_INDEX +#undef OPT_ENTRY + +typedef struct lcurl_read_buffer_tag{ + int ref; + int off; +}lcurl_read_buffer_t; + +typedef struct lcurl_easy_tag{ + lua_State *L; + CURL *curl; + int storage; + int lists[LCURL_LIST_COUNT]; + int err_mode; + lcurl_callback_t wr; + lcurl_callback_t rd; + lcurl_callback_t hd; + lcurl_callback_t pr; + lcurl_read_buffer_t rbuffer; + +}lcurl_easy_t; int lcurl_easy_create(lua_State *L, int error_mode); +lcurl_easy_t *lcurl_geteasy_at(lua_State *L, int i); + +#define lcurl_geteasy(L) lcurl_geteasy_at((L),1) + void lcurl_easy_initlib(lua_State *L, int nup); #endif