From b16be2a90641f8fe48fb521253c4f15a0b19ec6d Mon Sep 17 00:00:00 2001 From: Jonathon Jongsma Date: Tue, 27 Jan 2015 13:24:30 -0600 Subject: Move migration_interface to RedsState struct --- server/reds-private.h | 1 + server/reds.c | 31 +++++++++++++++---------------- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/server/reds-private.h b/server/reds-private.h index a8d47a44..ca3c40b8 100644 --- a/server/reds-private.h +++ b/server/reds-private.h @@ -184,6 +184,7 @@ struct RedsState { int spice_port; SpiceCharDeviceInstance *vdagent; + SpiceMigrateInstance *migration_interface; }; #endif diff --git a/server/reds.c b/server/reds.c index 02578589..5cea11ab 100644 --- a/server/reds.c +++ b/server/reds.c @@ -74,7 +74,6 @@ #include "reds-private.h" SpiceCoreInterface *core = NULL; -static SpiceMigrateInstance *migration_interface = NULL; /* Debugging only variable: allow multiple client connections to the spice * server */ @@ -349,13 +348,13 @@ static void reds_mig_cleanup(RedsState *reds) if (reds->mig_wait_connect || reds->mig_wait_disconnect) { SpiceMigrateInterface *sif; - spice_assert(migration_interface); - sif = SPICE_CONTAINEROF(migration_interface->base.sif, SpiceMigrateInterface, base); + spice_assert(reds->migration_interface); + sif = SPICE_CONTAINEROF(reds->migration_interface->base.sif, SpiceMigrateInterface, base); if (reds->mig_wait_connect) { - sif->migrate_connect_complete(migration_interface); + sif->migrate_connect_complete(reds->migration_interface); } else { if (sif->migrate_end_complete) { - sif->migrate_end_complete(migration_interface); + sif->migrate_end_complete(reds->migration_interface); } } } @@ -3155,7 +3154,7 @@ SPICE_GNUC_VISIBLE int spice_server_add_interface(SpiceServer *s, return -1; } else if (strcmp(interface->type, SPICE_INTERFACE_MIGRATION) == 0) { spice_info("SPICE_INTERFACE_MIGRATION"); - if (migration_interface) { + if (reds->migration_interface) { spice_warning("already have migration"); return -1; } @@ -3165,8 +3164,8 @@ SPICE_GNUC_VISIBLE int spice_server_add_interface(SpiceServer *s, spice_warning("unsupported migration interface"); return -1; } - migration_interface = SPICE_CONTAINEROF(sin, SpiceMigrateInstance, base); - migration_interface->st = spice_new0(SpiceMigrateState, 1); + reds->migration_interface = SPICE_CONTAINEROF(sin, SpiceMigrateInstance, base); + reds->migration_interface->st = spice_new0(SpiceMigrateState, 1); } return 0; @@ -3739,7 +3738,7 @@ SPICE_GNUC_VISIBLE int spice_server_migrate_connect(SpiceServer *s, const char* int try_seamless; spice_info(NULL); - spice_assert(migration_interface); + spice_assert(s->migration_interface); spice_assert(reds == s); if (reds->expect_migrate) { @@ -3747,10 +3746,10 @@ SPICE_GNUC_VISIBLE int spice_server_migrate_connect(SpiceServer *s, const char* main_channel_migrate_src_complete(reds->main_channel, FALSE); } - sif = SPICE_CONTAINEROF(migration_interface->base.sif, SpiceMigrateInterface, base); + sif = SPICE_CONTAINEROF(s->migration_interface->base.sif, SpiceMigrateInterface, base); if (!reds_set_migration_dest_info(dest, port, secure_port, cert_subject)) { - sif->migrate_connect_complete(migration_interface); + sif->migrate_connect_complete(s->migration_interface); return -1; } @@ -3776,7 +3775,7 @@ SPICE_GNUC_VISIBLE int spice_server_migrate_connect(SpiceServer *s, const char* reds_mig_release(reds); spice_info("no client connected"); } - sif->migrate_connect_complete(migration_interface); + sif->migrate_connect_complete(s->migration_interface); } return 0; @@ -3787,7 +3786,7 @@ SPICE_GNUC_VISIBLE int spice_server_migrate_info(SpiceServer *s, const char* des const char* cert_subject) { spice_info(NULL); - spice_assert(!migration_interface); + spice_assert(!s->migration_interface); spice_assert(reds == s); if (!reds_set_migration_dest_info(dest, port, secure_port, cert_subject)) { @@ -3827,10 +3826,10 @@ SPICE_GNUC_VISIBLE int spice_server_migrate_end(SpiceServer *s, int completed) spice_info(NULL); - spice_assert(migration_interface); + spice_assert(s->migration_interface); spice_assert(reds == s); - sif = SPICE_CONTAINEROF(migration_interface->base.sif, SpiceMigrateInterface, base); + sif = SPICE_CONTAINEROF(s->migration_interface->base.sif, SpiceMigrateInterface, base); if (completed && !reds->expect_migrate && reds->num_clients) { spice_warning("spice_server_migrate_info was not called, disconnecting clients"); reds_disconnect(reds); @@ -3847,7 +3846,7 @@ SPICE_GNUC_VISIBLE int spice_server_migrate_end(SpiceServer *s, int completed) return 0; complete: if (sif->migrate_end_complete) { - sif->migrate_end_complete(migration_interface); + sif->migrate_end_complete(s->migration_interface); } return ret; } -- cgit