diff options
Diffstat (limited to 'migration')
-rw-r--r-- | migration/Makefile.objs | 2 | ||||
-rw-r--r-- | migration/socket.c (renamed from migration/unix.c) | 53 |
2 files changed, 33 insertions, 22 deletions
diff --git a/migration/Makefile.objs b/migration/Makefile.objs index ad7fed95e7..b0b9550916 100644 --- a/migration/Makefile.objs +++ b/migration/Makefile.objs @@ -1,4 +1,4 @@ -common-obj-y += migration.o tcp.o unix.o +common-obj-y += migration.o tcp.o socket.o common-obj-y += vmstate.o common-obj-y += qemu-file.o qemu-file-buf.o qemu-file-unix.o qemu-file-stdio.o common-obj-y += qemu-file-channel.o diff --git a/migration/unix.c b/migration/socket.c index 75205d42ea..a9911d6591 100644 --- a/migration/unix.c +++ b/migration/socket.c @@ -38,42 +38,49 @@ static SocketAddress *unix_build_address(const char *path) } -static void unix_outgoing_migration(Object *src, - Error *err, - gpointer opaque) +static void socket_outgoing_migration(Object *src, + Error *err, + gpointer opaque) { MigrationState *s = opaque; QIOChannel *sioc = QIO_CHANNEL(src); if (err) { - trace_migration_unix_outgoing_error(error_get_pretty(err)); + trace_migration_socket_outgoing_error(error_get_pretty(err)); s->to_dst_file = NULL; migrate_fd_error(s, err); } else { - trace_migration_unix_outgoing_connected(); + trace_migration_socket_outgoing_connected(); migration_set_outgoing_channel(s, sioc); } object_unref(src); } - -void unix_start_outgoing_migration(MigrationState *s, const char *path, Error **errp) +static void socket_start_outgoing_migration(MigrationState *s, + SocketAddress *saddr, + Error **errp) { - SocketAddress *saddr = unix_build_address(path); - QIOChannelSocket *sioc; - sioc = qio_channel_socket_new(); + QIOChannelSocket *sioc = qio_channel_socket_new(); qio_channel_socket_connect_async(sioc, saddr, - unix_outgoing_migration, + socket_outgoing_migration, s, NULL); qapi_free_SocketAddress(saddr); } +void unix_start_outgoing_migration(MigrationState *s, + const char *path, + Error **errp) +{ + SocketAddress *saddr = unix_build_address(path); + socket_start_outgoing_migration(s, saddr, errp); +} + -static gboolean unix_accept_incoming_migration(QIOChannel *ioc, - GIOCondition condition, - gpointer opaque) +static gboolean socket_accept_incoming_migration(QIOChannel *ioc, + GIOCondition condition, + gpointer opaque) { QIOChannelSocket *sioc; Error *err = NULL; @@ -86,7 +93,7 @@ static gboolean unix_accept_incoming_migration(QIOChannel *ioc, goto out; } - trace_migration_unix_incoming_accepted(); + trace_migration_socket_incoming_accepted(); migration_set_incoming_channel(migrate_get_current(), QIO_CHANNEL(sioc)); @@ -99,12 +106,11 @@ out: } -void unix_start_incoming_migration(const char *path, Error **errp) +static void socket_start_incoming_migration(SocketAddress *saddr, + Error **errp) { - SocketAddress *saddr = unix_build_address(path); - QIOChannelSocket *listen_ioc; + QIOChannelSocket *listen_ioc = qio_channel_socket_new(); - listen_ioc = qio_channel_socket_new(); if (qio_channel_socket_listen_sync(listen_ioc, saddr, errp) < 0) { object_unref(OBJECT(listen_ioc)); qapi_free_SocketAddress(saddr); @@ -113,9 +119,14 @@ void unix_start_incoming_migration(const char *path, Error **errp) qio_channel_add_watch(QIO_CHANNEL(listen_ioc), G_IO_IN, - unix_accept_incoming_migration, + socket_accept_incoming_migration, listen_ioc, (GDestroyNotify)object_unref); - qapi_free_SocketAddress(saddr); } + +void unix_start_incoming_migration(const char *path, Error **errp) +{ + SocketAddress *saddr = unix_build_address(path); + socket_start_incoming_migration(saddr, errp); +} |