* @param[in] bind_dn to make the connection as
* @param[in] bind_password for making connection
* @param[in] request currently being processed (only for debug messages)
+ * @param[in] config LDAP config of the module requesting the connection.
* @return
* - an existing or new connection matching the URI and bind DN
* - NULL on failure
/** Parse results of search on rootDSE to gather data on LDAP server
*
+ * @param[in] handle on which the query was run.
* @param[in] query which requested the rootDSE.
* @param[in] result head of LDAP results message chain.
+ * @param[in] rctx LDAP directory whose properties are to be populated.
*/
static void ldap_trunk_directory_alloc_read(LDAP *handle, fr_ldap_query_t *query, LDAPMessage *result, void *rctx)
{
/** Allocate a new structure to handle an LDAP referral, setting the destructor
*
* @param[in] ctx to allocate the referral in
+ * @param[in] request the LDAP query relates to.
* @return
* - a new referral structure on success
* - NULL on failure
*
* @note The warnings/errors emitted are usually awful.
*
- * @param _t a #fr_type_t value with optional FR_TYPE_* flags.
+ * @param _t a #fr_type_t value with optional ``FR_TYPE_*`` flags.
* @param _ct data type of global or struct field, obtained with ``__typeof__``.
* @param _p Pointer or offset.
*/
* @param[in] _str_len length of subject string. May be SIZE_MAX
* to print the entire string.
* @param[in] _marker_idx Where to place the marker. May be negative.
- * @param[in] _marker text to print at marker_marker_idx.
* @param[in] _line_prefix_fmt Prefix to add to all log lines.
* @param[in] ... Arguments for _line_prefix_fmt.
*/
*
* @param[in] ctx Where to allocate the module name.
* @param[out] out Where to write a pointer to the instance name.
+ * @param[in] ml Module list in which to find the parent.
* @param[in] parent of the module.
* @param[in] inst_name module's instance name.
*/
* If no more instances of the module exist the module be unloaded.
*
* @param[in] ctx To allocate the list in.
+ * @param[in] name of the list.
* @return A new module list.
*/
module_list_t *module_list_alloc(TALLOC_CTX *ctx, char const *name)
* Is called when the module is listed in a particular section of a virtual
* server, and the request has reached the module call.
*
+ * @param[out] p_result Result code of the module method.
* @param[in] mctx Holds global instance data, thread instance
* data and call specific instance data.
* @param[in] request to process.
* $Id$
*
* @file src/lib/server/module_method.c
- * @briefCentral module_method_name_t definitions
+ * @brief Central module_method_name_t definitions
*
* This file contains common module_method_t structures which may be
* referenced within a #virtual_server_compile_t and a #module_t.
/** Apply preprocessing logic to a password value
*
* @param[in] ctx to allocate returned value in.
+ * @param[in] request currently being processed.
+ * @param[in] in Pair containing the password to process.
* @
*/
typedef fr_pair_t *(*password_preprocess_t)(TALLOC_CTX *ctx, request_t *request, fr_pair_t *in);
/** Pair lists associated with the request
*
- * @warn DO NOT allocate pairs directly beneath the root
- * or in the ctx of the request.
- * They MUST be allocated beneath their appropriate
- * list attribute.
+ * @warning DO NOT allocate pairs directly beneath the root
+ * or in the ctx of the request.
+ * They MUST be allocated beneath their appropriate
+ * list attribute.
*/
request_pair_lists_t pair_list; //!< Structure containing all pair lists.
*
* @param[in] list being traversed.
* @param[in] curr item in the list to start tests from.
- * @param[in] uctx Context for evaluation - in this instance a #tmpl_dcursor_t
+ * @param[in] uctx Context for evaluation - in this instance a #tmpl_dcursor_nested_t
* @return
* - the next matching attribute
* - NULL if none found
* @param[in] list a nested list to start evaluating from.
* May be the child list of a pair in the request's pair tree.
* @param[in] vpt specifying the #fr_pair_t type or list to iterate over.
+ * @param[in] build Callback to build missing pairs.
+ * @param[in] uctx to pass to build.
* @return
* - First #fr_pair_t specified by the #tmpl_t.
* - NULL if no matching #fr_pair_t found, and NULL on error.
/** Initialise a tmpl using the _attr_str string, and return the first pair
*
+ * @param[out] vp_out where to write the returned pair
* @param[in,out] vars test variables
* @param[in] request the current request.
* @param[in] ref Attribute reference string.
/** Initialise a tmpl using the _attr_str string, and return the first pair
*
+ * @param[out] vp_out where to write the returned pair.
* @param[in,out] vars test variables
* @param[in] request the current request.
* @param[in] ref Attribute reference string.
* - REQUEST_PARENT,
* - REQUEST_UNKNOWN
*/
-#define TMPL_REQUEST_REF_DEF(_name, _def) \
+#define TMPL_REQUEST_REF_DEF(_name, _ref) \
static tmpl_request_t _name ## _entry = { \
.entry = { \
.entry = { \
.prev = &_name.head.entry \
} \
}, \
- .request = _def \
+ .request = _ref \
}; \
FR_DLIST_HEAD(tmpl_request_list) _name = { \
.head = { \
*
* @param[in] ctx to allocate request refs in.
* @param[out] err If !NULL where to write the parsing error.
+ * @param[in] out The list to write to.
* @param[in] in Sbuff to read request references from.
* @param[in] p_rules Parse rules.
* @param[in] t_rules Default list and other rules.
*
* @param[in] ctx to allocate request refs in.
* @param[out] err If !NULL where to write the parsing error.
+ * @param[out] out The new list.
* @param[in] in Sbuff to read request references from.
* @return
* - >= 0 the number of bytes parsed.
* @param[out] err Parse error.
* @param[in,out] vpt to append this reference to.
* @param[in] parent Last known parent.
+ * @param[in] namespace in which the attribute will be resolved.
* @param[in] name to parse.
* @param[in] at_rules see tmpl_attr_afrom_attr_substr.
* @return
* @param[in] existing_quote Exiting quotation type.
* @param[in] type Cast type.
* @param[in] enumv Enumeration values.
+ * @param[in] unescaped The unescaped value of an enumeration.
+ * @param[in] unescaped_len Length of unescaped.
*/
static inline CC_HINT(always_inline)
fr_token_t tmpl_cast_quote(fr_token_t existing_quote,
* @param[in] repeat_name Name of the repeat function call (for debugging).
* @param[in] signal function to call if the request is signalled.
* @param[in] signal_name Name of the signal function call (for debugging).
+ * @param[in] top_frame Return out of the unlang interpreter when popping this frame.
* @param[in] uctx to pass to func(s).
* @return
* - 0 on success.
/** A generic function pushed by a module or xlat to functions deeper in the C call stack to create resumption points
*
+ * @param[in] p_result The module return code.
+ * @param[in] priority for the return code.
* @param[in] request The current request.
* @param[in,out] uctx Provided by whatever pushed the function. Is opaque to the
* interpreter, but should be usable by the function.
*
* The function frame being modified must be at the top of the stack.
*
- * @param[in] request The current request.
- * @param[in] signal The signal function to set.
- * @param[in] signal_name Name of the signal function call (for debugging).
+ * @param[in] _request The current request.
+ * @param[in] _signal The signal function to set.
* @return
* - 0 on success.
* - -1 on failure.
* @param[in] _repeat function to call going back down the stack (may be NULL).
* This may be the same as func.
* @param[in] _signal function to call if the request is signalled.
+ * @param[in] _top_frame Return out of the unlang interpreter when popping this frame.
* @param[in] _uctx to pass to func(s).
* @return
* - 0 on success.
* are what you're doing could be done better using one of the thread
* event loops.
*
+ * @param[in] el Event list for the temporary interpreter. If NULL a
+ * temporary list will be allocated.
* @param[in] request The current request.
* @return One of the RLM_MODULE_* macros.
*/
*
* The resumed request cannot call the normal "authorize", etc. method. It needs a separate callback.
*
+ * @param[in] p_result the module return code.
* @param[in] request the current request.
* @param[in] rctx a local context for the callback.
* @return an unlang action.
XLAT_ARGS_NEXT(_list, _g, _h); \
} while (0);
-/** Trampoline macro for selecting which XLAT_ARGS_<num> macro to expand
+/** Trampoline macro for selecting which ``XLAT_ARGS_<num>`` macro to expand
*
*
* @param[in] XLAT_ARGS_N the name of the macro to expand.
- * Created by concating XLAT_ARGS_ + <number of variadic arguments>.
- * @param[in] _in The input list of value boxes.
+ * Created by concating ``XLAT_ARGS_ + <number of variadic arguments>``.
+ * @param[in] _list The input list of value boxes.
* @param[in] ... The variadic arguments themselves.
*/
#define _XLAT_ARGS_X(XLAT_ARGS_N, _list, ...) XLAT_ARGS_N(_list, __VA_ARGS__)
/** Verify xlat arg specifications are valid
*
* @param[in] arg specification to validate.
+ * @param[in] last Is this the last argument in the list.
*/
static inline int xlat_arg_parser_validate(xlat_arg_parser_t const *arg, bool last)
{
* @param[in] request The current request.
* @param[in] node Being processed.
* @param[in] args from previous expansion.
+ * @param[in] line Unused
*/
static inline void xlat_debug_log_expansion(request_t *request, xlat_exp_t const *node, FR_DLIST_HEAD(fr_value_box_list) const *args, UNUSED int line)
{
/** Output the list result of an expansion
*
* @param[in] request The current request.
+ * @param[in] node which was expanded.
* @param[in] result of the expansion.
*/
static inline void xlat_debug_log_list_result(request_t *request, xlat_exp_t const *node, FR_DLIST_HEAD(fr_value_box_list) const *result)
/** Output the result of an expansion
*
* @param[in] request The current request.
+ * @param[in] node which was expanded.
* @param[in] result of the expansion.
*/
static inline void xlat_debug_log_result(request_t *request, xlat_exp_t const *node, fr_value_box_t const *result)
/** Expands to the type name used for the dcursor wrapper structure
*
* @param[in] _name Prefix we add to type-specific structures.
- * @return <name>_dcursor_t
+ * @return ``<name>_dcursor_t``
*/
#define FR_DCURSOR(_name) _name ## _dcursor_t
/** Expands to the type name used for the dcursor iterator type
*
* @param[in] _name Prefix we add to type-specific structures.
- * @return <name>_iter_t
+ * @return ``<name>_iter_t``
*/
#define FR_DCURSOR_ITER(_name) _name ## _iter_t
/** Expands to the type name used for the dcursor evaluator type
*
* @param[in] _name Prefix we add to type-specific structures.
- * @return <name>_eval_t
+ * @return ``<name>_eval_t``
*/
#define FR_DCURSOR_EVAL(_name) _name ## _eval_t
/** Expands to the type name used for the dcursor insert function type
*
* @param[in] _name Prefix we add to type-specific structures.
- * @return <name>_insert_t
+ * @return ``<name>_insert_t``
*/
#define FR_DCURSOR_INSERT(_name) _name ## _insert_t
/** Expands to the type name used for the dcursor remove function type
*
* @param[in] _name Prefix we add to type-specific structures.
- * @return <name>_remove_t
+ * @return ``<name>_remove_t``
*/
#define FR_DCURSOR_REMOVE(_name) _name ## _remove_t
/** Expands to the type name used for the dcursor copy function type
*
* @param[in] _name Prefix we add to type-specific structures.
- * @return <name>_copy_t
+ * @return ``<name>_copy_t``
*/
#define FR_DCURSOR_COPY(_name) _name ## _copy_t
/** Manipulate stderr and stdout so that was capture all data send to it from libraries
*
* @param[in] el The event list we use to process logging data.
+ * @param[in] daemonize Whether the server is starting as a daemon.
* @return
* - 0 on success.
* - -1 on failure.
item_index_set(lst, data, index_reduce(lst, location));
}
-/** Add data to the bucket of a specified (sub)tree..
+/** Add data to the bucket of a specified (sub)tree.
*
*/
static void bucket_add(fr_lst_t *lst, stack_index_t stack_index, void *data)
* Filters can be applied later with fr_dcursor_filter_set.
*
* @note This is the only way to use a dcursor in non-const mode with fr_pair_list_t.
+ * @note - the list cannot be modified, and structural attributes are not returned.
*
* @param[out] cursor to initialise.
* @return
*
* Filters can be applied later with fr_dcursor_filter_set.
*
+ * @note - the list cannot be modified, and structural attributes are not returned.
+ *
* @param[out] cursor to initialise.
* @param[in] parent to iterate over
* @return
fr_pair_list_t const *list, fr_dict_attr_t const *da,
bool is_const) CC_HINT(nonnull);
-/** Initialises a special dcursor which returns only the values of the pairs
- *
- * @note - the list cannot be modified, and structural attributes are not returned.
- *
- * @param[out] cursor to initialise.
- * @return
- * - NULL if src does not point to any items.
- * - The value-box from the first pair in the list.
- */
fr_value_box_t *fr_pair_dcursor_value_init(fr_dcursor_t *cursor) CC_HINT(nonnull);
-
-/** Initialises a special dcursor which returns only the values of a pair from a parent dcursor
- *
- * @note - the list cannot be modified, and structural attributes are not returned.
- *
- * @param[out] cursor to initialise.
- * @param[in] parent dcursor which returns #fr_pair_t
- * @return
- * - NULL if src does not point to any items.
- * - The value-box from the first pair in the parent dcursor.
- */
fr_value_box_t *fr_pair_dcursor_nested_init(fr_dcursor_t *cursor, fr_dcursor_t *parent) CC_HINT(nonnull);
/** Compare two attributes using and operator.
/** Return the next node
*
- * @param[in] iter previously initialised with #fr_rb_iter_init
+ * @param[in] iter previously initialised with #fr_rb_iter_init_inorder
* @return
* - The next node.
* - NULL if no more nodes remain.
*
* @note Only makes sense for in-order traversals.
*
- * @param[in] iter previously initialised with #fr_rb_iter_inorder_init
+ * @param[in] iter previously initialised with #fr_rb_iter_init_inorder
*/
void fr_rb_iter_delete_inorder(fr_rb_iter_inorder_t *iter)
{
/** Return the next node
*
- * @param[in] iter previously initialised with #fr_rb_iter_init
+ * @param[in] iter previously initialised with #fr_rb_iter_init_preorder
* @return
* - The next node.
* - NULL if no more nodes remain.
/** Return the next node
*
- * @param[in] iter previously initialised with #fr_rb_iter_init
+ * @param[in] iter previously initialised with #fr_rb_iter_init_postorder
* @return
* - The next node.
* - NULL if no more nodes remain.
*
* @param[in] file the error occurred in.
* @param[in] line the error occurred on.
+ * @param[in] buffer The log buffer to allocate memory from.
* @param[in] fmt printf style format string.
* @param[in] ap Arguments for the error string.
*
/** Try and determine what the response packet type should be
*
* We check three sources:
- * - reply.<status_attr>
+ * - reply.``<status_attr>``
* - reply.Packet-Type
* - State machine packet type assignments for the section rcode
*