misc/139214: libradius and 3 auth radius-servers

Sergey Bondarev bond at techno-r.ru
Mon Sep 28 14:20:04 UTC 2009


>Number:         139214
>Category:       misc
>Synopsis:       libradius and 3 auth radius-servers
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Mon Sep 28 14:20:03 UTC 2009
>Closed-Date:
>Last-Modified:
>Originator:     Sergey Bondarev
>Release:        6.4
>Organization:
>Environment:
FreeBSD r5.ru 6.4-RELEASE-p3 FreeBSD 6.4-RELEASE-p3 #1: Sun Feb  1 16:19:33 MSK 2009     bond at r5.ru:/usr/obj/usr/src/sys/YADROPU  i386

>Description:
radius.conf
acct 10.255.1.1 radius_password
auth 10.250.1.100 radius_password
auth 10.250.1.250 radius_password
auth 10.255.1.1 radius_password

Situation:
1. Freeradius on host 10.250.1.100 is not started, mpd4.4.1 try to auth user on radius-server. libradius try 10.250.1.100 - wait timeout, then try 10.250.1.250 and succefully authentificate user.

2. HOST 10.205.1.100 is DOWN. mpd4.4.1 try to auth user on radius-server. libradius try 10.250.1.100, get error -1 and exit.
libradius do not try other auth-radius-servers !!!

mpd.log
Sep 28 15:06:25 r5 mpd: [pptp14] AUTH: Auth-Thread started
Sep 28 15:06:25 r5 mpd: [pptp14] AUTH: Trying RADIUS
Sep 28 15:06:25 r5 mpd: [pptp14] RADIUS: RadiusAuthenticate for: user_login
Sep 28 15:06:25 r5 mpd: [pptp14] RADIUS: rad_init_send_request failed: -1 sendto: Host is down
Sep 28 15:06:25 r5 mpd: [pptp14] AUTH: RADIUS returned undefined
Sep 28 15:06:25 r5 mpd: [pptp14] AUTH: Trying INTERNAL

I see to radlib.c source:
        /* Send the request */
        n = sendto(h->fd, h->request, h->req_len, 0,
            (const struct sockaddr *)&h->servers[h->srv].addr,
            sizeof h->servers[h->srv].addr);
        if (n != h->req_len) {
                if (n == -1)
                        generr(h, "sendto: %s", strerror(errno));
                else
                        generr(h, "sendto: short write");
                return -1;
        }
Maybe remove "return -1;" ?

Backup (round-robin) radius server configuration is no work !


>How-To-Repeat:


>Fix:


>Release-Note:
>Audit-Trail:
>Unformatted:


More information about the freebsd-bugs mailing list