Network problems with sendto() syscall
Olivier Houchard
mlfbsd at cognet.ci0.org
Sun Aug 26 04:51:33 PDT 2007
On Sun, Aug 26, 2007 at 01:08:41PM +0200, Joerg Wallerich wrote:
> Hi all,
>
> since moving to 7-CURRENT I have a serious problem with
> the network stack when using the sendto() syscall.
>
> The problem appears as soon as I work with bootpd(8). As
> soon as bootpd tries to answer a BOOTP request, the
> sendto() call fails with EAFNOSUPPORT, I get kernel log
> messages like
>
> 'fxp0: can't handle af18'
>
> and then I can no longer access the IP address I sent the
> BOOTP request from.
>
> The call to sendto() in bootpd seems OK, so I doubt that the
> problem lies with bootpd. The NIC driver seems to be OK as
> well, as the problems appears with three different drivers
> (fxp, nfe, rl). I even get things like
>
> 'kernel: looutput: af=18 unexpected'
>
> in the logs when using bootptest on the local machine.
>
> This problem can be reproduced on my hardware using a
> vanilla installation of the latest snapshot of 7-CURRENT (200708).
>
>
> Does anyone see this behavior besides myself?
>
> Thanks,
> Joerg
>
Hi Joerg,
This is a known problem. Until the proper fix is committed, you can use the
attached patch, it should make bootp usable again.
Regards,
Olivier
-------------- next part --------------
Index: net/rtsock.c
===================================================================
RCS file: /cognet/ncvs/src/sys/net/rtsock.c,v
retrieving revision 1.142
diff -u -p -r1.142 rtsock.c
--- net/rtsock.c 27 Mar 2007 19:36:12 -0000 1.142
+++ net/rtsock.c 7 Aug 2007 20:41:52 -0000
@@ -528,7 +528,8 @@ route_output(struct mbuf *m, struct sock
RT_UNLOCK(rt);
senderr(error);
}
- rt->rt_flags |= RTF_GATEWAY;
+ if (!(rt->rt_flags & RTF_LLINFO))
+ rt->rt_flags |= RTF_GATEWAY;
}
if (info.rti_ifa != NULL &&
info.rti_ifa != rt->rt_ifa) {
More information about the freebsd-current
mailing list