[Libguestfs] [PATCH libnbd 1/3] lib: socket: Add .send flags parameter.

Richard W.M. Jones rjones at redhat.com
Sat Jun 8 18:38:48 UTC 2019


Add an optional .send method flags parameter.  This parameter may be
ignored by the socket layer.  If used it is intended to add
optimization flags such as MSG_MORE for socket layers which can handle
this.
---
 generator/states.c | 2 +-
 lib/crypto.c       | 2 +-
 lib/internal.h     | 2 +-
 lib/socket.c       | 4 ++--
 4 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/generator/states.c b/generator/states.c
index 145e8c1..e879a83 100644
--- a/generator/states.c
+++ b/generator/states.c
@@ -92,7 +92,7 @@ send_from_wbuf (struct nbd_handle *h)
 
   if (h->wlen == 0)
     return 0;                   /* move to next state */
-  r = h->sock->ops->send (h, h->sock, h->wbuf, h->wlen);
+  r = h->sock->ops->send (h, h->sock, h->wbuf, h->wlen, 0);
   if (r == -1) {
     if (errno == EAGAIN || errno == EWOULDBLOCK)
       return 1;                 /* more data */
diff --git a/lib/crypto.c b/lib/crypto.c
index e0f173f..703bc84 100644
--- a/lib/crypto.c
+++ b/lib/crypto.c
@@ -164,7 +164,7 @@ tls_recv (struct nbd_handle *h, struct socket *sock, void *buf, size_t len)
 
 static ssize_t
 tls_send (struct nbd_handle *h,
-          struct socket *sock, const void *buf, size_t len)
+          struct socket *sock, const void *buf, size_t len, int flags)
 {
   ssize_t r;
 
diff --git a/lib/internal.h b/lib/internal.h
index 503bf34..1ffb5b7 100644
--- a/lib/internal.h
+++ b/lib/internal.h
@@ -201,7 +201,7 @@ struct socket_ops {
   ssize_t (*recv) (struct nbd_handle *h,
                    struct socket *sock, void *buf, size_t len);
   ssize_t (*send) (struct nbd_handle *h,
-                   struct socket *sock, const void *buf, size_t len);
+                   struct socket *sock, const void *buf, size_t len, int flags);
   bool (*pending) (struct socket *sock);
   int (*get_fd) (struct socket *sock);
   int (*close) (struct socket *sock);
diff --git a/lib/socket.c b/lib/socket.c
index 084398b..8555855 100644
--- a/lib/socket.c
+++ b/lib/socket.c
@@ -42,11 +42,11 @@ socket_recv (struct nbd_handle *h, struct socket *sock, void *buf, size_t len)
 
 static ssize_t
 socket_send (struct nbd_handle *h,
-             struct socket *sock, const void *buf, size_t len)
+             struct socket *sock, const void *buf, size_t len, int flags)
 {
   ssize_t r;
 
-  r = send (sock->u.fd, buf, len, 0);
+  r = send (sock->u.fd, buf, len, flags);
   if (r == -1 && errno != EAGAIN && errno != EWOULDBLOCK)
     set_error (errno, "send");
   return r;
-- 
2.21.0




More information about the Libguestfs mailing list