/*! Call plugin_start in all plugins * @param[in] h Clicon handle * Call plugin start functions (if defined) * @note Start functions used to have argc/argv. Use clicon_argv_get() instead */ int clixon_plugin_start(clicon_handle h) { clixon_plugin *cp; int i; plgstart_t *startfn; /* Plugin start */ for (i = 0; i < _clixon_nplugins; i++) { cp = &_clixon_plugins[i]; if ((startfn = cp->cp_api.ca_start) == NULL) continue; if (startfn(h) < 0) { clicon_debug(1, "plugin_start() failed"); return -1; } } return 0; }
/* * Call plugin_start in all plugins */ int netconf_plugin_start(clicon_handle h, int argc, char **argv) { int i; plgstart_t *startfn; for (i = 0; i < nplugins; i++) { /* Call exit function is it exists */ if ((startfn = dlsym(plugins[i], "plugin_start")) == NULL) break; optind = 0; if (startfn(h, argc, argv) < 0) { clicon_debug(1, "plugin_start() failed\n"); return -1; } } return 0; }