1 /* RADIUS/RadSec server using libradsec. */
3 /* Copyright 2013 NORDUnet A/S. All rights reserved.
4 See LICENSE for licensing information. */
10 #include <radsec/radsec.h>
11 #include <event2/event.h>
12 #include "debug.h" /* For rs_dump_message(). */
14 #define CONFIG_FILE "examples/test.conf"
17 #define SECRET "sikrit"
18 #define USER_NAME "molgan@PROJECT-MOONSHOT.ORG"
19 #define USER_PW "password"
22 new_conn_cb (struct rs_connection *conn, void *user_data)
24 printf ("new connection: fd=%d\n", -1); /* conn->fd */
28 server (struct rs_context *ctx)
31 struct rs_error *err = NULL;
32 struct rs_connection *conn = NULL;
33 struct rs_listener *listener = NULL;
34 const struct rs_listener_callbacks cbs = {};
36 if (rs_listener_create (ctx, &listener, CONFIG))
38 rs_listener_set_callbacks (listener, &cbs);
42 r = rs_listener_dispatch (listener);
43 printf ("DEBUG: rs_listener_dispatch done (r=%d)\n", r);
48 err = rs_err_ctx_pop (ctx);
50 err = rs_err_conn_pop (conn);
54 rs_listener_destroy (listener);
62 main (int argc, char *argv[])
64 struct rs_error *err = NULL;
65 struct rs_context *ctx = NULL;
67 if (rs_context_create (&ctx))
69 if (rs_context_read_config (ctx, CONFIG_FILE))
72 { /* DEBUG printouts */
74 int err = rs_context_print_config (ctx, &buf);
75 assert (err == RSE_OK);
84 rs_context_destroy (ctx);
88 fprintf (stderr, "error: %s: %d\n", rs_err_msg (err), rs_err_code (err, 0));
89 return rs_err_code (err, 1);