summaryrefslogtreecommitdiff
path: root/lib/libfrr.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/libfrr.c')
-rw-r--r--lib/libfrr.c15
1 files changed, 9 insertions, 6 deletions
diff --git a/lib/libfrr.c b/lib/libfrr.c
index 97dab74d9b..9b05bb4fbf 100644
--- a/lib/libfrr.c
+++ b/lib/libfrr.c
@@ -418,7 +418,6 @@ static int frr_opt(int opt)
switch (opt) {
case 'h':
frr_help_exit(0);
- break;
case 'v':
print_version(di->progname);
exit(0);
@@ -675,13 +674,19 @@ static void frr_mkdir(const char *path, bool strip)
strerror(errno));
}
+static void _err_print(const void *cookie, const char *errstr)
+{
+ const char *prefix = (const char *)cookie;
+
+ fprintf(stderr, "%s: %s\n", prefix, errstr);
+}
+
static struct thread_master *master;
struct thread_master *frr_init(void)
{
struct option_chain *oc;
struct frrmod_runtime *module;
struct zprivs_ids_t ids;
- char moderr[256];
char p_instance[16] = "", p_pathspace[256] = "";
const char *dir;
dir = di->module_path ? di->module_path : frr_moduledir;
@@ -735,11 +740,9 @@ struct thread_master *frr_init(void)
frrmod_init(di->module);
while (modules) {
modules = (oc = modules)->next;
- module = frrmod_load(oc->arg, dir, moderr, sizeof(moderr));
- if (!module) {
- fprintf(stderr, "%s\n", moderr);
+ module = frrmod_load(oc->arg, dir, _err_print, __func__);
+ if (!module)
exit(1);
- }
XFREE(MTYPE_TMP, oc);
}