--- qemu/migration-tcp.c 2018/04/24 17:20:15 1.1.1.2 +++ qemu/migration-tcp.c 2018/04/24 17:33:40 1.1.1.3 @@ -76,9 +76,12 @@ static void tcp_wait_for_connect(void *o } } -MigrationState *tcp_start_outgoing_migration(const char *host_port, +MigrationState *tcp_start_outgoing_migration(Monitor *mon, + const char *host_port, int64_t bandwidth_limit, - int detach) + int detach, + int blk, + int inc) { struct sockaddr_in addr; FdMigrationState *s; @@ -96,10 +99,13 @@ MigrationState *tcp_start_outgoing_migra s->mig_state.get_status = migrate_fd_get_status; s->mig_state.release = migrate_fd_release; + s->mig_state.blk = blk; + s->mig_state.shared = inc; + s->state = MIG_STATE_ACTIVE; - s->mon_resume = NULL; + s->mon = NULL; s->bandwidth_limit = bandwidth_limit; - s->fd = socket(PF_INET, SOCK_STREAM, 0); + s->fd = qemu_socket(PF_INET, SOCK_STREAM, 0); if (s->fd == -1) { qemu_free(s); return NULL; @@ -107,8 +113,9 @@ MigrationState *tcp_start_outgoing_migra socket_set_nonblock(s->fd); - if (!detach) - migrate_fd_monitor_suspend(s); + if (!detach) { + migrate_fd_monitor_suspend(s, mon); + } do { ret = connect(s->fd, (struct sockaddr *)&addr, sizeof(addr)); @@ -139,7 +146,7 @@ static void tcp_accept_incoming_migratio int c, ret; do { - c = accept(s, (struct sockaddr *)&addr, &addrlen); + c = qemu_accept(s, (struct sockaddr *)&addr, &addrlen); } while (c == -1 && socket_error() == EINTR); dprintf("accepted migration\n"); @@ -186,7 +193,7 @@ int tcp_start_incoming_migration(const c return -EINVAL; } - s = socket(PF_INET, SOCK_STREAM, 0); + s = qemu_socket(PF_INET, SOCK_STREAM, 0); if (s == -1) return -socket_error();