Commit a6ef2909 authored by Paolo Bonzini's avatar Paolo Bonzini
Browse files

migration: clean up server sockets and handlers before invoking process_incoming_migration



A first step towards making a common "suffix" for all migration protocols,
and moving it to process_incoming_migration.

Reviewed-by: default avatarOrit Wasserman <owasserm@redhat.com>
Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
parent d263a20b
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -87,8 +87,8 @@ static void exec_accept_incoming_migration(void *opaque)
{
    QEMUFile *f = opaque;

    process_incoming_migration(f);
    qemu_set_fd_handler2(qemu_get_fd(f), NULL, NULL, NULL, NULL);
    process_incoming_migration(f);
    qemu_fclose(f);
}

+1 −1
Original line number Diff line number Diff line
@@ -92,8 +92,8 @@ static void fd_accept_incoming_migration(void *opaque)
{
    QEMUFile *f = opaque;

    process_incoming_migration(f);
    qemu_set_fd_handler2(qemu_get_fd(f), NULL, NULL, NULL, NULL);
    process_incoming_migration(f);
    qemu_fclose(f);
}

+3 −4
Original line number Diff line number Diff line
@@ -88,12 +88,14 @@ static void tcp_accept_incoming_migration(void *opaque)
    do {
        c = qemu_accept(s, (struct sockaddr *)&addr, &addrlen);
    } while (c == -1 && socket_error() == EINTR);
    qemu_set_fd_handler2(s, NULL, NULL, NULL, NULL);
    close(s);

    DPRINTF("accepted migration\n");

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

    f = qemu_fopen_socket(c);
@@ -106,9 +108,6 @@ static void tcp_accept_incoming_migration(void *opaque)
    qemu_fclose(f);
out:
    close(c);
out2:
    qemu_set_fd_handler2(s, NULL, NULL, NULL, NULL);
    close(s);
}

void tcp_start_incoming_migration(const char *host_port, Error **errp)
+3 −4
Original line number Diff line number Diff line
@@ -88,12 +88,14 @@ static void unix_accept_incoming_migration(void *opaque)
    do {
        c = qemu_accept(s, (struct sockaddr *)&addr, &addrlen);
    } while (c == -1 && errno == EINTR);
    qemu_set_fd_handler2(s, NULL, NULL, NULL, NULL);
    close(s);

    DPRINTF("accepted migration\n");

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

    f = qemu_fopen_socket(c);
@@ -106,9 +108,6 @@ static void unix_accept_incoming_migration(void *opaque)
    qemu_fclose(f);
out:
    close(c);
out2:
    qemu_set_fd_handler2(s, NULL, NULL, NULL, NULL);
    close(s);
}

void unix_start_incoming_migration(const char *path, Error **errp)