From: Arran Cudbard-Bell Date: Mon, 8 May 2017 19:36:26 +0000 (-0400) Subject: Move paircursor functions into their own header file X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b97a891d487f22c8bd60b31cbf170dd6f4441b28;p=thirdparty%2Ffreeradius-server.git Move paircursor functions into their own header file --- diff --git a/src/include/libradius.h b/src/include/libradius.h index 1c95cc7ee2c..9cbd368ce56 100644 --- a/src/include/libradius.h +++ b/src/include/libradius.h @@ -295,36 +295,6 @@ ssize_t fr_radius_decode_pair(TALLOC_CTX *ctx, vp_cursor_t *cursor, fr_dict_at uint8_t const *data, size_t data_len, void *decoder_ctx); -/* - * cursor.c - */ -VALUE_PAIR *fr_pair_cursor_init(vp_cursor_t *cursor, VALUE_PAIR * const *node); -void fr_pair_cursor_copy(vp_cursor_t *out, vp_cursor_t *in); -VALUE_PAIR *fr_pair_cursor_first(vp_cursor_t *cursor); -VALUE_PAIR *fr_pair_cursor_last(vp_cursor_t *cursor); -void fr_pair_cursor_end(vp_cursor_t *cursor); -VALUE_PAIR *fr_pair_cursor_next_by_num(vp_cursor_t *cursor, unsigned int vendor, unsigned int attr, int8_t tag); - -VALUE_PAIR *fr_pair_cursor_next_by_da(vp_cursor_t *cursor, fr_dict_attr_t const *da, int8_t tag) - CC_HINT(nonnull); - -VALUE_PAIR *fr_pair_cursor_next_by_child_num(vp_cursor_t *cursor, - fr_dict_attr_t const *parent, unsigned int attr, - int8_t tag); - -VALUE_PAIR *fr_pair_cursor_next_by_ancestor(vp_cursor_t *cursor, fr_dict_attr_t const *ancestor, int8_t tag) - CC_HINT(nonnull); - -VALUE_PAIR *fr_pair_cursor_next(vp_cursor_t *cursor); -VALUE_PAIR *fr_pair_cursor_next_peek(vp_cursor_t *cursor); -VALUE_PAIR *fr_pair_cursor_current(vp_cursor_t *cursor); -void fr_pair_cursor_prepend(vp_cursor_t *cursor, VALUE_PAIR *vp); -void fr_pair_cursor_append(vp_cursor_t *cursor, VALUE_PAIR *vp); -void fr_pair_cursor_merge(vp_cursor_t *cursor, VALUE_PAIR *vp); -VALUE_PAIR *fr_pair_cursor_remove(vp_cursor_t *cursor); -VALUE_PAIR *fr_pair_cursor_replace(vp_cursor_t *cursor, VALUE_PAIR *new); -void fr_pair_cursor_free(vp_cursor_t *cursor); - extern uint32_t fr_max_attributes; /* per incoming packet */ #define FR_MAX_PACKET_CODE (52) extern char const *fr_packet_codes[FR_MAX_PACKET_CODE]; diff --git a/src/include/pair_cursor.h b/src/include/pair_cursor.h new file mode 100644 index 00000000000..8f195d2410c --- /dev/null +++ b/src/include/pair_cursor.h @@ -0,0 +1,56 @@ +/* + * This program is is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License, cursor 2 of the + * License as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ +#ifndef _FR_PAIR_CURSOR_H +#define _FR_PAIR_CURSOR_H +#include + +/** + * $Id$ + * + * @file include/cursor.h + * @brief Generic linked list cursor. + * + * @copyright 2016 The FreeRADIUS server project + */ +RCSIDH(pair_cursor_h, "$Id$") + +VALUE_PAIR *fr_pair_cursor_init(vp_cursor_t *cursor, VALUE_PAIR * const *node); +void fr_pair_cursor_copy(vp_cursor_t *out, vp_cursor_t *in); +VALUE_PAIR *fr_pair_cursor_first(vp_cursor_t *cursor); +VALUE_PAIR *fr_pair_cursor_last(vp_cursor_t *cursor); +void fr_pair_cursor_end(vp_cursor_t *cursor); +VALUE_PAIR *fr_pair_cursor_next_by_num(vp_cursor_t *cursor, unsigned int vendor, unsigned int attr, int8_t tag); + +VALUE_PAIR *fr_pair_cursor_next_by_da(vp_cursor_t *cursor, fr_dict_attr_t const *da, int8_t tag) + CC_HINT(nonnull); + +VALUE_PAIR *fr_pair_cursor_next_by_child_num(vp_cursor_t *cursor, + fr_dict_attr_t const *parent, unsigned int attr, + int8_t tag); + +VALUE_PAIR *fr_pair_cursor_next_by_ancestor(vp_cursor_t *cursor, fr_dict_attr_t const *ancestor, int8_t tag) + CC_HINT(nonnull); + +VALUE_PAIR *fr_pair_cursor_next(vp_cursor_t *cursor); +VALUE_PAIR *fr_pair_cursor_next_peek(vp_cursor_t *cursor); +VALUE_PAIR *fr_pair_cursor_current(vp_cursor_t *cursor); +void fr_pair_cursor_prepend(vp_cursor_t *cursor, VALUE_PAIR *vp); +void fr_pair_cursor_append(vp_cursor_t *cursor, VALUE_PAIR *vp); +void fr_pair_cursor_merge(vp_cursor_t *cursor, VALUE_PAIR *vp); +VALUE_PAIR *fr_pair_cursor_remove(vp_cursor_t *cursor); +VALUE_PAIR *fr_pair_cursor_replace(vp_cursor_t *cursor, VALUE_PAIR *new); +void fr_pair_cursor_free(vp_cursor_t *cursor); + +#endif /* _FR_PAIR_CURSOR_H */