X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=migration-unix.c;h=1cdadfbc8366ee5d9c1aed9b2973277eeb169f60;hb=60e68042cf70f271308dc6b4b22b609d054af929;hp=94b7022fc856d3564954120eca9d737155f39eb2;hpb=b352365f5abec075dede0222f1bc37674d64117c;p=mirror_qemu.git diff --git a/migration-unix.c b/migration-unix.c index 94b7022fc8..1cdadfbc83 100644 --- a/migration-unix.c +++ b/migration-unix.c @@ -13,8 +13,12 @@ * GNU GPL, version 2 or (at your option) any later version. */ +#include + #include "qemu-common.h" +#include "qemu/error-report.h" #include "qemu/sockets.h" +#include "qemu/main-loop.h" #include "migration/migration.h" #include "migration/qemu-file.h" #include "block/block.h" @@ -29,12 +33,12 @@ do { } while (0) #endif -static void unix_wait_for_connect(int fd, void *opaque) +static void unix_wait_for_connect(int fd, Error *err, void *opaque) { MigrationState *s = opaque; if (fd < 0) { - DPRINTF("migrate connect error\n"); + DPRINTF("migrate connect error: %s\n", error_get_pretty(err)); s->file = NULL; migrate_fd_error(s); } else { @@ -55,24 +59,26 @@ static void unix_accept_incoming_migration(void *opaque) socklen_t addrlen = sizeof(addr); int s = (intptr_t)opaque; QEMUFile *f; - int c; + int c, err; do { c = qemu_accept(s, (struct sockaddr *)&addr, &addrlen); - } while (c == -1 && errno == EINTR); + err = errno; + } while (c < 0 && err == 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 out; + if (c < 0) { + error_report("could not accept migration connection (%s)", + strerror(err)); + return; } f = qemu_fopen_socket(c, "rb"); if (f == NULL) { - fprintf(stderr, "could not qemu_fopen socket\n"); + error_report("could not qemu_fopen socket"); goto out; }