Generic map_str2int generic mapping tables; Removed vector return values from xmldb_get()

This commit is contained in:
Olof hagsand 2017-06-21 21:02:09 +02:00
parent bf30e6f66a
commit abd3eee17d
29 changed files with 381 additions and 280 deletions

View file

@ -230,12 +230,14 @@ clicon_rpc_generate_error(cxobj *xerr)
* @param[in] h CLICON handle
* @param[in] db Name of database
* @param[in] xpath XPath (or "")
* @param[in] errmode 0 if xml errors are returned as clicon_err
* 1 if xml errors are in xt and return 0.
* @param[out] xt XML tree. must be freed by caller with xml_free
* @retval 0 OK
* @retval -1 Error, fatal or xml
* @code
* cxobj *xt = NULL;
* if (clicon_rpc_get_config(h, "running", "/", &xt) < 0)
* if (clicon_rpc_get_config(h, "running", "/", 0, &xt) < 0)
* err;
* if (xt)
* xml_free(xt);
@ -245,6 +247,7 @@ int
clicon_rpc_get_config(clicon_handle h,
char *db,
char *xpath,
int errmode,
cxobj **xt)
{
int retval = -1;
@ -264,13 +267,22 @@ clicon_rpc_get_config(clicon_handle h,
goto done;
if (clicon_rpc_msg(h, msg, &xret, NULL) < 0)
goto done;
if ((xerr = xpath_first(xret, "//rpc-error")) != NULL){
clicon_rpc_generate_error(xerr);
goto done;
}
if ((xd = xpath_first(xret, "//data/config")) == NULL)
if ((xd = xml_new("config", NULL)) == NULL)
if (errmode == 0){ /* Move this to caller */
if ((xerr = xpath_first(xret, "//rpc-error")) != NULL){
clicon_rpc_generate_error(xerr);
goto done;
}
if ((xd = xpath_first(xret, "//data/config")) == NULL)
if ((xd = xml_new("config", NULL)) == NULL)
goto done;
}
else{ /* Send xml error back (this should be default behaviour) */
if ((xd = xpath_first(xret, "//rpc-error")) == NULL){
if ((xd = xpath_first(xret, "//data/config")) == NULL)
if ((xd = xml_new("config", NULL)) == NULL)
goto done;
}
}
if (xt){
if (xml_rm(xd) < 0)
goto done;