From 843b6abbcbced403a0c393cc389ca852ffcfbbc9 Mon Sep 17 00:00:00 2001 From: Olof Hagsand Date: Wed, 4 Apr 2018 09:51:47 +0000 Subject: [PATCH] plugin API remake --- apps/backend/clixon_backend.h | 58 ----------------------------------- apps/restconf/restconf_main.c | 6 ++-- example/example_restconf.c | 3 +- 3 files changed, 4 insertions(+), 63 deletions(-) diff --git a/apps/backend/clixon_backend.h b/apps/backend/clixon_backend.h index 7acbdb5b..b3a75763 100644 --- a/apps/backend/clixon_backend.h +++ b/apps/backend/clixon_backend.h @@ -49,62 +49,4 @@ #include #include -/*! Clicon Backend plugin callbacks: use these in your backend plugin code - */ - -/*! Called when plugin loaded. Only mandadory callback. All others optional - * @see plginit_t - */ -int plugin_init(clicon_handle h); - -/* Called when backend started with cmd-line arguments from daemon call. - * @see plgstart_t - */ -int plugin_start(clicon_handle h, int argc, char **argv); - -/* Called just before plugin unloaded. - * @see plgexit_t - */ -int plugin_exit(clicon_handle h); - -/*! Reset system state to original state. Eg at reboot before running thru config. - * @see plgreset_t - */ -int plugin_reset(clicon_handle h, const char *db); - -/*! Retreive statedata, add statedata to XML tree - * @see plgstatedata_ t - */ -int plugin_statedata(clicon_handle h, char *xpath, cxobj *xtop); - -/*! Called before a commit/validate sequence begins. Eg setup state before commit - * @see trans_cb_t - */ -int transaction_begin(clicon_handle h, transaction_data td); - -/*! Validate. - * @see trans_cb_t - */ -int transaction_validate(clicon_handle h, transaction_data td); - -/* Called after a validation completed succesfully (but before commit). - * @see trans_cb_t - */ -int transaction_complete(clicon_handle h, transaction_data td); - -/* Commit. - * @see trans_cb_t - */ -int transaction_commit(clicon_handle h, transaction_data td); - -/* Called after a commit sequence completed succesfully. - * @see trans_cb_t - */ -int transaction_end(clicon_handle h, transaction_data td); - -/* Called if commit or validate sequence fails. After eventual rollback. - * @see trans_cb_t - */ -int transaction_abort(clicon_handle h, transaction_data td); - #endif /* _CLIXON_BACKEND_H_ */ diff --git a/apps/restconf/restconf_main.c b/apps/restconf/restconf_main.c index 86d7f495..12ff965f 100644 --- a/apps/restconf/restconf_main.c +++ b/apps/restconf/restconf_main.c @@ -321,7 +321,7 @@ api_yang_library_version(clicon_handle h, */ static int api_restconf(clicon_handle h, - FCGX_Request *r) + FCGX_Request *r) { int retval = -1; char *path; @@ -374,14 +374,15 @@ api_restconf(clicon_handle h, goto done; data = cbuf_get(cb); clicon_debug(1, "DATA=%s", data); + if (str2cvec(data, '&', '=', &dvec) < 0) goto done; - /* If present, check credentials. See "plugin_credentials" in plugin * See RFC 8040 section 2.5 */ if ((authenticated = clixon_plugin_auth(h, r)) < 0) goto done; + /* If set but no user, we set a dummy user */ if (authenticated){ if (clicon_username_get(h) == NULL) @@ -424,7 +425,6 @@ api_restconf(clicon_handle h, return retval; } - static int restconf_terminate(clicon_handle h) { diff --git a/example/example_restconf.c b/example/example_restconf.c index 87c378ed..380326ec 100644 --- a/example/example_restconf.c +++ b/example/example_restconf.c @@ -184,8 +184,7 @@ b64_decode(const char *src, /*! Process a rest request that requires (cookie) "authentication" * Note, this is loaded as dlsym fixed symbol in plugin * @param[in] h Clixon handle - * @param[in] r Fastcgi request handle - * @param[out] username Malloced username, or NULL. + * @param[in] arg Argument. Here: Fastcgi request handle * @retval -1 Fatal error * @retval 0 Unauth * @retval 1 Auth