Hi Alan, based on cvs head from May 10 2007: having following listen entry in radrelay.conf: listen { type = detail detail = /var/log/freeradius/radacct/radrelay/detail max_outstanding = 100 identity = radrelay } "radrelay personality" of freeradius can't parse the config properly: `freeradius -X -n radrelay` ends up with: /etc/freeradius/radrelay.conf[111]: No detail file specified in listen section when debugging: (gdb) run -X -n radrelay Starting program: /usr/sbin/freeradius -X -n radrelay [New Thread 1024 (LWP 24967)] Config: including file: /etc/freeradius/radrelay.conf FreeRADIUS Version 2.0.0-pre0, for host i386-pc-linux-gnu, built on May 10 2007 at 14:04:03 Starting - reading configuration files ... read_config_files: reading dictionary main { prefix = "/usr" localstatedir = "/var" logdir = "/var/log/freeradius" libdir = "/usr/lib/freeradius" radacctdir = "/var/log/freeradius/radacct" hostname_lookups = no snmp = no max_request_time = 30 cleanup_delay = 5 max_requests = 65536 allow_core_dumps = no log_stripped_names = no log_file = "/var/log/freeradius/radius.log" log_auth = no log_auth_badpass = no log_auth_goodpass = no pidfile = "/var/run/radiusd/radrelay.pid" checkrad = "/usr/sbin/checkrad" debug_level = 0 proxy_requests = no log { syslog_facility = "daemon" } } port = 1812 listen { type = "detail" identity = "radrelay" listen { max_outstanding = 100 } [Switching to Thread 1024 (LWP 24967)] Breakpoint 1, detail_parse (filename=0xbfffe550 "/etc/freeradius/radrelay.conf", lineno=111, cs=0x807b898, this=0x8150fb0) at listen.c:1227 1227 if (!data->filename) { (gdb) print data $1 = (listen_detail_t *) 0x8150fe0 (gdb) print data->filename $2 = 0x0 (gdb) print data->vps $3 = (VALUE_PAIR *) 0x0 (gdb) print data->fp $4 = (FILE *) 0x0 (gdb) print data->state $5 = 0 (gdb) print data->timestamp $6 = 0 (gdb) print data->client_ip $7 = {af = 0, ipaddr = {ip4addr = {s_addr = 0}, ip6addr = {in6_u = {u6_addr8 = '\0' <repeats 15 times>, u6_addr16 = {0, 0, 0, 0, 0, 0, 0, 0}, u6_addr32 = {0, 0, 0, 0}}}}} (gdb) print data->max_outstanding $8 = 100 (gdb) print data->outstanding $9 = (int *) 0x0 (gdb) continue Continuing. /etc/freeradius/radrelay.conf[111]: No detail file specified in listen section Program exited with code 01. Please advise. Milan Holub holub (at) thenet (dot) ch -------------------------------------- TheNet-Internet Services AG, im Bernertechnopark, Morgenstr. 129 CH-3018, Bern, Switzerland 031 998 4333, Fax 031 998 4330 http://www.thenet.ch http://wlan.thenet.ch --------------------------------------
Milan Holub wrote:
having following listen entry in radrelay.conf:
listen { type = detail detail = /var/log/freeradius/radacct/radrelay/detail
Change that to "filename = .."
max_outstanding = 100
Delete that.
identity = radrelay }
"radrelay personality" of freeradius can't parse the config properly:
I've fixed the sample "radrelay.conf" in CVS. You probably want to use radrelay ONLY in debugging mode. It sort of works there when I test it. I wouldn't recommend using it in normal "daemon" mode, or with multiple threads. Alan DeKok. -- http://deployingradius.com - The web site of the book http://deployingradius.com/blog/ - The blog
Hi Alan, On Wed, May 16, 2007 at 12:25:13PM +0200, Alan Dekok wrote:
You probably want to use radrelay ONLY in debugging mode. It sort of works there when I test it. I wouldn't recommend using it in normal "daemon" mode, or with multiple threads.
==> actually I wanted to use it in production:) ==> what would you suggest to people willing to use freeradius 2.0-preX and "radrelay" functionality? The old radrelay program was removed. My idea is to take a radrelay binary from freeradius 1.X and run it separately on the detail file created by freeradius 2.0. What's your opinion? Milan Holub holub (at) thenet (dot) ch -------------------------------------- TheNet-Internet Services AG, im Bernertechnopark, Morgenstr. 129 CH-3018, Bern, Switzerland 031 998 4333, Fax 031 998 4330 http://www.thenet.ch http://wlan.thenet.ch --------------------------------------
Milan Holub wrote:
==> actually I wanted to use it in production:)
I wouldn't recommend that right now.
==> what would you suggest to people willing to use freeradius 2.0-preX and "radrelay" functionality? The old radrelay program was removed.
My idea is to take a radrelay binary from freeradius 1.X and run it separately on the detail file created by freeradius 2.0. What's your opinion?
Yes. Use the old 1.x radrelay program, until the code in 2.0 works. Alan DeKok. -- http://deployingradius.com - The web site of the book http://deployingradius.com/blog/ - The blog
Hi Alan, On Wed, May 16, 2007 at 12:25:13PM +0200, Alan Dekok wrote:
You probably want to use radrelay ONLY in debugging mode. It sort of works there when I test it. I wouldn't recommend using it in normal "daemon" mode, or with multiple threads.
==> I just tested with the changed config and it does not work for me neither(causing segmentation fault) --> reason to use old good radrelay for the moment:) Initializing the thread pool... Listening on detail file /var/log/freeradius/radacct/radrelay/detail Ready to process requests. Nothing to do. Sleeping until we see a request. Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 1024 (LWP 25154)] 0x08053826 in detail_recv (listener=0x8150fa8, pfun=0xbfffe9dc, prequest=0xbfffe9e0) at listen.c:1134 1134 (*prequest)->simul_max = free_slot; (gdb) print (*prequest)->simul_max $1 = 775053123 Milan Holub holub (at) thenet (dot) ch -------------------------------------- TheNet-Internet Services AG, im Bernertechnopark, Morgenstr. 129 CH-3018, Bern, Switzerland 031 998 4333, Fax 031 998 4330 http://www.thenet.ch http://wlan.thenet.ch --------------------------------------
Milan Holub wrote:
==> I just tested with the changed config and it does not work for me neither(causing segmentation fault) --> reason to use old good radrelay for the moment:) ... Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 1024 (LWP 25154)] 0x08053826 in detail_recv (listener=0x8150fa8, pfun=0xbfffe9dc, prequest=0xbfffe9e0) at listen.c:1134 1134 (*prequest)->simul_max = free_slot;
There is no such code in 2.0.0-pre1, or in the current CVS. Please re-build the server using the latest code. Alan DeKok. -- http://deployingradius.com - The web site of the book http://deployingradius.com/blog/ - The blog
participants (2)
-
Alan Dekok -
Milan Holub