This is the GNU Radius package.

* Introduction

This is a *pre-release* version, and not ready for production use yet.
Please send comments and problem reports to <bug-gnu-radius@gnu.org>.
 
If you have taken the sources from CVS you will need the following
packages (or later) to build GNU radius.  We don't make any extra effort
to accommodate older versions of these packages, so please make sure
that you have the latest stable version.

- Automake <http://www.gnu.org/software/automake/>
- Autoconf <http://www.gnu.org/software/autoconf/>
- Gettext <http://www.gnu.org/software/gettext/>
- Gnulib <http://www.gnu.org/software/gnulib/>
- Libtool <http://www.gnu.org/software/libtool/>
- M4 <http://www.gnu.org/software/m4/>
- Texinfo <http://www.gnu.org/software/texinfo>

You will also need bison (or yacc) and flex. The grammar sources
were written so that any version of yacc or bison should be able to
handle them, however using recent bison is anyway recommended.  The lex
sources could theoretically be compiled with AT&T lex.  However, it's been
quite some time since I testes it, so using flex is higly recommended.
I use flex 2.5.4.

Please, note that the accompanying documentation may be inaccurate or
incomplete.  Take a look at ChangeLog to see the latest changes. ChangeLog
entries marked with an asterisk in column zero document user-visible changes
which are not otherwise documented.  Thus, the following command will print
a list of latest user-visible changes:

	grep '^\*' ChangeLog

* Checking Out the Sources

The following instructions apply if you wish to obtain sources from
the CVS repository:

To checkout the source tree from CVS issue the following command:

 cvs -d :pserver:anoncvs@cvs.savannah.gnu.org:/cvsroot/radius checkout radius

This will give you read-only access.  If you think you need write access,
contact <gray@mirddin.farlep.net>

* Building

After checking out the sources, you will need to _bootstrap_ them.  To do
so, first make sure you have the recent version of gnulib checked out.
Then, make sure gnulib-tool can be found using your PATH variable and
run './bootstrap', e.g.:

  $ PATH=~/gnulib:$PATH ./bootstrap

After bootstrap finishes, run make.

Notice, that you only have to do it once.  Packaged alpha versions do not
need bootstrapping. 

* Debugging

Unless you compile Radius statically, use the following command to debug it
(from radiusd directory):

	libtool --mode execute gdb radiusd [args]

If you run the command from /radiusd subdirectory, the file .gdbinit will
authomatically be loaded that contains many useful debugging functions (see
below).

For debugging from Emacs run:

	M-x gdb RET gud-wrapper radiusd RET

(the script gud-wrapper is located in /scripts subdirectory)

* .gdbinit

The default radiusd/.gdbinit ensures that radiusd will be started
in foreground single-process mode. It sets breakpoints at several
critical locations. It also provides following macros:

Macro:         pt arg
Argument type: grad_avp_t *
Description:   Prints the type of the A/V pair in symbolic form

Macro:         print_iptostr
Argument type: long
Description:   Print argument (IPv4 address in host order) in a conventional
               (dotted-quad) form.

Macro:         pv
Argument type: grad_avp_t *
Description:   Prints the value of the given A/V pair

Macro:         po
Argument type: grad_avp_t *
Description:   Prints the operator of the given A/V pair

Macro:         pp
Argument type: grad_avp_t *
Description:   Pretty-print given A/V pair

Macro:         plist
Argument type: grad_avp_t *
Description:   Pretty-print the list of A/V pairs

Macro:         print_reqcode
Argument type: grad_request_t *
Description:   Print RFC code name of the given grad_request_t 

Macro:         preq
Argument type: grad_request_t *
Description:   Print contents of the given grad_request_t 


Local Variables:
mode: outline
paragraph-separate: "[ 	]*$"
version-control: never
End:

