diff options
author | Christophe Fergeau <cfergeau@redhat.com> | 2015-04-16 17:28:57 +0200 |
---|---|---|
committer | Christophe Fergeau <cfergeau@redhat.com> | 2015-06-09 18:06:39 +0200 |
commit | 809d097cfda96ad95d2c5e1e6de625082aa91575 (patch) | |
tree | 8aa494d171238ed21c7d942689c1f032e89e2dd4 | |
parent | 1856dbfa24f4a65d3b6117d89b11860214340cb6 (diff) | |
download | virt-viewer-809d097cfda96ad95d2c5e1e6de625082aa91575.tar.gz virt-viewer-809d097cfda96ad95d2c5e1e6de625082aa91575.tar.xz virt-viewer-809d097cfda96ad95d2c5e1e6de625082aa91575.zip |
vv-file: Use "versions" in min version check
This tries to use the list of versions added to .vv files by the
previous commit. If remote-viewer was built with an os-id specified, and
if it's found in the 'versions' .vv file key, then the version
associated with it is used for version checks, otherwise the 'version'
field is used if present.
-rw-r--r-- | src/virt-viewer-file.c | 23 |
1 files changed, 21 insertions, 2 deletions
diff --git a/src/virt-viewer-file.c b/src/virt-viewer-file.c index 35d25fb..3caf1ec 100644 --- a/src/virt-viewer-file.c +++ b/src/virt-viewer-file.c @@ -774,8 +774,27 @@ virt_viewer_file_check_min_version(VirtViewerFile *self, GError **error) gchar *min_version = NULL; gint version_cmp; - if (virt_viewer_file_is_set(self, "version")) { - min_version = virt_viewer_file_get_version(self); +#ifdef REMOTE_VIEWER_OS_ID + if (virt_viewer_file_is_set(self, "versions")) { + GHashTable *versions; + + versions = virt_viewer_file_get_versions(self); + + min_version = g_strdup(g_hash_table_lookup(versions, REMOTE_VIEWER_OS_ID)); + + g_hash_table_unref(versions); + } +#endif + + + if (min_version == NULL) { + if (virt_viewer_file_is_set(self, "version")) { + min_version = virt_viewer_file_get_version(self); + } + } + + if (min_version == NULL) { + return TRUE; } version_cmp = virt_viewer_compare_version(min_version, PACKAGE_VERSION); |