mirror of
https://github.com/netfun2000/ip2region.git
synced 2026-02-27 09:44:31 +08:00
optimize the api error return
This commit is contained in:
@@ -262,15 +262,18 @@ static int lua_xdb_new_with_file_only(lua_State *L) {
|
||||
// init the xdb searcher
|
||||
err = xdb_new_with_file_only(searcher, db_path);
|
||||
if (err != 0) {
|
||||
return luaL_error(L, "failed to init xdb searcher on `%s`: errcode=%d", db_path, err);
|
||||
lua_pushnil(L);
|
||||
lua_pushfstring(L, "init xdb searcher on `%s`: errcode=%d", db_path, err);
|
||||
return 2;
|
||||
}
|
||||
|
||||
// push the metatable onto the stack and
|
||||
// set it as the metatable of the current searcher
|
||||
luaL_getmetatable(L, XDB_SEARCHER_METATABLE_NAME);
|
||||
lua_setmetatable(L, -2);
|
||||
lua_pushnil(L);
|
||||
|
||||
return 1;
|
||||
return 2;
|
||||
}
|
||||
|
||||
static int lua_xdb_new_with_vector_index(lua_State *L) {
|
||||
@@ -297,15 +300,18 @@ static int lua_xdb_new_with_vector_index(lua_State *L) {
|
||||
// init the xdb searcher
|
||||
err = xdb_new_with_vector_index(searcher, db_path, (xdb_vector_index_t *) xBuffer->ptr);
|
||||
if (err != 0) {
|
||||
return luaL_error(L, "failed to init vector index cached xdb searcher on `%s` with errcode=%d", db_path, err);
|
||||
lua_pushnil(L);
|
||||
lua_pushfstring(L, "init vector index cached xdb searcher on `%s` with errcode=%d", db_path, err);
|
||||
return 2;
|
||||
}
|
||||
|
||||
// push the metatable onto the stack and
|
||||
// set it as the metatable of the current searcher
|
||||
luaL_getmetatable(L, XDB_SEARCHER_METATABLE_NAME);
|
||||
lua_setmetatable(L, -2);
|
||||
lua_pushnil(L);
|
||||
|
||||
return 1;
|
||||
return 2;
|
||||
}
|
||||
|
||||
static int lua_xdb_new_with_buffer(lua_State *L) {
|
||||
@@ -328,15 +334,18 @@ static int lua_xdb_new_with_buffer(lua_State *L) {
|
||||
// init the xdb searcher
|
||||
err = xdb_new_with_buffer(searcher, (xdb_content_t *) xBuffer->ptr);
|
||||
if (err != 0) {
|
||||
return luaL_error(L, "failed to init content cached xdb searcher with errcode=%d", err);
|
||||
lua_pushnil(L);
|
||||
lua_pushfstring(L, "init content cached xdb searcher with errcode=%d", err);
|
||||
return 2;
|
||||
}
|
||||
|
||||
// push the metatable onto the stack and
|
||||
// set it as the metatable of the current searcher
|
||||
luaL_getmetatable(L, XDB_SEARCHER_METATABLE_NAME);
|
||||
lua_setmetatable(L, -2);
|
||||
lua_pushnil(L);
|
||||
|
||||
return 1;
|
||||
return 2;
|
||||
}
|
||||
|
||||
static int lua_xdb_close(lua_State *L) {
|
||||
@@ -371,7 +380,9 @@ static int lua_xdb_search(lua_State *L) {
|
||||
ip_str = lua_tostring(L, 2);
|
||||
err = xdb_check_ip(ip_str, &ip_int);
|
||||
if (err != 0) {
|
||||
luaL_error(L, "invalid string ip `%s`: errcode=%d", ip_str, err);
|
||||
lua_pushnil(L);
|
||||
lua_pushfstring(L, "invalid string ip `%s`: errcode=%d", ip_str, err);
|
||||
return 2;
|
||||
}
|
||||
} else {
|
||||
return luaL_error(L, "input ip not integer or string");
|
||||
@@ -415,11 +426,11 @@ static int lua_xdb_check_ip(lua_State *L) {
|
||||
ip_str = luaL_checkstring(L, 1);
|
||||
err = xdb_check_ip(ip_str, &ip);
|
||||
if (err != 0) {
|
||||
lua_pushinteger(L, err);
|
||||
lua_pushboolean(L, 0);
|
||||
lua_pushinteger(L, 0);
|
||||
lua_pushfstring(L, "err=%d", err);
|
||||
} else {
|
||||
lua_pushinteger(L, ip);
|
||||
lua_pushboolean(L, 1);
|
||||
lua_pushnil(L);
|
||||
}
|
||||
|
||||
return 2;
|
||||
|
||||
Reference in New Issue
Block a user