From c2642aab24cdbfc7a0b0b203aca9835d52d938ef Mon Sep 17 00:00:00 2001 From: Donald Lee Date: Sun, 20 Jun 2021 08:24:44 +0800 Subject: [PATCH] lib: Add basic encoders Signed-off-by: Donald Lee --- lib/frrscript.h | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/lib/frrscript.h b/lib/frrscript.h index 06d247f38d..5410f53e11 100644 --- a/lib/frrscript.h +++ b/lib/frrscript.h @@ -98,7 +98,7 @@ void frrscript_init(const char *scriptdir); #define ENCODE_ARGS(name, value) \ do { \ - ENCODE_ARGS_WITH_STATE(L, value) \ + ENCODE_ARGS_WITH_STATE(L, value); \ lua_setglobal(L, name); \ } while (0) @@ -108,7 +108,17 @@ void frrscript_init(const char *scriptdir); DECODE_ARGS_WITH_STATE(L, value) \ } while (0) -#define ENCODE_ARGS_WITH_STATE(L, value) _Generic((value), )(L, value); +#define ENCODE_ARGS_WITH_STATE(L, value) \ + _Generic((value), \ +long long * : lua_pushintegerp, \ +struct prefix * : lua_pushprefix, \ +struct interface * : lua_pushinterface, \ +struct in_addr * : lua_pushinaddr, \ +struct in6_addr * : lua_pushin6addr, \ +union sockunion * : lua_pushsockunion, \ +time_t * : lua_pushtimet, \ +char * : lua_pushstring_wrapper \ +)(L, value) #define DECODE_ARGS_WITH_STATE(L, value) _Generic((value), )(L, value); -- 2.39.5