DNS timeouts on FreeBSD 4.11

Diane Bruce db at db.net
Tue Jun 14 01:10:45 EDT 2005


The bug is due to some code in /usr/src/sys/kern/uipc_socket.c

Note, the code looks for a *connected* socket, which UDP socket is never
going to be. This patch simply reverts to older FreeBSD 4.x code.
It works fine. So if you have a 4.11 box you want to run with kqueue,
apply the patch and recompile the kernel. An update to my original
PR has also been filed.


- Diane (Dianora)

--- uipc_socket.c.orig  Mon Jun 13 21:37:52 2005
+++ uipc_socket.c       Mon Jun 13 22:33:16 2005
@@ -1602,10 +1602,8 @@
        case EVFILT_READ:
                if (so->so_options & SO_ACCEPTCONN)
                        kn->kn_fop = &solisten_filtops;
-               else if (so->so_state & SS_ISCONNECTED)
+               else
                        kn->kn_fop = &soread_filtops;
-               else
-                       return (EINVAL);
                sb = &so->so_rcv;
        case EVFILT_WRITE:

More information about the hybrid mailing list