summaryrefslogtreecommitdiffstats
path: root/server/reds.c
diff options
context:
space:
mode:
authorYonit Halperin <yhalperi@redhat.com>2012-07-02 10:49:19 +0300
committerYonit Halperin <yhalperi@redhat.com>2012-08-27 09:04:52 +0300
commitf45fb9e1b66f691da7432377e0ff4000bccc1aa9 (patch)
treebee46be89b6d4fb002b81d0fe443950222494d24 /server/reds.c
parent2a1369c91966450424910d51f39e4b57a7c8973f (diff)
downloadspice-f45fb9e1b66f691da7432377e0ff4000bccc1aa9.tar.gz
spice-f45fb9e1b66f691da7432377e0ff4000bccc1aa9.tar.xz
spice-f45fb9e1b66f691da7432377e0ff4000bccc1aa9.zip
spice.h: add spice_server_set_seamless_migration
This new call is used in order to identify whether qemu, or the management (e.g. libvirt), support seamless migration. If it is supported, qemu spice cmd-line configuration should have seamless-migration=on. In addition, we disable seamless migration support if multiple clients are allowed. Currently, only one client is supported.
Diffstat (limited to 'server/reds.c')
-rw-r--r--server/reds.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/server/reds.c b/server/reds.c
index 416dff40..6397b41a 100644
--- a/server/reds.c
+++ b/server/reds.c
@@ -254,6 +254,7 @@ typedef struct RedsState {
int vm_running;
Ring char_devs_states; /* list of SpiceCharDeviceStateItem */
+ int seamless_migration_enabled;
SSL_CTX *ctx;
@@ -4059,6 +4060,14 @@ SPICE_GNUC_VISIBLE void spice_server_vm_stop(SpiceServer *s)
red_dispatcher_on_vm_stop();
}
+SPICE_GNUC_VISIBLE void spice_server_set_seamless_migration(SpiceServer *s, int enable)
+{
+ spice_assert(s == reds);
+ /* seamless migration is not supported with multiple clients */
+ reds->seamless_migration_enabled = enable && !reds->allow_multiple_clients;
+ spice_debug("seamless migration enabled=%d", enable);
+}
+
ssize_t reds_stream_read(RedsStream *s, void *buf, size_t nbyte)
{
ssize_t ret;