Re: [PATCH v2 00/21] Add qemu RDP server support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Feb 18, 2025 at 02:16:05PM +0400, marcandre.lureau@xxxxxxxxxx wrote:
From: Marc-André Lureau <marcandre.lureau@xxxxxxxxxx>

Hi,

This patch series offers an out-of-process Remote Desktop Protocol (RDP)
server solution utilizing QEMU's -display dbus interface, offering improved
modularity and potential security benefits compared to built-in server.

This initiative was spearheaded by Mihnea Buzatu during the QEMU Summer of Code
2023. The project's goal was to develop an out-of-process RDP server using the
-display dbus interface, implemented in Rust. Given that the IronRDP crate
lacked some server support at the time, investments in IronRDP were required.

I finally released an initial v0.1 version of qemu-rdp on crates.io
(https://crates.io/crates/qemu-rdp). That should allow more people to review and
evaluate the state of this work.

On unix systems, with cargo/rust toolchain installed, it should be as easy as
running "cargo install qemu-rdp", apply this patch series for libvirt, set the
"rdp_tls_x509_cert_dir" location for your TLS certificates, and configure a VM
with both dbus & rdp graphics (run "virsh domdisplay DOMAIN" to get the display
connection details).

Thanks for the reviews & feedback!

v2: thanks to Daniel review
- drop extra error report from "qemu: report an error for unsupported graphics"
- replace g_return pre-conditions with ATTRIBUTE_NONNULL
- improve "qemu/dbus: keep a connection to the VM D-Bus" to also reconnect
- use domainLogContext for logging (for virtiofs as well)
- check for qemu-rdp availabilty for setting 'rdp' capability
- make dbus-addr qemu-rdp capability mandatory
- rebased
- add r-b tags

Marc-André Lureau (21):
 build-sys: drop -Winline when optimization=g
 build: fix -Werror=maybe-uninitialized
 qemu-slirp: drop unneeded check for OOM
 util: annotate non-null arguments for virGDBusCallMethod()
 qemu: fall-through for unsupported graphics
 qemu: add rdp state directory
 qemu: add qemu RDP configuration
 conf: parse optional RDP username & password
 conf: generalize virDomainDefHasSpiceGraphics
 qemu: use virDomainDefHasGraphics
 qemu: add RDP ports range allocator
 qemu: limit to one <graphics type='rdp'>
 qemu/virtiofs: use domainLogContext
 qemu/dbus: keep a connection to the VM D-Bus
 qemu/dbus: log daemon stdout/err, use domainLogContext
 qemu: validate RDP configuration
 qemu: add qemu-rdp helper unit
 qemu: pass virQEMUDriverConfig to capabilities
 qemu: add 'rdp' capability if qemu-rdp is available
 qemu: add RDP support
 tests: add qemu <graphics type='rdp'/> test

Without testing it (yet, I want to try it next week), without deep
knowledge of D-Bus details and ideally with the teeny tiny details
adjusted:

Reviewed-by: Martin Kletzander <mkletzan@xxxxxxxxxx>

Attachment: signature.asc
Description: PGP signature


[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]

  Powered by Linux