David Wood wrote:

> I've put in quite a bit of work today towards porting 2.0.0-pre1 to 
> FreeBSD, with the intention of submitting a FreeRADIUS 2 port as soon as 
> possible.
> 
> Unfortunately, there's a problem which I don't have the autoconf skills 
> to patch quickly. When checking (and later attempting to use) net/if.h, 
> you need to #include sys/socket.h on FreeBSD to get the definition of 
> struct sockaddr.

Thanks for the report. I hope the following changes in CVS head will
solve the problem. (you also need to run autoconf)

Index: configure.in
===================================================================
RCS file: /source/radiusd/configure.in,v
retrieving revision 1.240
retrieving revision 1.241
diff -u -r1.240 -r1.241
--- configure.in        28 May 2007 10:28:06 -0000      1.240
+++ configure.in        28 May 2007 10:46:54 -0000      1.241
@@ -559,7 +559,6 @@
        sys/security.h \
        fcntl.h \
        sys/fcntl.h \
-       net/if.h \
        prot.h \
        pwd.h \
        grp.h \
@@ -567,6 +566,13 @@
        siad.h
 )
 
+dnl FreeBSD requires sys/socket.h before net/if.h
+AC_CHECK_HEADERS(net/if.h, [], [],
+[#if HAVE_SYS_SOCKET_H
+# include <sys/socket.h>
+# endif
+])
+
 REGEX=no
 AC_CHECK_HEADER(regex.h, AC_DEFINE(HAVE_REGEX_H, [], [define this if we have 
the <regex.h> header file]))
 if test "x$ac_cv_header_regex_h" = "xyes"; then
Index: src/include/missing.h
===================================================================
RCS file: /source/radiusd/src/include/missing.h,v
retrieving revision 1.35
retrieving revision 1.36
diff -u -r1.35 -r1.36
--- src/include/missing.h       25 May 2007 09:57:15 -0000      1.35
+++ src/include/missing.h       25 May 2007 09:58:26 -0000      1.36
@@ -50,6 +50,10 @@
 #include <sys/select.h>
 #endif
 
+#ifdef HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
+
 #ifdef HAVE_UNISTD_H
 #include <unistd.h>
 #endif

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

Reply via email to