0
0
mirror of https://gitlab.nic.cz/labs/bird.git synced 2024-12-23 10:11:53 +00:00
bird/lua/common.c
2018-01-23 15:17:01 +01:00

78 lines
1.4 KiB
C

#include "nest/bird.h"
#include "filter/filter.h"
#include "lua.h"
#include <lua.h>
#include <lualib.h>
#include <lauxlib.h>
static int luaB_err(lua_State *L) {
int n = lua_gettop(L);
if (n != 1)
log(L_WARN "bird.err() accepts exactly 1 argument");
if (n < 1)
return 0;
log(L_ERR "%s", lua_tostring(L, 1));
return 0;
}
static int luaB_warn(lua_State *L) {
int n = lua_gettop(L);
if (n != 1)
log(L_WARN "bird.warn() accepts exactly 1 argument");
if (n < 1)
return 0;
log(L_WARN "%s", lua_tostring(L, 1));
return 0;
}
static int luaB_info(lua_State *L) {
int n = lua_gettop(L);
if (n != 1)
log(L_WARN "bird.info() accepts exactly 1 argument");
if (n < 1)
return 0;
log(L_INFO "%s", lua_tostring(L, 1));
return 0;
}
static int luaB_trace(lua_State *L) {
int n = lua_gettop(L);
if (n != 1)
log(L_WARN "bird.trace() accepts exactly 1 argument");
if (n < 1)
return 0;
log(L_TRACE "%s", lua_tostring(L, 1));
return 0;
}
void luaB_push_bird_table(lua_State *L) {
lua_newtable(L);
lua_pushstring(L, "err");
lua_pushcfunction(L, luaB_err);
lua_settable(L, -3);
lua_pushstring(L, "warn");
lua_pushcfunction(L, luaB_warn);
lua_settable(L, -3);
lua_pushstring(L, "info");
lua_pushcfunction(L, luaB_info);
lua_settable(L, -3);
lua_pushstring(L, "trace");
lua_pushcfunction(L, luaB_trace);
lua_settable(L, -3);
lua_setglobal(L, "bird");
}