Fix. reset method.

This commit is contained in:
Alexey Melnichuk 2014-08-27 11:41:22 +05:00
parent bb7a6c3571
commit d2118f2c93
3 changed files with 45 additions and 45 deletions

View File

@ -2,7 +2,7 @@
-- @module lcurl -- @module lcurl
do do
--- Create HTTP multipart object. --- Create HTTP multipart/formdata object.
-- --
-- @treturn[1] httpform new curl HTTP Post object context -- @treturn[1] httpform new curl HTTP Post object context
function form() end function form() end

View File

@ -9,43 +9,6 @@ static const char *LCURL_ERROR_TAG = "LCURL_ERROR_TAG";
#define LCURL_EASY_NAME LCURL_PREFIX" Easy" #define LCURL_EASY_NAME LCURL_PREFIX" Easy"
static const char *LCURL_EASY = LCURL_EASY_NAME; 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){ 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; 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); lcurl_easy_t *p = (lcurl_easy_t *)lutil_checkudatap (L, i, LCURL_EASY);
luaL_argcheck (L, p != NULL, 1, LCURL_PREFIX"HTTPPost object expected"); luaL_argcheck (L, p != NULL, 1, LCURL_PREFIX"HTTPPost object expected");
return p; return p;
} }
#define lcurl_geteasy(L) lcurl_geteasy_at((L),1)
static int lcurl_easy_cleanup(lua_State *L){ static int lcurl_easy_cleanup(lua_State *L){
lcurl_easy_t *p = lcurl_geteasy(L); lcurl_easy_t *p = lcurl_geteasy(L);
if(p->curl){ if(p->curl){
@ -154,10 +115,7 @@ static int lcurl_easy_unescape(lua_State *L){
static int lcurl_easy_reset(lua_State *L){ static int lcurl_easy_reset(lua_State *L){
lcurl_easy_t *p = lcurl_geteasy(L); lcurl_easy_t *p = lcurl_geteasy(L);
CURLcode code = curl_easy_init(p->curl); curl_easy_reset(p->curl);
if(code != CURLE_OK){
return lcurl_fail_ex(L, p->err_mode, LCURL_ERROR_EASY, code);
}
lua_settop(L, 1); lua_settop(L, 1);
if(p->storage != LUA_NOREF){ if(p->storage != LUA_NOREF){

View File

@ -2,9 +2,51 @@
#define _LCEASY_H_ #define _LCEASY_H_
#include "lcurl.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); 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); void lcurl_easy_initlib(lua_State *L, int nup);
#endif #endif