* Restructure and more generic plugin API (cli,backend,restconf,netconf)

* For preparation for authorization RFC8341
  * Plugins add clixon_plugin_init() and api struct for function pointers, eg:
```
static const struct clixon_plugin_api api = {
    "example",
    clixon_plugin_init,
    ...
}
clixon_plugin_api *clixon_plugin_init(clicon_handle h)
{
    return (void*)&api;
}
```
  * Moved specific plugin functions from apps/ to generic functions in lib/
    * New generic plugin load function: clixon_plugins_load()
  * Removed client-local netconf plugins netconf_plugin_callbacks()
    * This was code used before generic YANG rpc calls
  * Added username to clixon handle:
    * clicon_username_get() / clicon_username_set()
  * Added authentication plugin callback
  * Removed some obscure plugin code that seem not to be used (please report if needed!)
    * CLI parse hook
    * CLICON_FIND_PLUGIN
    * clicon_valcb()
* Removed username to rpc calls (added below)
This commit is contained in:
Olof hagsand 2018-04-02 10:38:53 +02:00
parent b8e35742b9
commit 79e3fbdaa9
41 changed files with 470 additions and 772 deletions

View file

@ -46,18 +46,7 @@
#include <clixon/clixon.h>
#include <clixon/clixon_netconf.h>
/*
* Plugin initialization
*/
int
plugin_init(clicon_handle h)
{
return 0;
}
/*
* Plugin start
/*! Plugin start
* Called once everything has been initialized, right before
* the main event loop is entered.
*/
@ -73,3 +62,21 @@ plugin_exit(clicon_handle h)
return 0;
}
clixon_plugin_api * clixon_plugin_init(clicon_handle h);
static const struct clixon_plugin_api api = {
"example",
clixon_plugin_init,
plugin_start,
plugin_exit,
NULL
};
/*! Netconf plugin initialization
*/
clixon_plugin_api *
clixon_plugin_init(clicon_handle h)
{
return (void*)&api;
}