summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/frrlua.h11
-rw-r--r--lib/frrscript.c4
-rw-r--r--ospf6d/ospf6_asbr.c9
3 files changed, 17 insertions, 7 deletions
diff --git a/lib/frrlua.h b/lib/frrlua.h
index 8e52931e50..6fb30938b0 100644
--- a/lib/frrlua.h
+++ b/lib/frrlua.h
@@ -35,6 +35,17 @@ extern "C" {
#endif
/*
+ * gcc-10 is complaining about the wrapper function
+ * not being compatible with lua_pushstring returning
+ * a char *. Let's wrapper it here to make our life
+ * easier
+ */
+static inline void lua_pushstring_wrapper(lua_State *L, const char *str)
+{
+ (void)lua_pushstring(L, str);
+}
+
+/*
* Converts a prefix to a Lua value and pushes it on the stack.
*/
void lua_pushprefix(lua_State *L, const struct prefix *prefix);
diff --git a/lib/frrscript.c b/lib/frrscript.c
index a3de474a4e..10d400886d 100644
--- a/lib/frrscript.c
+++ b/lib/frrscript.c
@@ -39,7 +39,7 @@ struct frrscript_codec frrscript_codecs_lib[] = {
.encoder = (encoder_func)lua_pushintegerp,
.decoder = lua_tointegerp},
{.typename = "string",
- .encoder = (encoder_func)lua_pushstring,
+ .encoder = (encoder_func)lua_pushstring_wrapper,
.decoder = lua_tostringp},
{.typename = "prefix",
.encoder = (encoder_func)lua_pushprefix,
@@ -208,7 +208,7 @@ struct frrscript *frrscript_load(const char *name,
fs->L = luaL_newstate();
frrlua_export_logging(fs->L);
- char fname[MAXPATHLEN];
+ char fname[MAXPATHLEN * 2];
snprintf(fname, sizeof(fname), "%s/%s.lua", scriptdir, fs->name);
int ret = luaL_loadfile(fs->L, fname);
diff --git a/ospf6d/ospf6_asbr.c b/ospf6d/ospf6_asbr.c
index af99bc0c88..fdfd53276e 100644
--- a/ospf6d/ospf6_asbr.c
+++ b/ospf6d/ospf6_asbr.c
@@ -1439,8 +1439,7 @@ static void ospf6_redistribute_show_config(struct vty *vty, struct ospf6 *ospf6,
struct ospf6_redist *red;
total = 0;
- for (type = 0; type < ZEBRA_ROUTE_MAX; type++)
- nroute[type] = 0;
+ memset(nroute, 0, sizeof(nroute));
for (route = ospf6_route_head(ospf6->external_table); route;
route = ospf6_route_next(route)) {
info = route->route_option;
@@ -1448,12 +1447,11 @@ static void ospf6_redistribute_show_config(struct vty *vty, struct ospf6 *ospf6,
total++;
}
- if (use_json)
- json_route = json_object_new_object();
- else
+ if (!use_json)
vty_out(vty, "Redistributing External Routes from:\n");
for (type = 0; type < ZEBRA_ROUTE_MAX; type++) {
+
red = ospf6_redist_lookup(ospf6, type, 0);
if (!red)
@@ -1462,6 +1460,7 @@ static void ospf6_redistribute_show_config(struct vty *vty, struct ospf6 *ospf6,
continue;
if (use_json) {
+ json_route = json_object_new_object();
json_object_string_add(json_route, "routeType",
ZROUTE_NAME(type));
json_object_int_add(json_route, "numberOfRoutes",