60 static int DnsGetDnsRrname(
lua_State *luastate)
63 return LuaCallbackError(luastate,
"error: protocol not dns");
64 RSDNSTransaction *tx = LuaStateGetTX(luastate);
66 return LuaCallbackError(luastate,
"internal error: no tx");
68 return rs_dns_lua_get_rrname(luastate, tx);
71 static int DnsGetTxid(
lua_State *luastate)
74 return LuaCallbackError(luastate,
"error: protocol not dns");
75 RSDNSTransaction *tx = LuaStateGetTX(luastate);
77 return LuaCallbackError(luastate,
"internal error: no tx");
79 rs_dns_lua_get_tx_id(luastate, tx);
83 static int DnsGetRcode(
lua_State *luastate)
86 return LuaCallbackError(luastate,
"error: protocol not dns");
87 RSDNSTransaction *tx = LuaStateGetTX(luastate);
89 return LuaCallbackError(luastate,
"internal error: no tx");
91 return rs_dns_lua_get_rcode(luastate, tx);
94 static int DnsGetRecursionDesired(
lua_State *luastate)
97 return LuaCallbackError(luastate,
"error: protocol not dns");
98 RSDNSTransaction *tx = LuaStateGetTX(luastate);
100 return LuaCallbackError(luastate,
"internal error: no tx");
102 uint16_t
flags = rs_dns_tx_get_response_flags(tx);
103 int recursion_desired =
flags & 0x0080 ? 1 : 0;
104 lua_pushboolean(luastate, recursion_desired);
108 static int DnsGetQueryTable(
lua_State *luastate)
111 return LuaCallbackError(luastate,
"error: protocol not dns");
112 RSDNSTransaction *tx = LuaStateGetTX(luastate);
114 return LuaCallbackError(luastate,
"internal error: no tx");
116 return rs_dns_lua_get_query_table(luastate, tx);
119 static int DnsGetAnswerTable(
lua_State *luastate)
122 return LuaCallbackError(luastate,
"error: protocol not dns");
123 RSDNSTransaction *tx = LuaStateGetTX(luastate);
124 return rs_dns_lua_get_answer_table(luastate, tx);
127 static int DnsGetAuthorityTable(
lua_State *luastate)
130 return LuaCallbackError(luastate,
"error: protocol not dns");
131 RSDNSTransaction *tx = LuaStateGetTX(luastate);
132 return rs_dns_lua_get_authority_table(luastate, tx);
136 int LuaRegisterDnsFunctions(
lua_State *luastate)
139 lua_pushcfunction(luastate, DnsGetDnsRrname);
140 lua_setglobal(luastate,
"DnsGetDnsRrname");
142 lua_pushcfunction(luastate, DnsGetQueryTable);
143 lua_setglobal(luastate,
"DnsGetQueries");
145 lua_pushcfunction(luastate, DnsGetAnswerTable);
146 lua_setglobal(luastate,
"DnsGetAnswers");
148 lua_pushcfunction(luastate, DnsGetAuthorityTable);
149 lua_setglobal(luastate,
"DnsGetAuthorities");
151 lua_pushcfunction(luastate, DnsGetTxid);
152 lua_setglobal(luastate,
"DnsGetTxid");
154 lua_pushcfunction(luastate, DnsGetRcode);
155 lua_setglobal(luastate,
"DnsGetRcode");
157 lua_pushcfunction(luastate, DnsGetRecursionDesired);
158 lua_setglobal(luastate,
"DnsGetRecursionDesired");