summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGerd Hoffmann2014-10-21 14:50:42 +0200
committerGerd Hoffmann2015-01-22 11:18:46 +0100
commitc8496408b443a2a34dd03ad4274c2575248aa3e8 (patch)
tree8f09f6668ac0e4a2099630aac598dbfc103fcafd
parentvnc: remove unused DisplayState parameter, add id instead. (diff)
downloadqemu-c8496408b443a2a34dd03ad4274c2575248aa3e8.tar.gz
qemu-c8496408b443a2a34dd03ad4274c2575248aa3e8.tar.xz
qemu-c8496408b443a2a34dd03ad4274c2575248aa3e8.zip
vnc: add display id to acl names
In case the display id is "default" (which is the one you get if you don't explicitly assign one) we keep the old name scheme, without display, for backward compatibility reasons. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Reviewed-by: Gonglei <arei.gonglei@huawei.com>
-rw-r--r--ui/vnc.c22
1 files changed, 20 insertions, 2 deletions
diff --git a/ui/vnc.c b/ui/vnc.c
index d9882752ca..24b5540040 100644
--- a/ui/vnc.c
+++ b/ui/vnc.c
@@ -3207,18 +3207,36 @@ void vnc_display_open(const char *id, const char *display, Error **errp)
#ifdef CONFIG_VNC_TLS
if (acl && x509 && vs->tls.x509verify) {
- if (!(vs->tls.acl = qemu_acl_init("vnc.x509dname"))) {
+ char *aclname;
+
+ if (strcmp(vs->id, "default") == 0) {
+ aclname = g_strdup("vnc.x509dname");
+ } else {
+ aclname = g_strdup_printf("vnc.%s.x509dname", vs->id);
+ }
+ vs->tls.acl = qemu_acl_init(aclname);
+ if (!vs->tls.acl) {
fprintf(stderr, "Failed to create x509 dname ACL\n");
exit(1);
}
+ g_free(aclname);
}
#endif
#ifdef CONFIG_VNC_SASL
if (acl && sasl) {
- if (!(vs->sasl.acl = qemu_acl_init("vnc.username"))) {
+ char *aclname;
+
+ if (strcmp(vs->id, "default") == 0) {
+ aclname = g_strdup("vnc.username");
+ } else {
+ aclname = g_strdup_printf("vnc.%s.username", vs->id);
+ }
+ vs->sasl.acl = qemu_acl_init(aclname);
+ if (!vs->sasl.acl) {
fprintf(stderr, "Failed to create username ACL\n");
exit(1);
}
+ g_free(aclname);
}
#endif