[Libguestfs] [PATCH libnbd 1/2] generator: Refactor CONNECT.START state.

Richard W.M. Jones rjones at redhat.com
Thu Feb 4 18:10:49 UTC 2021


Small, neutral refactoring to the CONNECT.START to make the subsequent
commit easier.
---
 generator/states-connect.c | 21 ++++++++++-----------
 1 file changed, 10 insertions(+), 11 deletions(-)

diff --git a/generator/states-connect.c b/generator/states-connect.c
index 392879d..03b34c7 100644
--- a/generator/states-connect.c
+++ b/generator/states-connect.c
@@ -47,11 +47,12 @@ disable_nagle (int sock)
 
 STATE_MACHINE {
  CONNECT.START:
-  int fd;
+  sa_family_t family;
+  int fd, r;
 
   assert (!h->sock);
-  fd = socket (h->connaddr.ss_family,
-               SOCK_STREAM|SOCK_NONBLOCK|SOCK_CLOEXEC, 0);
+  family = h->connaddr.ss_family;
+  fd = socket (family, SOCK_STREAM|SOCK_NONBLOCK|SOCK_CLOEXEC, 0);
   if (fd == -1) {
     SET_NEXT_STATE (%.DEAD);
     set_error (errno, "socket");
@@ -65,14 +66,12 @@ STATE_MACHINE {
 
   disable_nagle (fd);
 
-  if (connect (fd, (struct sockaddr *) &h->connaddr,
-               h->connaddrlen) == -1) {
-    if (errno != EINPROGRESS) {
-      SET_NEXT_STATE (%.DEAD);
-      set_error (errno, "connect");
-      return 0;
-    }
-  }
+  r = connect (fd, (struct sockaddr *) &h->connaddr, h->connaddrlen);
+  if (r == 0 || (r == -1 && errno == EINPROGRESS))
+    return 0;
+  assert (r == -1);
+  SET_NEXT_STATE (%.DEAD);
+  set_error (errno, "connect");
   return 0;
 
  CONNECT.CONNECTING:
-- 
2.29.0.rc2




More information about the Libguestfs mailing list