Пример #1
0
/*! 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;
}
Пример #2
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;
}