mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-02 13:23:44 +00:00
2005-01-05 Paul Jakma <paul@dishone.st>
* bgp_packet.c: (bgp_write) set socket to nonblock while writing this should be generalised. See bugzilla #102. Fix supplied by wawa@yandex-team.ru (Vladimir Ivanov).
This commit is contained in:
parent
6c20046fd7
commit
a24a7e1b9e
@ -1,3 +1,9 @@
|
||||
2005-01-05 Paul Jakma <paul@dishone.st>
|
||||
|
||||
* bgp_packet.c: (bgp_write) set socket to nonblock while writing
|
||||
this should be generalised. See bugzilla #102. Fix supplied by
|
||||
wawa@yandex-team.ru (Vladimir Ivanov).
|
||||
|
||||
2004-12-08 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
|
||||
|
||||
* *.c: Change level of debug messages to LOG_DEBUG.
|
||||
|
@ -566,10 +566,17 @@ bgp_write (struct thread *thread)
|
||||
while (1)
|
||||
{
|
||||
int writenum;
|
||||
int val;
|
||||
|
||||
s = bgp_write_packet (peer);
|
||||
if (! s)
|
||||
return 0;
|
||||
|
||||
/* XXX: FIXME, the socket should be NONBLOCK from the start
|
||||
* status shouldnt need to be toggled on each write
|
||||
*/
|
||||
val = fcntl (peer->fd, F_GETFL, 0);
|
||||
fcntl (peer->fd, F_SETFL, val|O_NONBLOCK);
|
||||
|
||||
/* Number of bytes to be sent. */
|
||||
writenum = stream_get_endp (s) - stream_get_getp (s);
|
||||
@ -577,6 +584,7 @@ bgp_write (struct thread *thread)
|
||||
/* Call write() system call. */
|
||||
num = write (peer->fd, STREAM_PNT (s), writenum);
|
||||
write_errno = errno;
|
||||
fcntl (peer->fd, F_SETFL, val);
|
||||
if (num <= 0)
|
||||
{
|
||||
/* Partial write. */
|
||||
|
Loading…
Reference in New Issue
Block a user