$NetBSD$

--- configure.orig	2005-12-14 03:03:09.000000000 +0000
+++ configure
@@ -9837,7 +9837,7 @@ echo "${ECHO_T}OpenBSD ($host) found." >
 	fi
 	;;
 
-    *-*bsd*)
+    *-*bsd* | *-dragonfly*)
 	echo "$as_me:$LINENO: result: Generic BSD ($host) found." >&5
 echo "${ECHO_T}Generic BSD ($host) found." >&6
 	if test x"$ac_cv_header_poll_h" = xyes; then
@@ -10727,10 +10727,25 @@ cat >>confdefs.h <<_ACEOF
 #define LPATH "$unet_lpath"
 _ACEOF
 
-
-unet_maxcon=`ulimit -Hn`
-if test x"$unet_maxcon" = xunlimited; then
-    unet_maxcon=`ulimit -Sn`
+if test x$unet_poll_syscall = xno; then
+    # Avoid usage of ulimit.  pkgsrc removes some limits at run time and
+    # that raises the values too much in some cases to confuse the code in
+    # s_bsd.c (seen in Mac OS X 10.4).  Better use FD_SETSIZE as that is
+    # the maximum value the code will be able to handle when using the
+    # select(2) system call.
+    cat >./conftest.c <<_ACEOF
+#include <sys/select.h>
+#include <stdio.h>
+int main(void) { printf("%d\n", FD_SETSIZE); return 0; }
+_ACEOF
+    cc -o ./conftest ./conftest.c
+    unet_maxcon=`./conftest`
+    rm ./conftest ./conftest.c
+else
+    unet_maxcon=`ulimit -Hn`
+    if test x"$unet_maxcon" = xunlimited; then
+	unet_maxcon=`ulimit -Sn`
+    fi
 fi
 unet_maxcon=`expr $unet_maxcon - 4`
 echo "$as_me:$LINENO: checking max connections" >&5
