1 HACKING file for libradsec (in Emacs -*- org -*- mode).
3 Status as of libradsec-0.0.2.dev (2011-03-24).
8 ./configure #--enable-tls
11 examples/client -r examples/client.conf blocking-tls; echo $?
14 - There are three usage modes
15 - Application use the send and receive calls (blocking mode)
16 - Application registers callbacks and runs the libevent dispatch
17 loop (a.k.a. user dispatch mode)
18 - Application runs its own event loop, using fd's for select and
19 performs I/O using the libradsec send/receive calls
20 (a.k.a. on-your-own mode)
21 - Fully reentrant (FIXME: issues with libfreeradius-radius?)
22 - User chooses allocation regime
24 Note that as of 0.0.2.dev libradsec suffers from way too much focus on
25 the behaviour of a blocking client and is totally useless as a server.
26 Not only does it lack most of the functions needed for writing a
27 server but it also contains at least one architectural mishap which
28 kills the server idea. A connection timeout (TCP) or a retransmit
29 timeout (UDP) will result in the event loop being broken. The same is
30 thing will happen if there's an error on a TCP connection, f.ex. a
31 failing certificate validation (TLS).
33 Details apply to Ubuntu 10.10.
35 - libfreeradius-radius (2.1.9+dfsg-1ubuntu1)
36 sudo apt-get install libfreeradius-dev libfreeradius2
38 sudo apt-get install libconfuse-dev libconfuse0
39 - libevent from source (release-2.0.10-stable)
40 git clone --branch release-2.0.10-stable git://levent.git.sourceforge.net/gitroot/levent/levent
41 cd levent; sh autogen.sh && ./configure --enable-openssl
42 make && sudo make install
43 - OpenSSL (optional, for TLS and DTLS support)
44 sudo apt-get install libssl-dev
46 * Functionality and quality
51 - [TLS] basic tls support
52 - [TLS] preshared key support
53 - [TLS] verification of CN
55 - error stack is only one entry deep
56 - custom allocation scheme is not used in all places
62 Please report it. This is how we improve the quality of the code.
64 If possible, please build the library with DEBUG defined (CFLAGS="-g
65 -DDEBUG") and reproduce the problem. With DEBUG defined, lots of
66 asserts are enabled which might give a hint about what's gone wrong.
68 Running the library under gdb is another good idea. If you experience
69 a crash, catching it in gdb and providing a backtrace is highly
70 valuable for debugging.
72 Contact: mailto:linus+libradsec@nordu.net