]> git.ipfire.org Git - thirdparty/knot-resolver.git/commitdiff
daemon/bindings: no userdata for rplan/query
authorMarek Vavruša <marek.vavrusa@nic.cz>
Mon, 22 Jun 2015 00:27:33 +0000 (02:27 +0200)
committerMarek Vavruša <marek.vavrusa@nic.cz>
Mon, 22 Jun 2015 00:27:33 +0000 (02:27 +0200)
daemon/bindings/kres.c
daemon/bindings/kres.h

index f679461be1a16b857b774012e5b9299428ef379f..8d2befd1ad0d395150f340d71655423f64313313 100644 (file)
 #include "daemon/bindings/kres.h"
 #include "daemon/bindings.h"
 
-/** @internal Create userdata of given type. */
-#define UDATA_CREATE(L, type, val, meta) do { \
-       type *udata = lua_newuserdata(L, sizeof(*udata)); \
-       *udata = (val); \
-       luaL_getmetatable(L, (meta)); \
-       lua_setmetatable(L, -2); \
-} while (0)
-
 #define WRAP_NUMBER(L, name, val) \
        lua_pushnumber((L), (val)); \
        lua_setfield((L), -2, (name))
@@ -230,81 +222,72 @@ static int pkt_meta_register(lua_State *L)
 
 static int query_qtype(lua_State *L)
 {
-       struct kr_query **qry = lua_touserdata(L, 1);
-       lua_pushnumber(L, (*qry)->stype);
+       struct kr_query *qry = lua_touserdata(L, 1);
+       lua_pushnumber(L, qry->stype);
        return 1;
 }
 
 static int query_qclass(lua_State *L)
 {
-       struct kr_query **qry = lua_touserdata(L, 1);
-       lua_pushnumber(L, (*qry)->sclass);
+       struct kr_query *qry = lua_touserdata(L, 1);
+       lua_pushnumber(L, qry->sclass);
        return 1;       
 }
 
 static int query_qname(lua_State *L)
 {
-       struct kr_query **qry = lua_touserdata(L, 1);
-       lua_pushdname(L, (*qry)->sname);
+       struct kr_query *qry = lua_touserdata(L, 1);
+       lua_pushdname(L, qry->sname);
        return 1;       
 }
 
 static int query_flag(lua_State *L)
 {
-       struct kr_query **qry = lua_touserdata(L, 1);
+       struct kr_query *qry = lua_touserdata(L, 1);
        if (lua_gettop(L) < 2 || !lua_isnumber(L, 2)) {
                return 0;
        }
-       (*qry)->flags |= lua_tointeger(L, 2);
+       qry->flags |= lua_tointeger(L, 2);
        return 0;
 }
 
 static int query_clear_flag(lua_State *L)
 {
-       struct kr_query **qry = lua_touserdata(L, 1);
+       struct kr_query *qry = lua_touserdata(L, 1);
        if (lua_gettop(L) < 2 || !lua_isnumber(L, 2)) {
                return 0;
        }
-       (*qry)->flags &= ~lua_tointeger(L, 2);
+       qry->flags &= ~lua_tointeger(L, 2);
        return 0;
 }
 
 static int query_has_flag(lua_State *L)
 {
-       struct kr_query **qry = lua_touserdata(L, 1);
+       struct kr_query *qry = lua_touserdata(L, 1);
        if (lua_gettop(L) < 2 || !lua_isnumber(L, 2)) {
                return 0;
        }
-       lua_pushboolean(L, (*qry)->flags & lua_tointeger(L, 2));
+       lua_pushboolean(L, qry->flags & lua_tointeger(L, 2));
        return 1;
 }
 
-static int query_meta_register(lua_State *L)
-{
-       static const luaL_Reg wrap[] = {
-               { "qtype",     query_qtype  },
-               { "qclass",    query_qclass },
-               { "qname",     query_qname  },
-               { "flag",      query_flag   },
-               { "clear_flag",  query_clear_flag },
-               { "has_flag",  query_has_flag },
-               { NULL, NULL }
-       };
-       lua_register_meta (L, wrap, META_QUERY);
-       return 0;
-}
-
 static int query_current(lua_State *L)
 {
        struct kr_request *req = lua_touserdata(L, 1);
-       UDATA_CREATE(L, struct kr_query *, kr_rplan_current(&req->rplan), META_QUERY);
+       lua_pushlightuserdata(L, kr_rplan_current(&req->rplan));
        return 1;
 }
 
 int lib_kres(lua_State *L)
 {
        static const luaL_Reg lib[] = {
-               { "query_current", query_current },
+               { "query_current",    query_current },
+               { "query_qtype",      query_qtype  },
+               { "query_qclass",     query_qclass },
+               { "query_qname",      query_qname  },
+               { "query_flag",       query_flag   },
+               { "query_clear_flag", query_clear_flag },
+               { "query_has_flag",   query_has_flag },
                { NULL, NULL }
        };
        /* Create module and register functions */
@@ -327,6 +310,5 @@ int lib_kres(lua_State *L)
        WRAP_LUT(L, "query",  query_flag_names);
        /* Register metatables */
        pkt_meta_register(L);
-       query_meta_register(L);
        return 1;       
 }
\ No newline at end of file
index d9881e36e351df2801d4bfbc166754309c1fb1e8..d26920622f9467540648421ab2b0facd2423a675 100644 (file)
@@ -24,8 +24,6 @@
 
 /* Metatable list */
 #define META_PKT   "kres.meta_pkt"
-#define META_QUERY "kres.meta_query"
-#define META_RPLAN "kres.meta_rplan"
 
 /**
  * Load libkres library.