diff options
author | Alexander Larsson <alexl@redhat.com> | 2010-08-26 15:14:05 +0200 |
---|---|---|
committer | Alexander Larsson <alexl@redhat.com> | 2010-09-02 10:22:41 +0200 |
commit | 0c6d654c2f67795fe5c3229bb615ab2bd99ef7a4 (patch) | |
tree | 20fa805160343ebedbeb3e61b726db3ecff67f7b /server/spice.h | |
parent | fc2a84eb5beb4424d99121e2ed79c6bebefaf27e (diff) | |
download | spice-0c6d654c2f67795fe5c3229bb615ab2bd99ef7a4.tar.gz spice-0c6d654c2f67795fe5c3229bb615ab2bd99ef7a4.tar.xz spice-0c6d654c2f67795fe5c3229bb615ab2bd99ef7a4.zip |
Add API to turn on backwards compatibility mode
When upgrading a cluster of machines you typically do this by
upgrading a set of machines at a time, making the new machines run
the new software version, but in a fashion compatible with the old
versions (in terms of e.g. migration). Then when all machines are
upgrades, any new features in the new version can be enabled.
This API allows qemu to limit the set of features that spice uses to
those compatible with an older version, in order to do an upgrade like
this. Right now it doesn't really do much, since we don't keep compat
with 0.4.0 atm (although that may be added later).
There is no guarantee that any future version of spice support
being compatible with any previous version. However, we will always
support compatibility with the previous major version so that clusters
can be upgraded step by step.
Diffstat (limited to 'server/spice.h')
-rw-r--r-- | server/spice.h | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/server/spice.h b/server/spice.h index 65683a36..6f4c7820 100644 --- a/server/spice.h +++ b/server/spice.h @@ -307,6 +307,17 @@ uint32_t spice_server_record_get_samples(SpiceRecordInstance *sin, /* spice server setup */ +/* Don't use features incompatible with a specific spice + version, so that migration to/from that version works. */ +typedef enum { + SPICE_COMPAT_VERSION_0_4 = 0, + SPICE_COMPAT_VERSION_0_6 = 1, +} spice_compat_version_t; + +#define SPICE_COMPAT_VERSION_CURRENT SPICE_COMPAT_VERSION_0_6 + +spice_compat_version_t spice_get_current_compat_version(void); + typedef struct RedsState SpiceServer; SpiceServer *spice_server_new(void); int spice_server_init(SpiceServer *s, SpiceCoreInterface *core); @@ -315,6 +326,8 @@ void spice_server_destroy(SpiceServer *s); #define SPICE_ADDR_FLAG_IPV4_ONLY (1 << 0) #define SPICE_ADDR_FLAG_IPV6_ONLY (1 << 1) +int spice_server_set_compat_version(SpiceServer *s, + spice_compat_version_t version); int spice_server_set_port(SpiceServer *s, int port); void spice_server_set_addr(SpiceServer *s, const char *addr, int flags); int spice_server_set_noauth(SpiceServer *s); |