X-Git-Url: http://www.project-moonshot.org/gitweb/?a=blobdiff_plain;f=src%2Finclude%2Fpacket.h;h=4b455db71c942aa9237f913d1076103b9209e44d;hb=e2eaf9194b16fdd15ebf274aafd05edc9fefb4bb;hp=120dd682616b222ade6b49bbdaa8d93303165bf2;hpb=ffad474b762518b16eb6b6b0b9346540aafd8664;p=freeradius.git diff --git a/src/include/packet.h b/src/include/packet.h index 120dd68..4b455db 100644 --- a/src/include/packet.h +++ b/src/include/packet.h @@ -1,5 +1,5 @@ -#ifndef LRAD_PACKET_H -#define LRAD_PACKET_H +#ifndef FR_PACKET_H +#define FR_PACKET_H /* * packet.h Structures and prototypes @@ -27,45 +27,50 @@ #include RCSIDH(packet_h, "$Id$") -uint32_t lrad_request_packet_hash(const RADIUS_PACKET *packet); -uint32_t lrad_reply_packet_hash(const RADIUS_PACKET *packet); -int lrad_packet_cmp(const RADIUS_PACKET *a, const RADIUS_PACKET *b); -void lrad_request_from_reply(RADIUS_PACKET *request, +#ifdef __cplusplus +extern "C" { +#endif + +uint32_t fr_request_packet_hash(const RADIUS_PACKET *packet); +uint32_t fr_reply_packet_hash(const RADIUS_PACKET *packet); +int fr_packet_cmp(const RADIUS_PACKET *a, const RADIUS_PACKET *b); +int fr_inaddr_any(fr_ipaddr_t *ipaddr); +void fr_request_from_reply(RADIUS_PACKET *request, const RADIUS_PACKET *reply); -int lrad_socket(lrad_ipaddr_t *ipaddr, int port); +int fr_socket(fr_ipaddr_t *ipaddr, int port); +int fr_nonblock(int fd); -typedef struct lrad_packet_list_t lrad_packet_list_t; +typedef struct fr_packet_list_t fr_packet_list_t; -lrad_packet_list_t *lrad_packet_list_create(int alloc_id); -void lrad_packet_list_free(lrad_packet_list_t *pl); -int lrad_packet_list_insert(lrad_packet_list_t *pl, +fr_packet_list_t *fr_packet_list_create(int alloc_id); +void fr_packet_list_free(fr_packet_list_t *pl); +int fr_packet_list_insert(fr_packet_list_t *pl, RADIUS_PACKET **request_p); -RADIUS_PACKET **lrad_packet_list_find(lrad_packet_list_t *pl, +RADIUS_PACKET **fr_packet_list_find(fr_packet_list_t *pl, RADIUS_PACKET *request); -RADIUS_PACKET **lrad_packet_list_find_byreply(lrad_packet_list_t *pl, +RADIUS_PACKET **fr_packet_list_find_byreply(fr_packet_list_t *pl, RADIUS_PACKET *reply); -RADIUS_PACKET **lrad_packet_list_yank(lrad_packet_list_t *pl, +RADIUS_PACKET **fr_packet_list_yank(fr_packet_list_t *pl, RADIUS_PACKET *request); -int lrad_packet_list_num_elements(lrad_packet_list_t *pl); -int lrad_packet_list_id_alloc(lrad_packet_list_t *pl, - RADIUS_PACKET *request); -int lrad_packet_list_id_free(lrad_packet_list_t *pl, +int fr_packet_list_num_elements(fr_packet_list_t *pl); +int fr_packet_list_id_alloc(fr_packet_list_t *pl, int proto, + RADIUS_PACKET *request, void **pctx); +int fr_packet_list_id_free(fr_packet_list_t *pl, RADIUS_PACKET *request); -int lrad_packet_list_socket_add(lrad_packet_list_t *pl, int sockfd); -int lrad_packet_list_socket_remove(lrad_packet_list_t *pl, int sockfd); -int lrad_packet_list_walk(lrad_packet_list_t *pl, void *ctx, - lrad_hash_table_walk_t callback); -int lrad_packet_list_fd_set(lrad_packet_list_t *pl, fd_set *set); -RADIUS_PACKET *lrad_packet_list_recv(lrad_packet_list_t *pl, fd_set *set); - -int lrad_packet_list_num_incoming(lrad_packet_list_t *pl); -int lrad_packet_list_num_outgoing(lrad_packet_list_t *pl); - +int fr_packet_list_socket_add(fr_packet_list_t *pl, int sockfd, int proto, + fr_ipaddr_t *dst_ipaddr, int dst_port, + void *ctx); +int fr_packet_list_socket_remove(fr_packet_list_t *pl, int sockfd, + void **pctx); +int fr_packet_list_socket_freeze(fr_packet_list_t *pl, int sockfd); +int fr_packet_list_walk(fr_packet_list_t *pl, void *ctx, + fr_hash_table_walk_t callback); +int fr_packet_list_fd_set(fr_packet_list_t *pl, fd_set *set); +RADIUS_PACKET *fr_packet_list_recv(fr_packet_list_t *pl, fd_set *set); -#ifndef offsetof -# define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER) -#endif +int fr_packet_list_num_incoming(fr_packet_list_t *pl); +int fr_packet_list_num_outgoing(fr_packet_list_t *pl); /* * "find" returns a pointer to the RADIUS_PACKET* member in the @@ -74,5 +79,10 @@ int lrad_packet_list_num_outgoing(lrad_packet_list_t *pl); * the member from the returned pointer, and cast it to the * required type. */ -# define lrad_packet2myptr(TYPE, MEMBER, PTR) (TYPE *) (((char *)PTR) - offsetof(TYPE, MEMBER)) -#endif /* LRAD_PACKET_H */ +# define fr_packet2myptr(TYPE, MEMBER, PTR) (TYPE *) (((char *)PTR) - offsetof(TYPE, MEMBER)) + +#ifdef __cplusplus +} +#endif + +#endif /* FR_PACKET_H */