qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH 23/23] migration: make migration-{tcp, unix} con


From: Anthony Liguori
Subject: Re: [Qemu-devel] [PATCH 23/23] migration: make migration-{tcp, unix} consistent
Date: Tue, 04 Oct 2011 09:34:27 -0500
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.21) Gecko/20110831 Lightning/1.0b2 Thunderbird/3.1.13

On 09/23/2011 07:57 AM, Juan Quintela wrote:
Files are almost identical in functionality, just remove the
differences that make no sense.

Signed-off-by: Juan Quintela<address@hidden>

Reviewed-by: Anthony Liguori <address@hidden>

Regards,

Anthony Liguori

---
  migration-tcp.c  |   15 ++++++++++-----
  migration-unix.c |   46 +++++++++++++++++++++++++---------------------
  2 files changed, 35 insertions(+), 26 deletions(-)

diff --git a/migration-tcp.c b/migration-tcp.c
index 619df21..5aa742c 100644
--- a/migration-tcp.c
+++ b/migration-tcp.c
@@ -48,7 +48,6 @@ static int tcp_close(MigrationState *s)
      return 0;
  }

-
  static void tcp_wait_for_connect(void *opaque)
  {
      MigrationState *s = opaque;
@@ -84,12 +83,14 @@ int tcp_start_outgoing_migration(MigrationState *s, const 
char *host_port)
      if (ret<  0) {
          return ret;
      }
+
      s->get_error = socket_errno;
      s->write = socket_write;
      s->close = tcp_close;

      s->fd = qemu_socket(PF_INET, SOCK_STREAM, 0);
      if (s->fd == -1) {
+        DPRINTF("Unable to open socket");
          return -socket_error();
      }

@@ -155,23 +156,27 @@ int tcp_start_incoming_migration(const char *host_port)
      int val;
      int s;

+    DPRINTF("Attempting to start an incoming migration\n");
+
      if (parse_host_port(&addr, host_port)<  0) {
          fprintf(stderr, "invalid host/port combination: %s\n", host_port);
          return -EINVAL;
      }

      s = qemu_socket(PF_INET, SOCK_STREAM, 0);
-    if (s == -1)
+    if (s == -1) {
          return -socket_error();
+    }

      val = 1;
      setsockopt(s, SOL_SOCKET, SO_REUSEADDR, (const char *)&val, sizeof(val));

-    if (bind(s, (struct sockaddr *)&addr, sizeof(addr)) == -1)
+    if (bind(s, (struct sockaddr *)&addr, sizeof(addr)) == -1) {
          goto err;
-
-    if (listen(s, 1) == -1)
+    }
+    if (listen(s, 1) == -1) {
          goto err;
+    }

      qemu_set_fd_handler2(s, NULL, tcp_accept_incoming_migration, NULL,
                           (void *)(intptr_t)s);
diff --git a/migration-unix.c b/migration-unix.c
index 428fe66..f9d34b9 100644
--- a/migration-unix.c
+++ b/migration-unix.c
@@ -87,7 +87,7 @@ int unix_start_outgoing_migration(MigrationState *s, const 
char *path)
      s->close = unix_close;

      s->fd = qemu_socket(PF_UNIX, SOCK_STREAM, 0);
-    if (s->fd<  0) {
+    if (s->fd == -1) {
          DPRINTF("Unable to open socket");
          return -errno;
      }
@@ -130,7 +130,7 @@ static void unix_accept_incoming_migration(void *opaque)

      if (c == -1) {
          fprintf(stderr, "could not accept migration connection\n");
-        return;
+        goto out2;
      }

      f = qemu_fopen_socket(c);
@@ -142,45 +142,49 @@ static void unix_accept_incoming_migration(void *opaque)
      process_incoming_migration(f);
      qemu_fclose(f);
  out:
+    close(c);
+out2:
      qemu_set_fd_handler2(s, NULL, NULL, NULL, NULL);
      close(s);
-    close(c);
  }

  int unix_start_incoming_migration(const char *path)
  {
-    struct sockaddr_un un;
-    int sock;
+    struct sockaddr_un addr;
+    int s;
+    int ret;

      DPRINTF("Attempting to start an incoming migration\n");

-    sock = qemu_socket(PF_UNIX, SOCK_STREAM, 0);
-    if (sock<  0) {
+    s = qemu_socket(PF_UNIX, SOCK_STREAM, 0);
+    if (s == -1) {
          fprintf(stderr, "Could not open unix socket: %s\n", strerror(errno));
-        return -EINVAL;
+        return -errno;
      }

-    memset(&un, 0, sizeof(un));
-    un.sun_family = AF_UNIX;
-    snprintf(un.sun_path, sizeof(un.sun_path), "%s", path);
+    memset(&addr, 0, sizeof(addr));
+    addr.sun_family = AF_UNIX;
+    snprintf(addr.sun_path, sizeof(addr.sun_path), "%s", path);

-    unlink(un.sun_path);
-    if (bind(sock, (struct sockaddr*)&un, sizeof(un))<  0) {
-        fprintf(stderr, "bind(unix:%s): %s\n", un.sun_path, strerror(errno));
+    unlink(addr.sun_path);
+    if (bind(s, (struct sockaddr *)&addr, sizeof(addr))<  0) {
+        ret = -errno;
+        fprintf(stderr, "bind(unix:%s): %s\n", addr.sun_path, strerror(errno));
          goto err;
      }
-    if (listen(sock, 1)<  0) {
-        fprintf(stderr, "listen(unix:%s): %s\n", un.sun_path, strerror(errno));
+    if (listen(s, 1) == -1) {
+        fprintf(stderr, "listen(unix:%s): %s\n", addr.sun_path,
+                strerror(errno));
+        ret = -errno;
          goto err;
      }

-    qemu_set_fd_handler2(sock, NULL, unix_accept_incoming_migration, NULL,
-                        (void *)(intptr_t)sock);
+    qemu_set_fd_handler2(s, NULL, unix_accept_incoming_migration, NULL,
+                         (void *)(intptr_t)s);

      return 0;

  err:
-    close(sock);
-
-    return -EINVAL;
+    close(s);
+    return ret;
  }




reply via email to

[Prev in Thread] Current Thread [Next in Thread]