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 - User chooses allocation regime
23 Note that as of 0.0.2.dev libradsec suffers from way too much focus on
24 the behaviour of a blocking client and is totally useless as a server.
25 Not only does it lack most of the functions needed for writing a
26 server but it also contains at least one architectural mishap which
27 kills the server idea. A connection timeout (TCP) or a retransmit
28 timeout (UDP) will result in the event loop being broken. The same is
29 thing will happen if there's an error on a TCP connection, f.ex. a
30 failing certificate validation (TLS).
32 Details apply to Ubuntu 10.10.
35 sudo apt-get install libconfuse-dev libconfuse0
36 - libevent from source (release-2.0.10-stable)
37 git clone --branch release-2.0.10-stable git://levent.git.sourceforge.net/gitroot/levent/levent
38 cd levent; sh autogen.sh && ./configure --enable-openssl
39 make && sudo make install
40 - OpenSSL (optional, for TLS and DTLS support)
41 sudo apt-get install libssl-dev
43 * Functionality and quality
48 - [TLS] basic tls support
49 - [TLS] preshared key support
50 - [TLS] verification of CN
52 - error stack is only one entry deep
53 - custom allocation scheme is not used in all places
59 Please report it. This is how we improve the quality of the code.
61 If possible, please build the library with DEBUG defined (CFLAGS="-g
62 -DDEBUG") and reproduce the problem. With DEBUG defined, lots of
63 asserts are enabled which might give a hint about what's gone wrong.
65 Running the library under gdb is another good idea. If you experience
66 a crash, catching it in gdb and providing a backtrace is highly
67 valuable for debugging.
69 Contact: mailto:linus+libradsec@nordu.net