]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
libcephfs_proxy: reuse proxy_link_{read|write}
authorXavi Hernandez <xhernandez@gmail.com>
Tue, 11 Feb 2025 15:13:09 +0000 (16:13 +0100)
committerXavi Hernandez <xhernandez@gmail.com>
Tue, 11 Feb 2025 17:08:28 +0000 (18:08 +0100)
Functions proxy_link_read() and proxy_link_write() were unused. They are
slightly modified to be used for the negotiation communication.

Signed-off-by: Xavi Hernandez <xhernandez@gmail.com>
src/libcephfs_proxy/proxy_link.c
src/libcephfs_proxy/proxy_link.h

index 20d9086ffa9dee28db309a99e947cbc14e6f28f8..506b4dd6bbff44c92ebcd14d4cfe1c0ab0b635b2 100644 (file)
@@ -55,6 +55,62 @@ static int32_t proxy_link_prepare(struct sockaddr_un *addr, const char *path)
        return sd;
 }
 
+static int32_t proxy_link_read(proxy_link_t *link, int32_t sd, void *buffer,
+                              int32_t size)
+{
+       ssize_t len;
+
+       while (size > 0) {
+               len = read(sd, buffer, size);
+               if (len < 0) {
+                       if (errno == EINTR) {
+                               if (link->stop(link)) {
+                                       return -EINTR;
+                               }
+                               continue;
+                       }
+                       return proxy_log(LOG_ERR, errno,
+                                        "Failed to read from socket");
+               }
+               if (len == 0) {
+                       return proxy_log(LOG_ERR, EPIPE, "Partial read");
+               }
+
+               buffer += len;
+               size -= len;
+       }
+
+       return 0;
+}
+
+static int32_t proxy_link_write(proxy_link_t *link, int32_t sd, void *buffer,
+                               int32_t size)
+{
+       ssize_t len;
+
+       while (size > 0) {
+               len = write(sd, buffer, size);
+               if (len < 0) {
+                       if (errno == EINTR) {
+                               if (link->stop(link)) {
+                                       return -EINTR;
+                               }
+                               continue;
+                       }
+                       return proxy_log(LOG_ERR, errno,
+                                        "Failed to write to socket");
+               }
+               if (len == 0) {
+                       return proxy_log(LOG_ERR, EPIPE, "Partial write");
+               }
+
+               buffer += len;
+               size -= len;
+       }
+
+       return 0;
+}
+
 int32_t proxy_link_client(proxy_link_t *link, const char *path,
                          proxy_link_stop_t stop)
 {
@@ -149,59 +205,6 @@ done:
        return err;
 }
 
-int32_t proxy_link_read(proxy_link_t *link, int32_t sd, void *buffer,
-                       int32_t size)
-{
-       ssize_t len;
-
-       do {
-               len = read(sd, buffer, size);
-               if (len < 0) {
-                       if (errno == EINTR) {
-                               if (link->stop(link)) {
-                                       return -EINTR;
-                               }
-                               continue;
-                       }
-                       return proxy_log(LOG_ERR, errno,
-                                        "Failed to read from socket");
-               }
-       } while (len < 0);
-
-       return len;
-}
-
-int32_t proxy_link_write(proxy_link_t *link, int32_t sd, void *buffer,
-                        int32_t size)
-{
-       ssize_t len;
-       int32_t total;
-
-       total = size;
-       while (total > 0) {
-               len = write(sd, buffer, total);
-               if (len < 0) {
-                       if (errno == EINTR) {
-                               if (link->stop(link)) {
-                                       return -EINTR;
-                               }
-                               continue;
-                       }
-                       return proxy_log(LOG_ERR, errno,
-                                        "Failed to write to socket");
-               }
-               if (len == 0) {
-                       return proxy_log(LOG_ERR, ENOBUFS,
-                                        "No data written to socket");
-               }
-
-               buffer += len;
-               total -= len;
-       }
-
-       return size;
-}
-
 int32_t proxy_link_send(int32_t sd, struct iovec *iov, int32_t count)
 {
        struct iovec iov_copy[count];
index 01a32d943778fa8d7e1eb9197cc0e2b3d8f38663..163e74121219edfce818d741fbf6d8abc93b6a0c 100644 (file)
@@ -40,12 +40,6 @@ void proxy_link_close(proxy_link_t *link);
 int32_t proxy_link_server(proxy_link_t *link, const char *path,
                          proxy_link_start_t start, proxy_link_stop_t stop);
 
-int32_t proxy_link_read(proxy_link_t *link, int32_t sd, void *buffer,
-                       int32_t size);
-
-int32_t proxy_link_write(proxy_link_t *link, int32_t sd, void *buffer,
-                        int32_t size);
-
 int32_t proxy_link_send(int32_t sd, struct iovec *iov, int32_t count);
 
 int32_t proxy_link_recv(int32_t sd, struct iovec *iov, int32_t count);