36 lines
1.7 KiB
Plaintext
36 lines
1.7 KiB
Plaintext
Example application using RADIUS client as a library
|
|
Copyright (c) 2007, Jouni Malinen <j@w1.fi>
|
|
|
|
This software may be distributed under the terms of the BSD license.
|
|
See the parent directory README for more details.
|
|
|
|
|
|
This directory contains an example showing how the RADIUS client
|
|
functionality from hostapd can be used as a library in another
|
|
program. The example program initializes the RADIUS client and send a
|
|
Access-Request using User-Name and User-Password attributes. A reply
|
|
from the RADIUS authentication server will be processed and it is used
|
|
as a trigger to terminate the example program.
|
|
|
|
The RADIUS library links in couple of helper functions from src/utils and
|
|
src/crypto directories. Most of these are suitable as-is, but it may
|
|
be desirable to replace the debug output code in src/utils/wpa_debug.c
|
|
by dropping this file from the library and re-implementing the
|
|
functions there in a way that better fits in with the main
|
|
application.
|
|
|
|
RADIUS client implementation takes care of receiving messages,
|
|
timeouts, and retransmissions of packets. Consequently, it requires
|
|
functionality for registering timeouts and received packet
|
|
notifications. This is implemented using the generic event loop
|
|
implementation (see src/utils/eloop.h).
|
|
|
|
The main application may either use the included event loop
|
|
implementation or alternatively, implement eloop_* wrapper functions
|
|
to use whatever event loop design is used in the main program. This
|
|
would involve removing src/utils/eloop.o from the library and
|
|
implementing following functions defines in src/utils/eloop.h:
|
|
eloop_register_timeout(), eloop_cancel_timeout(),
|
|
eloop_register_read_sock(), eloop_unregister_read_sock(), and
|
|
eloop_terminated().
|