summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJonathon Jongsma <jjongsma@redhat.com>2015-01-27 13:24:30 -0600
committerFabiano FidĂȘncio <fidencio@redhat.com>2015-02-23 23:00:45 +0100
commitb16be2a90641f8fe48fb521253c4f15a0b19ec6d (patch)
treed6dd2a3058e1065b132e758de0d96328fa1dc27b
parentfa217787cc5c69b9d34cde5b313612eafea4676b (diff)
downloadspice-b16be2a90641f8fe48fb521253c4f15a0b19ec6d.tar.gz
spice-b16be2a90641f8fe48fb521253c4f15a0b19ec6d.tar.xz
spice-b16be2a90641f8fe48fb521253c4f15a0b19ec6d.zip
Move migration_interface to RedsState struct
-rw-r--r--server/reds-private.h1
-rw-r--r--server/reds.c31
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;
}