mirror of
https://github.com/bol-van/zapret2.git
synced 2026-03-14 06:13:09 +00:00
nfqws2: uXadd luacalls
This commit is contained in:
@@ -50,3 +50,6 @@ v0.4
|
||||
* nfqws2: execution_plan, execution_plan_cancel
|
||||
* blockcheck2: fix broken dns cache
|
||||
* nfqws2: LUA_COMPAT_VER tracking
|
||||
|
||||
v0.5
|
||||
* nfqws2: u8add,u16add,u24add,u32add luacalls
|
||||
|
||||
39
nfq2/lua.c
39
nfq2/lua.c
@@ -212,6 +212,40 @@ static int luacall_swap16(lua_State *L)
|
||||
lua_pushinteger(L,(u>>8) | ((u&0xFF)<<8));
|
||||
return 1;
|
||||
}
|
||||
static int lua_uxadd(lua_State *L, uint32_t max)
|
||||
{
|
||||
lua_Integer sum=0, v;
|
||||
int argc = lua_gettop(L);
|
||||
for(int i=1;i<=argc;i++)
|
||||
{
|
||||
v = luaL_checkinteger(L,i);
|
||||
if (v>max || v<-(lua_Integer)max) luaL_error(L, "out of range");
|
||||
sum+=v;
|
||||
}
|
||||
lua_pushinteger(L, sum & max);
|
||||
return 1;
|
||||
}
|
||||
static int luacall_u8add(lua_State *L)
|
||||
{
|
||||
lua_check_argc_range(L,"u8add",2,100);
|
||||
return lua_uxadd(L, 0xFF);
|
||||
}
|
||||
static int luacall_u16add(lua_State *L)
|
||||
{
|
||||
lua_check_argc_range(L,"u16add",2,100);
|
||||
return lua_uxadd(L, 0xFFFF);
|
||||
}
|
||||
static int luacall_u24add(lua_State *L)
|
||||
{
|
||||
lua_check_argc_range(L,"u24add",2,100);
|
||||
return lua_uxadd(L, 0xFFFFFF);
|
||||
}
|
||||
static int luacall_u32add(lua_State *L)
|
||||
{
|
||||
lua_check_argc_range(L,"u32add",2,100);
|
||||
return lua_uxadd(L, 0xFFFFFFFF);
|
||||
}
|
||||
|
||||
static int luacall_swap32(lua_State *L)
|
||||
{
|
||||
lua_check_argc(L,"swap32",1);
|
||||
@@ -2948,6 +2982,11 @@ static void lua_init_functions(void)
|
||||
{"u16",luacall_u16},
|
||||
{"u24",luacall_u24},
|
||||
{"u32",luacall_u32},
|
||||
// add any number of arguments as they would be unsigned int of specific size
|
||||
{"u8add",luacall_u8add},
|
||||
{"u16add",luacall_u16add},
|
||||
{"u24add",luacall_u24add},
|
||||
{"u32add",luacall_u32add},
|
||||
// convert number to blob (string) - big endian
|
||||
{"bu8",luacall_bu8},
|
||||
{"bu16",luacall_bu16},
|
||||
|
||||
Reference in New Issue
Block a user