/* See the file COPYING for licensing information. */
-#include <freeradius/libradius.h>
+#ifndef _RADSEC_RADSEC_IMPL_H_
+#define _RADSEC_RADSEC_IMPL_H_ 1
+
#include <event2/util.h>
#include <confuse.h>
#if defined(RS_ENABLE_TLS)
char buf[1024];
};
-struct rs_peer { /* Config object for a connection. */
+/** Configuration object for a connection. */
+struct rs_peer {
struct rs_connection *conn;
struct rs_realm *realm;
struct evutil_addrinfo *addr;
struct rs_peer *next;
};
-struct rs_realm { /* Config object for a RADIUS realm. */
+/** Configuration object for a RADIUS realm. */
+struct rs_realm {
char *name;
enum rs_conn_type type;
int timeout;
struct rs_realm *next;
};
-struct rs_context {
+/** Top configuration object. */
+struct rs_config {
+ char *dictionary;
struct rs_realm *realms;
+ cfg_t *cfg;
+};
+
+struct rs_context {
+ struct rs_config *config;
struct rs_alloc_scheme alloc_scheme;
struct rs_error *err;
- fr_randctx fr_randctx;
- cfg_t *cfg;
};
struct rs_connection {
rs_packet_sent_flag,
};
+struct radius_packet;
+
struct rs_packet {
struct rs_connection *conn;
unsigned int flags;
uint8_t hdr[RS_HEADER_LEN];
- RADIUS_PACKET *rpkt;
+ struct radius_packet *rpkt; /* FreeRADIUS object. */
struct rs_packet *next; /* Used for UDP output queue. */
};
-struct rs_attr {
- struct rs_packet *pkt;
- VALUE_PAIR *vp;
-};
-
/* Nonpublic functions (in radsec.c -- FIXME: move?). */
struct rs_error *rs_resolv (struct evutil_addrinfo **addr,
rs_conn_type_t type,
const char *hostname,
const char *service);
+
#if defined (__cplusplus)
}
#endif
#define min(a, b) ((a) < (b) ? (a) : (b))
#define max(a, b) ((a) > (b) ? (a) : (b))
+#endif /* _RADSEC_RADSEC_IMPL_H_ */
+
/* Local Variables: */
/* c-file-style: "stroustrup" */
/* End: */