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 ---