vnc.c (a0430dd8abb8a2f31c5ee919daab2e3d76353c04) | vnc.c (b76806d4ec5c55d36bf5508f1405d132a4b862de) |
---|---|
1/* 2 * QEMU VNC display driver 3 * 4 * Copyright (C) 2006 Anthony Liguori <anthony@codemonkey.ws> 5 * Copyright (C) 2006 Fabrice Bellard 6 * Copyright (C) 2009 Red Hat, Inc 7 * 8 * Permission is hereby granted, free of charge, to any person obtaining a copy --- 19 unchanged lines hidden (view full) --- 28#include "vnc.h" 29#include "vnc-jobs.h" 30#include "trace.h" 31#include "sysemu/sysemu.h" 32#include "qemu/error-report.h" 33#include "qemu/option.h" 34#include "qemu/sockets.h" 35#include "qemu/timer.h" | 1/* 2 * QEMU VNC display driver 3 * 4 * Copyright (C) 2006 Anthony Liguori <anthony@codemonkey.ws> 5 * Copyright (C) 2006 Fabrice Bellard 6 * Copyright (C) 2009 Red Hat, Inc 7 * 8 * Permission is hereby granted, free of charge, to any person obtaining a copy --- 19 unchanged lines hidden (view full) --- 28#include "vnc.h" 29#include "vnc-jobs.h" 30#include "trace.h" 31#include "sysemu/sysemu.h" 32#include "qemu/error-report.h" 33#include "qemu/option.h" 34#include "qemu/sockets.h" 35#include "qemu/timer.h" |
36#include "qemu/acl.h" | 36#include "authz/list.h" |
37#include "qemu/config-file.h" 38#include "qapi/qapi-emit-events.h" 39#include "qapi/qapi-events-ui.h" 40#include "qapi/error.h" 41#include "qapi/qapi-commands-ui.h" 42#include "ui/input.h" 43#include "crypto/hash.h" 44#include "crypto/tlscredsanon.h" --- 3179 unchanged lines hidden (view full) --- 3224 vd->wslistener = NULL; 3225 3226 vd->auth = VNC_AUTH_INVALID; 3227 vd->subauth = VNC_AUTH_INVALID; 3228 if (vd->tlscreds) { 3229 object_unparent(OBJECT(vd->tlscreds)); 3230 vd->tlscreds = NULL; 3231 } | 37#include "qemu/config-file.h" 38#include "qapi/qapi-emit-events.h" 39#include "qapi/qapi-events-ui.h" 40#include "qapi/error.h" 41#include "qapi/qapi-commands-ui.h" 42#include "ui/input.h" 43#include "crypto/hash.h" 44#include "crypto/tlscredsanon.h" --- 3179 unchanged lines hidden (view full) --- 3224 vd->wslistener = NULL; 3225 3226 vd->auth = VNC_AUTH_INVALID; 3227 vd->subauth = VNC_AUTH_INVALID; 3228 if (vd->tlscreds) { 3229 object_unparent(OBJECT(vd->tlscreds)); 3230 vd->tlscreds = NULL; 3231 } |
3232 g_free(vd->tlsaclname); 3233 vd->tlsaclname = NULL; | 3232 if (vd->tlsauthz) { 3233 object_unparent(OBJECT(vd->tlsauthz)); 3234 vd->tlsauthz = NULL; 3235 } 3236 g_free(vd->tlsauthzid); 3237 vd->tlsauthzid = NULL; |
3234 if (vd->lock_key_sync) { 3235 qemu_remove_led_event_handler(vd->led); 3236 vd->led = NULL; 3237 } | 3238 if (vd->lock_key_sync) { 3239 qemu_remove_led_event_handler(vd->led); 3240 vd->led = NULL; 3241 } |
3242#ifdef CONFIG_VNC_SASL 3243 if (vd->sasl.authz) { 3244 object_unparent(OBJECT(vd->sasl.authz)); 3245 vd->sasl.authz = NULL; 3246 } 3247 g_free(vd->sasl.authzid); 3248 vd->sasl.authzid = NULL; 3249#endif |
|
3238} 3239 3240int vnc_display_password(const char *id, const char *password) 3241{ 3242 VncDisplay *vd = vnc_display_find(id); 3243 3244 if (!vd) { 3245 return -EINVAL; --- 636 unchanged lines hidden (view full) --- 3882 * if lossy updates are enabled so we can disable all the 3883 * calculations otherwise */ 3884 if (!vd->lossy) { 3885 vd->non_adaptive = true; 3886 } 3887 3888 if (acl) { 3889 if (strcmp(vd->id, "default") == 0) { | 3250} 3251 3252int vnc_display_password(const char *id, const char *password) 3253{ 3254 VncDisplay *vd = vnc_display_find(id); 3255 3256 if (!vd) { 3257 return -EINVAL; --- 636 unchanged lines hidden (view full) --- 3894 * if lossy updates are enabled so we can disable all the 3895 * calculations otherwise */ 3896 if (!vd->lossy) { 3897 vd->non_adaptive = true; 3898 } 3899 3900 if (acl) { 3901 if (strcmp(vd->id, "default") == 0) { |
3890 vd->tlsaclname = g_strdup("vnc.x509dname"); | 3902 vd->tlsauthzid = g_strdup("vnc.x509dname"); |
3891 } else { | 3903 } else { |
3892 vd->tlsaclname = g_strdup_printf("vnc.%s.x509dname", vd->id); | 3904 vd->tlsauthzid = g_strdup_printf("vnc.%s.x509dname", vd->id); |
3893 } | 3905 } |
3894 qemu_acl_init(vd->tlsaclname); | 3906 vd->tlsauthz = QAUTHZ(qauthz_list_new(vd->tlsauthzid, 3907 QAUTHZ_LIST_POLICY_DENY, 3908 &error_abort)); |
3895 } 3896#ifdef CONFIG_VNC_SASL 3897 if (acl && sasl) { | 3909 } 3910#ifdef CONFIG_VNC_SASL 3911 if (acl && sasl) { |
3898 char *aclname; 3899 | |
3900 if (strcmp(vd->id, "default") == 0) { | 3912 if (strcmp(vd->id, "default") == 0) { |
3901 aclname = g_strdup("vnc.username"); | 3913 vd->sasl.authzid = g_strdup("vnc.username"); |
3902 } else { | 3914 } else { |
3903 aclname = g_strdup_printf("vnc.%s.username", vd->id); | 3915 vd->sasl.authzid = g_strdup_printf("vnc.%s.username", vd->id); |
3904 } | 3916 } |
3905 vd->sasl.acl = qemu_acl_init(aclname); 3906 g_free(aclname); | 3917 vd->sasl.authz = QAUTHZ(qauthz_list_new(vd->sasl.authzid, 3918 QAUTHZ_LIST_POLICY_DENY, 3919 &error_abort)); |
3907 } 3908#endif 3909 3910 if (vnc_display_setup_auth(&vd->auth, &vd->subauth, 3911 vd->tlscreds, password, 3912 sasl, false, errp) < 0) { 3913 goto fail; 3914 } --- 149 unchanged lines hidden --- | 3920 } 3921#endif 3922 3923 if (vnc_display_setup_auth(&vd->auth, &vd->subauth, 3924 vd->tlscreds, password, 3925 sasl, false, errp) < 0) { 3926 goto fail; 3927 } --- 149 unchanged lines hidden --- |