The FreeRADIUS server  $Id: 15bac2a4c627c01d1aa2047687b3418955ac7f00 $
list.h
Go to the documentation of this file.
1 #pragma once
2 /*
3  * This program is free software; you can redistribute it and/or modify
4  * it under the terms of the GNU General Public License as published by
5  * the Free Software Foundation; either version 2 of the License, or
6  * (at your option) any later version.
7  *
8  * This program is distributed in the hope that it will be useful,
9  * but WITHOUT ANY WARRANTY; without even the implied warranty of
10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11  * GNU General Public License for more details.
12  *
13  * You should have received a copy of the GNU General Public License
14  * along with this program; if not, write to the Free Software
15  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
16  */
17 
18 /**
19  * $Id: e7640d9aaa52e8b032d691c9fdb86e15b6598aa7 $
20  *
21  * @file protocols/radius/list.h
22  * @brief Constants for the RADIUS protocol.
23  *
24  * @copyright 2015 The FreeRADIUS server project
25  */
26 RCSIDH(list_h, "$Id: e7640d9aaa52e8b032d691c9fdb86e15b6598aa7 $")
27 
28 #include <freeradius-devel/util/packet.h>
29 #include <stdbool.h>
30 #include <stdint.h>
31 
32 int8_t fr_packet_cmp(void const *a, void const *b);
34  fr_packet_t const *reply);
35 
36 typedef struct fr_packet_list_s fr_packet_list_t;
37 
41 
45  fr_packet_t *request);
48  fr_packet_t *request_p, void **pctx);
50  fr_packet_t *request, bool yank);
52  fr_ipaddr_t *dst_ipaddr, uint16_t dst_port,
53  void *ctx);
57 int fr_packet_list_fd_set(fr_packet_list_t *pl, fd_set *set);
58 fr_packet_t *fr_packet_list_recv(fr_packet_list_t *pl, fd_set *set, uint32_t max_attributes, bool require_ma);
59 
#define RCSIDH(h, id)
Definition: build.h:445
static int sockfd
Definition: dhcpclient.c:56
IPv4/6 prefix.
Definition: merged_model.c:272
int alloc_id
Definition: list.c:109
uint32_t fr_packet_list_num_incoming(fr_packet_list_t *pl)
Definition: list.c:708
void fr_packet_list_free(fr_packet_list_t *pl)
Definition: list.c:264
uint32_t fr_packet_list_num_outgoing(fr_packet_list_t *pl)
Definition: list.c:720
bool fr_packet_list_insert(fr_packet_list_t *pl, fr_packet_t *request_p)
Definition: list.c:303
fr_packet_t * fr_packet_list_recv(fr_packet_list_t *pl, fd_set *set, uint32_t max_attributes, bool require_ma)
Definition: list.c:672
bool fr_packet_list_socket_del(fr_packet_list_t *pl, int sockfd)
Definition: list.c:169
fr_packet_t * fr_packet_list_find(fr_packet_list_t *pl, fr_packet_t *request)
Definition: list.c:311
bool fr_packet_list_socket_freeze(fr_packet_list_t *pl, int sockfd)
Definition: list.c:136
int8_t fr_packet_cmp(void const *a, void const *b)
Definition: list.c:43
fr_packet_list_t * fr_packet_list_create(int alloc_id)
Definition: list.c:276
fr_packet_t * fr_packet_list_find_byreply(fr_packet_list_t *pl, fr_packet_t *reply)
Definition: list.c:323
bool fr_packet_list_socket_thaw(fr_packet_list_t *pl, int sockfd)
Definition: list.c:155
bool fr_packet_list_yank(fr_packet_list_t *pl, fr_packet_t *request)
Definition: list.c:361
bool fr_packet_list_socket_add(fr_packet_list_t *pl, int sockfd, int proto, fr_ipaddr_t *dst_ipaddr, uint16_t dst_port, void *ctx)
Definition: list.c:187
void fr_request_from_reply(fr_packet_t *request, fr_packet_t const *reply)
Definition: list.c:72
bool fr_packet_list_id_alloc(fr_packet_list_t *pl, int proto, fr_packet_t *request_p, void **pctx)
Definition: list.c:395
uint32_t fr_packet_list_num_elements(fr_packet_list_t *pl)
Definition: list.c:368
int fr_packet_list_fd_set(fr_packet_list_t *pl, fd_set *set)
Definition: list.c:645
bool fr_packet_list_id_free(fr_packet_list_t *pl, fr_packet_t *request, bool yank)
Definition: list.c:621
unsigned short uint16_t
Definition: merged_model.c:31
unsigned int uint32_t
Definition: merged_model.c:33
static char const * proto(int id, int porttype)
Definition: radwho.c:85