mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-07 15:33:56 +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>
|
2004-12-08 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
|
||||||
|
|
||||||
* *.c: Change level of debug messages to LOG_DEBUG.
|
* *.c: Change level of debug messages to LOG_DEBUG.
|
||||||
|
@ -566,10 +566,17 @@ bgp_write (struct thread *thread)
|
|||||||
while (1)
|
while (1)
|
||||||
{
|
{
|
||||||
int writenum;
|
int writenum;
|
||||||
|
int val;
|
||||||
|
|
||||||
s = bgp_write_packet (peer);
|
s = bgp_write_packet (peer);
|
||||||
if (! s)
|
if (! s)
|
||||||
return 0;
|
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. */
|
/* Number of bytes to be sent. */
|
||||||
writenum = stream_get_endp (s) - stream_get_getp (s);
|
writenum = stream_get_endp (s) - stream_get_getp (s);
|
||||||
@ -577,6 +584,7 @@ bgp_write (struct thread *thread)
|
|||||||
/* Call write() system call. */
|
/* Call write() system call. */
|
||||||
num = write (peer->fd, STREAM_PNT (s), writenum);
|
num = write (peer->fd, STREAM_PNT (s), writenum);
|
||||||
write_errno = errno;
|
write_errno = errno;
|
||||||
|
fcntl (peer->fd, F_SETFL, val);
|
||||||
if (num <= 0)
|
if (num <= 0)
|
||||||
{
|
{
|
||||||
/* Partial write. */
|
/* Partial write. */
|
||||||
|
Loading…
Reference in New Issue
Block a user