]> git.ipfire.org Git - thirdparty/lxc.git/commitdiff
file_utils: add lxc_send_nointr()
authorChristian Brauner <christian.brauner@ubuntu.com>
Mon, 3 Sep 2018 12:43:06 +0000 (14:43 +0200)
committerChristian Brauner <christian.brauner@ubuntu.com>
Tue, 4 Sep 2018 11:59:13 +0000 (13:59 +0200)
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
src/lxc/file_utils.c
src/lxc/file_utils.h

index 1e87f2a24134d9e7d0119832aa1dd949591869d8..3bdde2e3a45ec1e2aa5505385251ef8480221648 100644 (file)
@@ -106,6 +106,17 @@ again:
        return ret;
 }
 
+ssize_t lxc_send_nointr(int sockfd, void *buf, size_t len, int flags)
+{
+       ssize_t ret;
+again:
+       ret = send(sockfd, buf, len, flags);
+       if (ret < 0 && errno == EINTR)
+               goto again;
+
+       return ret;
+}
+
 ssize_t lxc_read_nointr(int fd, void *buf, size_t count)
 {
        ssize_t ret;
index 5172b6d15ef678d7d9ade8c78c35f278a63ece0d..7ae28697530128e619af40c1a8069efbb71cda29 100644 (file)
@@ -37,6 +37,7 @@ extern int lxc_read_from_file(const char *filename, void *buf, size_t count);
 
 /* send and receive buffers completely */
 extern ssize_t lxc_write_nointr(int fd, const void *buf, size_t count);
+extern ssize_t lxc_send_nointr(int sockfd, void *buf, size_t len, int flags);
 extern ssize_t lxc_read_nointr(int fd, void *buf, size_t count);
 extern ssize_t lxc_read_nointr_expect(int fd, void *buf, size_t count,
                                      const void *expected_buf);