ConfD User Community

Find_next callback being called although it wasn't define



According to the user guide the callback of find_next is optional:
This optional callback can be registered to optimize cases where ConfD wants to start a list traversal
at some other point than at the first entry of the list, or otherwise make a “jump” in a list traversal. If
the callback is not registered, ConfD will use a sequence of get_next() calls to find the desired
list entry.
In my application I didn’t define this callback but I got the following error:
TRACE CALL data find_next(thandle=35, /routing/control-plane-protocols/control-plane-protocol, next, {eci-bgp:bgp master})DEBUG No find_next() callback installed

DEBUG No find_next() callback installed

Please assist.




You can request that find_next() is used, by returning -1 for the ‘next’ value from your get_next() callback - from the confd_lib_dp(3) manual page:

   int confd_data_reply_next_key(struct confd_trans_ctx *tctx,
                                 const confd_value_t *v,
                                 int num_vals_in_key, long next);
   Passing the value -1 for _next_ has a special meaning. It tells ConfD
   that we want the next request for this list traversal to use the
   find_next() (or find_next_object()) callback instead of get_next() (or

If you do this (and I believe that you did, but presumably unintentionally), you obviously need to have registered find_next() (and/or find_next_object()).