summaryrefslogtreecommitdiffstats
path: root/lib/network.h
diff options
context:
space:
mode:
authorajs <ajs>2005-02-17 21:02:49 +0100
committerajs <ajs>2005-02-17 21:02:49 +0100
commitd7e2a8188f6e9eaccb5e1c1bd7b9d5af79429c0c (patch)
tree6abb03907d0eeaa5f343e3927ef6d9e619e6f079 /lib/network.h
parent2005-02-17 Andrew J. Schorr <ajschorr@alumni.princeton.edu> (diff)
downloadfrr-d7e2a8188f6e9eaccb5e1c1bd7b9d5af79429c0c.tar.xz
frr-d7e2a8188f6e9eaccb5e1c1bd7b9d5af79429c0c.zip
2005-02-17 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
* network.h: Define a new ERRNO_IO_RETRY macro to test whether an I/O operation should be retried. This eliminates the need to duplicate the same logic testing for EAGAIN or EINTR in multiple places.
Diffstat (limited to 'lib/network.h')
-rw-r--r--lib/network.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/lib/network.h b/lib/network.h
index 589b80e9c..9333ef81d 100644
--- a/lib/network.h
+++ b/lib/network.h
@@ -33,4 +33,8 @@ int writen (int, const u_char *, int);
-1 on error. */
extern int set_nonblocking(int fd);
+/* Does the I/O error indicate that the operation should be retried later? */
+#define ERRNO_IO_RETRY(EN) \
+ (((EN) == EAGAIN) || ((EN) == EWOULDBLOCK) || ((EN) == EINTR))
+
#endif /* _ZEBRA_NETWORK_H */