From: Donald Lee Date: Sun, 20 Jun 2021 00:24:44 +0000 (+0800) Subject: lib: Add basic encoders X-Git-Tag: base_8.1~355^2~18 X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=c2642aab24cdbfc7a0b0b203aca9835d52d938ef;p=matthieu%2Ffrr.git lib: Add basic encoders Signed-off-by: Donald Lee --- 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);