mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-06 12:09:22 +00:00
lib, pimd: Modify writen to retry on certain failures
When writen fails, allow itto retry on certain failures until it succeeds. Ticket: CM-12986 Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
This commit is contained in:
parent
82d64e8ef4
commit
5f8fec8728
@ -62,8 +62,13 @@ writen(int fd, const u_char *ptr, int nbytes)
|
||||
while (nleft > 0)
|
||||
{
|
||||
nwritten = write(fd, ptr, nleft);
|
||||
|
||||
if (nwritten <= 0)
|
||||
|
||||
if (nwritten < 0)
|
||||
{
|
||||
if (!ERRNO_IO_RETRY(errno))
|
||||
return nwritten;
|
||||
}
|
||||
if (nwritten == 0)
|
||||
return (nwritten);
|
||||
|
||||
nleft -= nwritten;
|
||||
|
@ -307,8 +307,8 @@ zclient_lookup_nexthop_once (struct pim_zlookup_nexthop nexthop_tab[],
|
||||
|
||||
ret = writen(zlookup->sock, s->data, stream_get_endp(s));
|
||||
if (ret < 0) {
|
||||
zlog_err("%s %s: writen() failure writing to zclient lookup socket",
|
||||
__FILE__, __PRETTY_FUNCTION__);
|
||||
zlog_err("%s %s: writen() failure: %d writing to zclient lookup socket",
|
||||
__FILE__, __PRETTY_FUNCTION__, errno);
|
||||
zclient_lookup_failed(zlookup);
|
||||
return -2;
|
||||
}
|
||||
@ -461,8 +461,8 @@ pim_zlookup_sg_statistics (struct channel_oil *c_oil)
|
||||
ret = writen (zlookup->sock, s->data, count);
|
||||
if (ret <= 0)
|
||||
{
|
||||
zlog_err("%s %s: writen() failure writing to zclient lookup socket",
|
||||
__FILE__, __PRETTY_FUNCTION__);
|
||||
zlog_err("%s %s: writen() failure: %d writing to zclient lookup socket",
|
||||
__FILE__, __PRETTY_FUNCTION__, errno);
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user