#include "migration.h"
#include "qemu-char.h"
#include "sysemu.h"
-#include "console.h"
#include "buffered_file.h"
#include "block.h"
dprintf("connect completed\n");
do {
- ret = getsockopt(s->fd, SOL_SOCKET, SO_ERROR, &val, &valsize);
+ ret = getsockopt(s->fd, SOL_SOCKET, SO_ERROR, (void *) &val, &valsize);
} while (ret == -1 && (s->get_error(s)) == EINTR);
if (ret < 0) {
MigrationState *tcp_start_outgoing_migration(const char *host_port,
int64_t bandwidth_limit,
- int async)
+ int detach)
{
struct sockaddr_in addr;
FdMigrationState *s;
return NULL;
s = qemu_mallocz(sizeof(*s));
- if (s == NULL)
- return NULL;
s->get_error = socket_errno;
s->write = socket_write;
s->mig_state.release = migrate_fd_release;
s->state = MIG_STATE_ACTIVE;
- s->detach = !async;
+ s->mon_resume = NULL;
s->bandwidth_limit = bandwidth_limit;
s->fd = socket(PF_INET, SOCK_STREAM, 0);
if (s->fd == -1) {
socket_set_nonblock(s->fd);
- if (s->detach == 1) {
- dprintf("detaching from monitor\n");
- monitor_suspend();
- s->detach = 2;
- }
+ if (!detach)
+ migrate_fd_monitor_suspend(s);
do {
ret = connect(s->fd, (struct sockaddr *)&addr, sizeof(addr));