-/* RADIUS client doing blocking i/o. */
+/* RADIUS/RadSec client using libradsec in blocking mode. */
#include <stdio.h>
-#include <string.h>
-#include <unistd.h>
#include <stdlib.h>
#include <assert.h>
-#include <event2/event.h>
#include <radsec/radsec.h>
-#include <radsec/radsec-impl.h>
#include <radsec/request.h>
#include "err.h"
-#include "debug.h" /* For rs_dump_packet(). */
+#include "debug.h" /* For rs_dump_message(). */
#define SECRET "sikrit"
#define USER_NAME "molgan@PROJECT-MOONSHOT.ORG"
struct rs_context *h = NULL;
struct rs_connection *conn = NULL;
struct rs_request *request = NULL;
- struct rs_packet *req = NULL, *resp = NULL;
+ struct rs_message *req = NULL, *resp = NULL;
struct rs_error *err = NULL;
+ int r;
- if (rs_context_create (&h))
+ r = rs_context_create (&h);
+ if (r)
{
- err = err_create (RSE_INTERNAL, NULL, 0, "unable to create context");
- assert (err != NULL);
- return err;
+ assert(r == RSE_NOMEM);
+ assert (!"out of RAM -- unable to create libradsec context");
}
#if !defined (USE_CONFIG_FILE)
if (use_request_object_flag)
{
- if (rs_request_create_authn (conn, &request, USER_NAME, USER_PW))
+ if (rs_request_create_authn (conn, &request, USER_NAME, USER_PW, SECRET))
goto cleanup;
if (rs_request_send (request, &resp))
goto cleanup;
}
else
{
- if (rs_packet_create_authn_request (conn, &req, USER_NAME, USER_PW))
+ if (rs_message_create_authn_request (conn, &req, USER_NAME, USER_PW, SECRET))
goto cleanup;
- if (rs_packet_send (req, NULL))
+ if (rs_message_send (req, NULL))
goto cleanup;
- if (rs_conn_receive_packet (conn, req, &resp))
+ if (rs_conn_receive_message (conn, req, &resp))
goto cleanup;
}
if (resp)
{
- rs_dump_packet (resp);
- if (rs_packet_code (resp) == PW_ACCESS_ACCEPT)
+ rs_dump_message (resp);
+ if (rs_message_code (resp) == PW_ACCESS_ACCEPT)
printf ("Good auth.\n");
else
- printf ("Bad auth: %d\n", rs_packet_code (resp));
+ printf ("Bad auth: %d\n", rs_message_code (resp));
}
else
fprintf (stderr, "%s: no response\n", __func__);
if (err == RSE_OK)
err = rs_err_conn_pop (conn);
if (resp)
- rs_packet_destroy (resp);
+ rs_message_destroy (resp);
if (request)
rs_request_destroy (request);
if (conn)
err = blocking_client (argv[1], argv[2], use_request_object_flag);
if (err)
{
- fprintf (stderr, "%s\n", rs_err_msg (err));
+ fprintf (stderr, "error: %s: %d\n", rs_err_msg (err), rs_err_code (err, 0));
return rs_err_code (err, 1);
}
return 0;