if (i % 16 == 0) printf ("\n"); } \
printf ("\n"); }
+#if defined (__cplusplus)
+extern "C" {
+#endif
+
void rs_dump_packet (const struct rs_packet *pkt);
void rs_dump_attr (const struct rs_attr *attr);
+
+#if defined (__cplusplus)
+}
+#endif
};
typedef unsigned int rs_cred_type_t;
+#if defined (__cplusplus)
+extern "C" {
+#endif
+
struct rs_packet;
struct rs_credentials {
struct rs_error *err);
+#if defined (__cplusplus)
+}
+#endif
+
/* Convenience macros. */
#define rs_calloc(h, nmemb, size) \
(h->alloc_scheme.calloc ? h->alloc_scheme.calloc : calloc)(nmemb, size)
typedef unsigned int rs_conn_type_t;
+#if defined (__cplusplus)
+extern "C" {
+#endif
+
/* Data types. */
struct rs_context; /* radsec-impl.h */
struct rs_connection; /* radsec-impl.h */
char *rs_err_msg(struct rs_error *err, int dofree_flag);
int rs_err_code(struct rs_error *err, int dofree_flag);
+#if defined (__cplusplus)
+}
+#endif
+
/* Local Variables: */
/* c-file-style: "stroustrup" */
/* End: */
/* See the file COPYING for licensing information. */
+#if defined (__cplusplus)
+extern "C" {
+#endif
+
struct rs_request
{
struct rs_connection *conn;
struct rs_packet *resp;
struct rs_conn_callbacks saved_cb;
};
+
+#if defined (__cplusplus)
+}
+#endif
struct rs_request;
+#if defined (__cplusplus)
+extern "C" {
+#endif
+
int rs_request_create(struct rs_connection *conn, struct rs_request **req_out);
void rs_request_destroy(struct rs_request *request);
int rs_request_send(struct rs_request *request, struct rs_packet *req, struct rs_packet **resp);
+
+#if defined (__cplusplus)
+}
+#endif
#define DBG_WARN 64
#define DBG_ERR 128
+#if defined (__cplusplus)
+extern "C" {
+#endif
+
void debug_init(char *ident);
void debug_set_level(uint8_t level);
void debug_timestamp_on();
int debug_set_destination(char *dest);
void debug_reopen_log();
+#if defined (__cplusplus)
+}
+#endif
+
/* Local Variables: */
/* c-file-style: "stroustrup" */
/* End: */
#include <stdint.h>
#endif
+#if defined (__cplusplus)
+extern "C" {
+#endif
+
struct hash {
struct list *hashlist;
pthread_mutex_t mutex;
/* returns the next entry after the argument */
struct hash_entry *hash_next(struct hash_entry *entry);
+#if defined (__cplusplus)
+}
+#endif
+
/* Local Variables: */
/* c-file-style: "stroustrup" */
/* End: */
#include <stdint.h>
#endif
+#if defined (__cplusplus)
+extern "C" {
+#endif
+
struct list_node {
struct list_node *next;
void *data;
/* returns number of nodes */
uint32_t list_count(struct list *list);
+#if defined (__cplusplus)
+}
+#endif
+
/* Local Variables: */
/* c-file-style: "stroustrup" */
/* End: */
#include <openssl/ssl.h>
+#if defined (__cplusplus)
+extern "C" {
+#endif
+
struct tls {
char *name;
char *cacertfile;
int addmatchcertattr(struct clsrvconf *conf);
#endif
+#if defined (__cplusplus)
+}
+#endif
+
/* Local Variables: */
/* c-file-style: "stroustrup" */
/* End: */
sizeof(struct sockaddr_in) : \
sizeof(struct sockaddr_in6))
+#if defined (__cplusplus)
+extern "C" {
+#endif
+
char *stringcopy(const char *s, int len);
char *addr2string(struct sockaddr *addr);
struct sockaddr *addr_copy(struct sockaddr *in);
int bindtoaddr(struct addrinfo *addrinfo, int family, int reuse, int v6only);
int connecttcp(struct addrinfo *addrinfo, struct addrinfo *src, uint16_t timeout);
+#if defined (__cplusplus)
+}
+#endif
/* Local Variables: */
/* c-file-style: "stroustrup" */
+/* See the file COPYING for licensing information. */
+
+#if defined (__cplusplus)
+extern "C" {
+#endif
+
int rs_tls_init (struct rs_connection *conn);
+
+#if defined (__cplusplus)
+}
+#endif