]> git.puffer.fish Git - matthieu/frr.git/commitdiff
bgpd: Update bgpd example to call function
authorDonald Lee <dlqs@gmx.com>
Sun, 4 Jul 2021 15:12:52 +0000 (23:12 +0800)
committerDonald Lee <dlqs@gmx.com>
Sat, 17 Jul 2021 22:32:03 +0000 (06:32 +0800)
Signed-off-by: Donald Lee <dlqs@gmx.com>
bgpd/bgp_routemap.c

index 529abcbea07b35a393c578e71be6f5448be38c73..0b22caaee7c41b25b76d8fa874233cc23528fb0d 100644 (file)
@@ -367,10 +367,17 @@ route_match_script(void *rule, const struct prefix *prefix, void *object)
        const char *scriptname = rule;
        struct bgp_path_info *path = (struct bgp_path_info *)object;
 
-       struct frrscript *fs = frrscript_load(scriptname, NULL);
+       struct frrscript *fs = frrscript_new(scriptname);
+
 
        if (!fs) {
-               zlog_err("Issue loading script rule; defaulting to no match");
+               zlog_err("Issue loading script file; defaulting to no match");
+               return RMAP_NOMATCH;
+       }
+
+       if (frrscript_load(fs, "route_match", NULL)) {
+               zlog_err(
+                       "Issue loading script function; defaulting to no match");
                return RMAP_NOMATCH;
        }
 
@@ -382,7 +389,7 @@ route_match_script(void *rule, const struct prefix *prefix, void *object)
        struct attr newattr = *path->attr;
 
        int result = frrscript_call(
-               fs, ("RM_FAILURE", (long long *)&lrm_status),
+               fs, "route_match", ("RM_FAILURE", (long long *)&lrm_status),
                ("RM_NOMATCH", (long long *)&status_nomatch),
                ("RM_MATCH", (long long *)&status_match),
                ("RM_MATCH_AND_CHANGE", (long long *)&status_match_and_change),