Dispatcher fixes: user callback arg, changing handler to NULL

This commit is contained in:
Olof hagsand 2021-10-12 14:45:10 +02:00
parent fccf315235
commit a74fbdecdb
4 changed files with 5 additions and 14 deletions

View file

@ -489,7 +489,7 @@ clixon_pagination_cb_register(clicon_handle h,
void *arg)
{
int retval = -1;
dispatcher_definition x = {xpath, fn};
dispatcher_definition x = {xpath, fn, arg};
dispatcher_entry_t *htable = NULL;
clicon_ptr_get(h, "pagination-entries", (void**)&htable);

View file

@ -22,6 +22,7 @@ typedef int (*handler_function)(void *handle, char *path, void *userargs, void *
typedef struct {
char *dd_path;
handler_function dd_handler;
void *dd_arg;
} dispatcher_definition;
/*

View file

@ -366,7 +366,6 @@ dispatcher_register_handler(dispatcher_entry_t **root,
if (*x->dd_path != '/') {
errno = EINVAL;
// fprintf(stderr, "%s: part '%s' must start at root\n", __func__, x->dd_path);
return -1;
}
@ -394,17 +393,8 @@ dispatcher_register_handler(dispatcher_entry_t **root,
}
/* when we get here, ptr points at last entry added */
if (x->dd_handler != NULL) {
/*
* we're adding/changing a handler
* you could make this an error optionally
*/
if (ptr->handler != NULL) {
// fprintf(stderr, "%s: warning: replacing existing handler: (%s) %p -> %p\n", __func__,
// ptr->node_name, ptr->handler, x->dd_handler);
}
ptr->handler = x->dd_handler;
}
ptr->handler = x->dd_handler;
ptr->arg = x->dd_arg;
/* clean up */
split_path_free(split_path_list, split_path_len);

View file

@ -153,7 +153,7 @@ testrun_stop
#----------------------------
echo "...skipped: Must run interactvely"
echo "...skipped: Must run interactively"
if false; then
testrun_start "/es:audit-logs/es:audit-log"