Code Review
/
vpp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
Rationalize plugin symbol error reporting
[vpp.git]
/
src
/
vlib
/
unix
/
plugin.c
diff --git
a/src/vlib/unix/plugin.c
b/src/vlib/unix/plugin.c
index
e9846e3
..
a1df3b2
100644
(file)
--- a/
src/vlib/unix/plugin.c
+++ b/
src/vlib/unix/plugin.c
@@
-105,13
+105,13
@@
load_one_plugin (plugin_main_t * pm, plugin_info_t * pi, int from_early_init)
}
if (reg->default_disabled && pc->is_enabled == 0)
{
}
if (reg->default_disabled && pc->is_enabled == 0)
{
- clib_warning ("Plugin disabled
: %s (default)
", pi->name);
+ clib_warning ("Plugin disabled
(default): %s
", pi->name);
goto error;
}
}
else if (reg->default_disabled)
{
goto error;
}
}
else if (reg->default_disabled)
{
- clib_warning ("Plugin disabled
: %s (default)
", pi->name);
+ clib_warning ("Plugin disabled
(default): %s
", pi->name);
goto error;
}
goto error;
}
@@
-137,15
+137,11
@@
load_one_plugin (plugin_main_t * pm, plugin_info_t * pi, int from_early_init)
handle = dlopen ((char *) pi->filename, RTLD_LAZY);
handle = dlopen ((char *) pi->filename, RTLD_LAZY);
- /*
- * Note: this can happen if the plugin has an undefined symbol reference,
- * so print a warning. Otherwise, the poor slob won't know what happened.
- * Ask me how I know that...
- */
if (handle == 0)
{
clib_warning ("%s", dlerror ());
if (handle == 0)
{
clib_warning ("%s", dlerror ());
- return -1;
+ clib_warning ("Failed to load plugin '%s'", pi->name);
+ goto error;
}
pi->handle = handle;
}
pi->handle = handle;
@@
-184,7
+180,10
@@
load_one_plugin (plugin_main_t * pm, plugin_info_t * pi, int from_early_init)
(char *) pi->name, reg->early_init);
}
(char *) pi->name, reg->early_init);
}
- clib_warning ("Loaded plugin: %s", pi->name);
+ if (reg->description)
+ clib_warning ("Loaded plugin: %s (%s)", pi->name, reg->description);
+ else
+ clib_warning ("Loaded plugin: %s", pi->name);
return 0;
error:
return 0;
error:
@@
-362,6
+361,20
@@
vlib_plugin_early_init (vlib_main_t * vm)
return vlib_load_new_plugins (pm, 1 /* from_early_init */ );
}
return vlib_load_new_plugins (pm, 1 /* from_early_init */ );
}
+u8 *
+vlib_get_vat_plugin_path (void)
+{
+ plugin_main_t *pm = &vlib_plugin_main;
+ return (pm->vat_plugin_path);
+}
+
+u8 *
+vlib_get_vat_plugin_name_filter (void)
+{
+ plugin_main_t *pm = &vlib_plugin_main;
+ return (pm->vat_plugin_name_filter);
+}
+
static clib_error_t *
vlib_plugins_show_cmd_fn (vlib_main_t * vm,
unformat_input_t * input, vlib_cli_command_t * cmd)
static clib_error_t *
vlib_plugins_show_cmd_fn (vlib_main_t * vm,
unformat_input_t * input, vlib_cli_command_t * cmd)
@@
-374,7
+387,7
@@
vlib_plugins_show_cmd_fn (vlib_main_t * vm,
plugin_info_t *pi;
s = format (s, " Plugin path is: %s\n\n", pm->plugin_path);
plugin_info_t *pi;
s = format (s, " Plugin path is: %s\n\n", pm->plugin_path);
- s = format (s, " %-41s%
s\n", "Plugin", "Vers
ion");
+ s = format (s, " %-41s%
-33s%s\n", "Plugin", "Version", "Descript
ion");
/* *INDENT-OFF* */
hash_foreach_mem (key, value, pm->plugin_by_name_hash,
/* *INDENT-OFF* */
hash_foreach_mem (key, value, pm->plugin_by_name_hash,
@@
-382,7
+395,8
@@
vlib_plugins_show_cmd_fn (vlib_main_t * vm,
if (key != 0)
{
pi = vec_elt_at_index (pm->plugin_info, value);
if (key != 0)
{
pi = vec_elt_at_index (pm->plugin_info, value);
- s = format (s, "%3d. %-40s %s\n", index, key, pi->version);
+ s = format (s, "%3d. %-40s %-32s %s\n", index, key, pi->version,
+ pi->reg->description ? pi->reg->description : "");
index++;
}
});
index++;
}
});
@@
-497,6
+511,12
@@
done:
u8 *s = 0;
if (unformat (input, "path %s", &s))
pm->plugin_path = s;
u8 *s = 0;
if (unformat (input, "path %s", &s))
pm->plugin_path = s;
+ else if (unformat (input, "name-filter %s", &s))
+ pm->plugin_name_filter = s;
+ else if (unformat (input, "vat-path %s", &s))
+ pm->vat_plugin_path = s;
+ else if (unformat (input, "vat-name-filter %s", &s))
+ pm->vat_plugin_name_filter = s;
else if (unformat (input, "plugin %s %U", &s,
unformat_vlib_cli_sub_input, &sub_input))
{
else if (unformat (input, "plugin %s %U", &s,
unformat_vlib_cli_sub_input, &sub_input))
{