[Xorp-cvs] XORP cvs commit: xorp/bgp
Bruce Simpson
bms@icir.org
Wed, 7 Sep 2005 14:23:43 GMT
CVSROOT: /usr/local/www/data/cvs
Module name: xorp
Changes by: bms@xorpc.icir.org 2005-09-07 14:23:43 UTC
XORP CVS repository
Modified files:
bgp socket.cc
Log message:
On FreeBSD 4.x, we can't check for immediate loopback connection, as
socket connects/accepts get handled at splnet() in the kernel,
so we have to give some slack to select() -- the accept/connect
won't get serviced until we enter a wait state, and the
kernel isn't preemptible.
On Linux and FreeBSD 5.x+, the connects are handled by netisrs,
and the kernel *may* preempt the process.
So don't try to use comm_sock_is_connected() for immediate connection
notification on anything which isn't Linux or FreeBSD 5.x
for the time being.
This is a very ugly bandaid for a very ugly problem -- but it
fixes the regression in test_peering1 test30 on but.
Revision Changes Path
1.36 +5 -1; commitid: d836431ef7d87ea6; xorp/bgp/socket.cc