mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-07-31 06:24:59 +00:00
lib: cleanup / refactor scripting foo
- fix 'struct lua_State' - change includes to library style - rename encoder funcs to look like lua_push* funcs - fix erroneous doc comment on prefix encoder - remove unused (and broken) convenience func Signed-off-by: Quentin Young <qlyoung@nvidia.com>
This commit is contained in:
parent
224782816d
commit
9e47ee98a3
@ -394,7 +394,7 @@ route_match_command(void *rule, const struct prefix *prefix, void *object)
|
||||
/*
|
||||
* Setup the prefix information to pass in
|
||||
*/
|
||||
frrlua_newtable_prefix(L, prefix);
|
||||
lua_pushprefix(L, prefix);
|
||||
/*
|
||||
* Setup the bgp_path_info information
|
||||
*/
|
||||
|
17
lib/frrlua.c
17
lib/frrlua.c
@ -37,19 +37,6 @@
|
||||
* stack easier.
|
||||
*/
|
||||
|
||||
const char *frrlua_table_get_string(lua_State *L, const char *key)
|
||||
{
|
||||
const char *str;
|
||||
|
||||
lua_pushstring(L, key);
|
||||
lua_gettable(L, -2);
|
||||
|
||||
str = (const char *)lua_tostring(L, -1);
|
||||
lua_pop(L, 1);
|
||||
|
||||
return str;
|
||||
}
|
||||
|
||||
int frrlua_table_get_integer(lua_State *L, const char *key)
|
||||
{
|
||||
int result;
|
||||
@ -70,7 +57,7 @@ int frrlua_table_get_integer(lua_State *L, const char *key)
|
||||
* datatypes.
|
||||
*/
|
||||
|
||||
int frrlua_newtable_prefix(lua_State *L, const struct prefix *prefix)
|
||||
int lua_pushprefix(lua_State *L, const struct prefix *prefix)
|
||||
{
|
||||
char buffer[100];
|
||||
|
||||
@ -87,7 +74,7 @@ int frrlua_newtable_prefix(lua_State *L, const struct prefix *prefix)
|
||||
return 0;
|
||||
}
|
||||
|
||||
int frrlua_newtable_interface(lua_State *L, const struct interface *ifp)
|
||||
int lua_pushinterface(lua_State *L, const struct interface *ifp)
|
||||
{
|
||||
zlog_debug("frrlua: pushing interface table");
|
||||
|
||||
|
12
lib/frrlua.h
12
lib/frrlua.h
@ -21,9 +21,9 @@
|
||||
|
||||
#if defined(HAVE_LUA)
|
||||
|
||||
#include "lua.h"
|
||||
#include "lualib.h"
|
||||
#include "lauxlib.h"
|
||||
#include <lua.h>
|
||||
#include <lualib.h>
|
||||
#include <lauxlib.h>
|
||||
|
||||
#include "prefix.h"
|
||||
#include "frrscript.h"
|
||||
@ -34,15 +34,13 @@ extern "C" {
|
||||
|
||||
/*
|
||||
* Pushes a new table containing relevant fields from a prefix structure.
|
||||
*
|
||||
* Additionally sets the global variable "prefix" to point at this table.
|
||||
*/
|
||||
int frrlua_newtable_prefix(lua_State *L, const struct prefix *prefix);
|
||||
int lua_pushprefix(lua_State *L, const struct prefix *prefix);
|
||||
|
||||
/*
|
||||
* Pushes a new table containing relevant fields from an interface structure.
|
||||
*/
|
||||
int frrlua_newtable_interface(lua_State *L, const struct interface *ifp);
|
||||
int lua_pushinterface(lua_State *L, const struct interface *ifp);
|
||||
|
||||
/*
|
||||
* Retrieve a string from table on the top of the stack.
|
||||
|
@ -220,8 +220,7 @@ void frrscript_init()
|
||||
"Lua type encoders");
|
||||
|
||||
/* Register core library types */
|
||||
frrscript_register_type_encoder("prefix",
|
||||
(encoder_func)frrlua_newtable_prefix);
|
||||
frrscript_register_type_encoder(
|
||||
"interface", (encoder_func)frrlua_newtable_interface);
|
||||
frrscript_register_type_encoder("prefix", (encoder_func)lua_pushprefix);
|
||||
frrscript_register_type_encoder("interface",
|
||||
(encoder_func)lua_pushinterface);
|
||||
}
|
||||
|
@ -19,6 +19,7 @@
|
||||
#ifndef __FRRSCRIPT_H__
|
||||
#define __FRRSCRIPT_H__
|
||||
|
||||
#include <lua.h>
|
||||
#include "frrlua.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
@ -27,7 +28,7 @@ extern "C" {
|
||||
|
||||
#define FRRSCRIPT_PATH "/etc/frr/scripts"
|
||||
|
||||
typedef int (*encoder_func)(struct lua_State *, const void *);
|
||||
typedef int (*encoder_func)(lua_State *, const void *);
|
||||
|
||||
struct frrscript {
|
||||
/* Script name */
|
||||
|
Loading…
Reference in New Issue
Block a user