コード例 #1
0
ファイル: lcmime.c プロジェクト: Lua-cURL/Lua-cURLv3
static int lcurl_mime_part_to_s(lua_State *L){
  lcurl_mime_part_t *p = (lcurl_mime_part_t *)lutil_checkudatap (L, 1, LCURL_MIME_PART);
  luaL_argcheck (L, p != NULL, 1, LCURL_MIME_PART_NAME" object expected");

  lua_pushfstring(L, LCURL_MIME_PART_NAME" (%p)%s", (void*)p, p->part ? "" : " (freed)");
  return 1;
}
コード例 #2
0
ファイル: lenv.c プロジェクト: zhanglei/lua-odbc
static int env_destroy (lua_State *L) {
  lodbc_env *env = (lodbc_env *)lutil_checkudatap (L, 1, LODBC_ENV);
  luaL_argcheck (L, env != NULL, 1, LODBC_PREFIX "environment expected");

  if(!(env->flags & LODBC_FLAG_DESTROYED)){
    //! @todo autoclose connections

    if (env->conn_counter > 0)
      return luaL_error (L, LODBC_PREFIX"there are open connections");

    if(!(env->flags & LODBC_FLAG_DONT_DESTROY)){
#ifdef LODBC_CHECK_ERROR_ON_DESTROY
      SQLRETURN ret =
#endif
      SQLFreeHandle (hENV, env->handle);

#ifdef LODBC_CHECK_ERROR_ON_DESTROY
      if (lodbc_iserror(ret)) return lodbc_fail(L, hENV, env->handle);
#endif

      env->handle = SQL_NULL_HANDLE;
    }
    env->flags |= LODBC_FLAG_DESTROYED;
  }

  lua_pushnil(L);
  lodbc_set_user_value(L, 1);
  return lodbc_pass(L);
}
コード例 #3
0
ファイル: lcmime.c プロジェクト: Lua-cURL/Lua-cURLv3
static int lcurl_mime_part_free(lua_State *L){
  lcurl_mime_part_t *p = (lcurl_mime_part_t *)lutil_checkudatap (L, 1, LCURL_MIME_PART);
  luaL_argcheck (L, p != NULL, 1, LCURL_MIME_PART_NAME" object expected");

  lcurl_mime_part_reset(L, p);

  return 0;
}
コード例 #4
0
ファイル: lenv.c プロジェクト: ld-test/odbc
static void call_cnn_destroy(lua_State *L) {
    int top = lua_gettop(L);
    assert(lutil_checkudatap(L, -1, LODBC_CNN));

    lua_pushvalue(L, -1);
    lodbc_pcall_method(L, "destroy", 0, 0, 0);

    lua_settop(L, top); // ignore any error
}
コード例 #5
0
ファイル: lcmime.c プロジェクト: Lua-cURL/Lua-cURLv3
static int lcurl_mime_free(lua_State *L){
  lcurl_mime_t *p = (lcurl_mime_t *)lutil_checkudatap (L, 1, LCURL_MIME);
  luaL_argcheck (L, p != NULL, 1, LCURL_MIME_NAME" object expected");

  if((p->mime) && (NULL == p->parent)){
    curl_mime_free(p->mime);
  }

  return lcurl_mime_reset(L, p);
}
コード例 #6
0
ファイル: lluv_fs.c プロジェクト: moteus/lua-lluv
static lluv_file_t *lluv_check_file(lua_State *L, int i, lluv_flags_t flags){
  lluv_file_t *f = (lluv_file_t *)lutil_checkudatap (L, i, LLUV_FILE);
  luaL_argcheck (L, f != NULL, i, LLUV_FILE_NAME" expected");

  /* loop could be closed already */
  if(!IS_(f->loop, OPEN)){
    if(IS_(f,OPEN)){
      lluv_fs_request_t *req = lluv_fs_request_new(L);
      UNSET_(f,OPEN);
      uv_fs_close(NULL, &req->req, f->handle, NULL);
      lluv_fs_request_free(L, req);
    }
  }

  luaL_argcheck (L, FLAGS_IS_SET(f->flags, flags), i, LLUV_FILE_NAME" closed");
  return f;
}
コード例 #7
0
ファイル: lenv.c プロジェクト: ld-test/odbc
static int env_destroy (lua_State *L) {
    lodbc_env *env = (lodbc_env *)lutil_checkudatap (L, 1, LODBC_ENV);
    luaL_argcheck (L, env != NULL, 1, LODBC_PREFIX "environment expected");

    if(!(env->flags & LODBC_FLAG_DESTROYED)) {

        if(LUA_NOREF != env->conn_list_ref) {
            lua_rawgeti(L, LODBC_LUA_REGISTRY, env->conn_list_ref);
            assert(lua_istable(L, -1));
            lua_pushnil(L);
            while(lua_next(L, -2)) {
                lua_pop(L, 1); // we do not need value
                call_cnn_destroy(L);
            }
        }

        if (env->conn_counter > 0)
            return luaL_error (L, LODBC_PREFIX"there are open connections");

        if(!(env->flags & LODBC_FLAG_DONT_DESTROY)) {
#ifdef LODBC_CHECK_ERROR_ON_DESTROY
            SQLRETURN ret =
#endif
                SQLFreeHandle (hENV, env->handle);

#ifdef LODBC_CHECK_ERROR_ON_DESTROY
            if (lodbc_iserror(ret)) return lodbc_fail(L, hENV, env->handle);
#endif

            env->handle = SQL_NULL_HANDLE;
        }

        luaL_unref(L, LODBC_LUA_REGISTRY, env->conn_list_ref);
        env->conn_list_ref = LUA_NOREF;

        env->flags |= LODBC_FLAG_DESTROYED;
    }

    lua_pushnil(L);
    lodbc_set_user_value(L, 1);
    return lodbc_pass(L);
}
コード例 #8
0
ファイル: lcurlapi.c プロジェクト: Lua-cURL/Lua-cURLv3
lcurl_url_t *lcurl_geturl_at(lua_State *L, int i){
  lcurl_url_t *p = (lcurl_url_t *)lutil_checkudatap (L, i, LCURL_URL);
  luaL_argcheck (L, p != NULL, 1, LCURL_URL_NAME" object expected");
  return p;
}
コード例 #9
0
ファイル: lcerror.c プロジェクト: FlowSea/Lua-cURLv3
static lcurl_error_t *lcurl_geterror_at(lua_State *L, int i){
  lcurl_error_t *err = (lcurl_error_t *)lutil_checkudatap (L, i, LCURL_ERROR);
  luaL_argcheck (L, err != NULL, 1, LCURL_PREFIX"error object expected");
  return err;
}
コード例 #10
0
ファイル: lenv.c プロジェクト: ld-test/odbc
lodbc_env *lodbc_getenv_at (lua_State *L, int i) {
    lodbc_env * env= (lodbc_env *)lutil_checkudatap (L, i, LODBC_ENV);
    luaL_argcheck (L, env != NULL, 1, LODBC_PREFIX "environment expected");
    luaL_argcheck (L, !(env->flags & LODBC_FLAG_DESTROYED), 1, LODBC_PREFIX "environment is closed");
    return env;
}
コード例 #11
0
ファイル: lenv.c プロジェクト: ld-test/odbc
static int env_closed (lua_State *L) {
    lodbc_env *env = (lodbc_env *)lutil_checkudatap (L, 1, LODBC_ENV);
    luaL_argcheck (L, env != NULL, 1, LODBC_PREFIX "environment expected");
    lua_pushboolean(L, env->flags & LODBC_FLAG_DESTROYED);
    return 1;
}
コード例 #12
0
ファイル: luq.c プロジェクト: ld-test/luq
static lluq_qvoid_t* lluq_qvoid_at(lua_State *L, int i){
  lluq_qvoid_t *queue = (lluq_qvoid_t *)lutil_checkudatap (L, i, LLUQ_QVOID_TYPE);
  luaL_argcheck (L, queue != NULL, 1, LLUQ_QVOID_NAME" expected");
  return queue;
}
コード例 #13
0
ファイル: lcmime.c プロジェクト: Lua-cURL/Lua-cURLv3
lcurl_mime_part_t *lcurl_getmimepart_at(lua_State *L, int i){
  lcurl_mime_part_t *p = (lcurl_mime_part_t *)lutil_checkudatap (L, i, LCURL_MIME_PART);
  luaL_argcheck (L, p != NULL, i, LCURL_MIME_PART_NAME" object expected");
  luaL_argcheck (L, p->part != NULL, i, LCURL_MIME_PART_NAME" object freed");
  return p;
}
コード例 #14
0
ファイル: lcshare.c プロジェクト: FlowSea/Lua-cURLv3
lcurl_share_t *lcurl_getshare_at(lua_State *L, int i){
  lcurl_share_t *p = (lcurl_share_t *)lutil_checkudatap (L, i, LCURL_SHARE);
  luaL_argcheck (L, p != NULL, 1, LCURL_SHARE_NAME" expected");
  return p;
}