Raimund Sacherer wrote:

> we want the server to listen on 2 interfaces, but there is a problem, if
> i tell it to bind to * (any device) it seems to NOT sent the package out
> to the client on the same interface it gots in, in fact, it seems it's
> randomly choosing on which interface it sends the package out. 
> 
> so, the client send's to X.X.X.X but the reply comes from X.X.X.Y and
> the client does not accept the package ...
> 
> is this a bug or am i missing something?

I run into a similar problem a long time ago. A patch was submitted on
the development list[1], but it's not enabled by default. You have to
build the server with :
$ ./configure --with-udpfromto

[1] http://lists.cistron.nl/archives/freeradius-devel/2003/09/frm00034.html

It solved the problem of "received response to request we did not send"
for me with Freeradius 0.9.x

However I recently tested 1.0.0 version and found out that a line of
the patch was not included in the source tree. And it looks like I
found a volunteer to test the following patch :-)

Index: src/main/mainconfig.c
===================================================================
RCS file: /source/radiusd/src/main/mainconfig.c,v
retrieving revision 1.39
diff -u -r1.39 mainconfig.c
--- src/main/mainconfig.c       10 Jun 2004 18:23:10 -0000      1.39
+++ src/main/mainconfig.c       15 Sep 2004 13:38:01 -0000
@@ -49,6 +49,9 @@
 #include <grp.h>
 #include <pwd.h>
 
+#ifdef WITH_UDPFROMTO
+#include "udpfromto.h"
+#endif
 
 #ifdef HAVE_SYSLOG_H
 #      include <syslog.h>
@@ -935,7 +938,13 @@
        if (this->fd < 0) {
                return -1;
        }
-       
+
+#ifdef WITH_UDPFROMTO
+       if (udpfromto_init(this->fd) != 0) {
+               radlog(L_ERR|L_CONS, "ERROR: udpfromto init failed.");
+       }
+#endif
+
        sa = (struct sockaddr_in *) &salocal;
        memset ((char *) sa, '\0', sizeof(salocal));
        sa->sin_family = AF_INET;


-- 
Nicolas Baradakis

- 
List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html

Reply via email to