aboutsummaryrefslogtreecommitdiff
path: root/dpid/dpid_common.c
diff options
context:
space:
mode:
Diffstat (limited to 'dpid/dpid_common.c')
-rw-r--r--dpid/dpid_common.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/dpid/dpid_common.c b/dpid/dpid_common.c
index cb4ef436..a903db95 100644
--- a/dpid/dpid_common.c
+++ b/dpid/dpid_common.c
@@ -52,3 +52,22 @@ ssize_t ckd_write(int fd, char *msg, char *file, int line)
}
return (ret);
}
+
+/*!
+ * Provides an error checked close() call.
+ * Call this via the CKD_CLOSE macro
+ * \return close return value
+ */
+ssize_t ckd_close(int fd, char *file, int line)
+{
+ ssize_t ret;
+
+ do {
+ ret = close(fd);
+ } while (ret == -1 && errno == EINTR);
+ if (ret == -1) {
+ MSG_ERR("%s:%d: close: %s\n", file, line, dStrerror(errno));
+ }
+ return (ret);
+}
+