commit gnome-remote-desktop for openSUSE:Factory
Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package gnome-remote-desktop for openSUSE:Factory checked in at 2022-05-31 15:47:38 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/gnome-remote-desktop (Old) and /work/SRC/openSUSE:Factory/.gnome-remote-desktop.new.1548 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "gnome-remote-desktop" Tue May 31 15:47:38 2022 rev:10 rq:980030 version:42.2 Changes: -------- --- /work/SRC/openSUSE:Factory/gnome-remote-desktop/gnome-remote-desktop.changes 2022-04-27 21:41:54.745054856 +0200 +++ /work/SRC/openSUSE:Factory/.gnome-remote-desktop.new.1548/gnome-remote-desktop.changes 2022-05-31 15:48:51.320046899 +0200 @@ -1,0 +2,18 @@ +Mon May 30 12:11:18 UTC 2022 - dimstar@opensuse.org + +- Update to version 42.2: + + rdp-graphics-pipeline: Measure bandwidth when sending frame + updates. + + session-rdp: Handle queued bandwidth measure stop operations. + + rdp/nw-auto: Add APIs for bandwidth measurement. + + rdp/nw-auto: Also notify client about network characteristics + results. + + rdp/nw-auto: Turn ping info condition into assertion. + + rdp/nw-auto: Assert RTT consumer != NONE, when removing RTT + consumer. + + rdp/nw-auto: Remove superfluous if condition. + + rdp/nw-auto: Fix initial ping source not being created. + + rdp/rdpgfx: Create RTT pause source while GFX mutex is locked. + + Updated translations. + +------------------------------------------------------------------- Old: ---- gnome-remote-desktop-42.1.1.obscpio New: ---- gnome-remote-desktop-42.2.obscpio ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ gnome-remote-desktop.spec ++++++ --- /var/tmp/diff_new_pack.hUyeHG/_old 2022-05-31 15:48:52.092047412 +0200 +++ /var/tmp/diff_new_pack.hUyeHG/_new 2022-05-31 15:48:52.100047417 +0200 @@ -21,7 +21,7 @@ %define freerdp_version 2.2.0 Name: gnome-remote-desktop -Version: 42.1.1 +Version: 42.2 Release: 0 Summary: GNOME Remote Desktop screen sharing service License: GPL-2.0-or-later ++++++ _service ++++++ --- /var/tmp/diff_new_pack.hUyeHG/_old 2022-05-31 15:48:52.140047444 +0200 +++ /var/tmp/diff_new_pack.hUyeHG/_new 2022-05-31 15:48:52.144047446 +0200 @@ -2,7 +2,7 @@ <service name="obs_scm" mode="disabled"> <param name="url">https://gitlab.gnome.org/GNOME/gnome-remote-desktop.git</param> <param name="scm">git</param> - <param name="revision">refs/tags/42.1.1</param> + <param name="revision">refs/tags/42.2</param> <param name="versionformat">@PARENT_TAG@</param> <param name="changesgenerate">enable</param> </service> ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.hUyeHG/_old 2022-05-31 15:48:52.172047465 +0200 +++ /var/tmp/diff_new_pack.hUyeHG/_new 2022-05-31 15:48:52.176047468 +0200 @@ -1,6 +1,6 @@ <servicedata> <service name="tar_scm"> <param name="url">https://gitlab.gnome.org/GNOME/gnome-remote-desktop.git</param> - <param name="changesrevision">a7cbaae7139c108a6c0297dac7881ab071a91ca3</param></service></servicedata> + <param name="changesrevision">a5a962b923bf88d64793b43e0f3915e0eaa8acbe</param></service></servicedata> (No newline at EOF) ++++++ gnome-remote-desktop-42.1.1.obscpio -> gnome-remote-desktop-42.2.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gnome-remote-desktop-42.1.1/meson.build new/gnome-remote-desktop-42.2/meson.build --- old/gnome-remote-desktop-42.1.1/meson.build 2022-04-26 21:58:41.000000000 +0200 +++ new/gnome-remote-desktop-42.2/meson.build 2022-05-29 18:27:40.000000000 +0200 @@ -1,5 +1,5 @@ project('gnome-remote-desktop', 'c', - version: '42.1.1', + version: '42.2', meson_version: '>= 0.47.0', default_options: ['warning_level=1', 'buildtype=debugoptimized']) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gnome-remote-desktop-42.1.1/po/LINGUAS new/gnome-remote-desktop-42.2/po/LINGUAS --- old/gnome-remote-desktop-42.1.1/po/LINGUAS 2022-04-26 21:58:41.000000000 +0200 +++ new/gnome-remote-desktop-42.2/po/LINGUAS 2022-05-29 18:27:40.000000000 +0200 @@ -21,10 +21,12 @@ id is it +ka kk ko lt nb +ne nl oc pa diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gnome-remote-desktop-42.1.1/po/de.po new/gnome-remote-desktop-42.2/po/de.po --- old/gnome-remote-desktop-42.1.1/po/de.po 2022-04-26 21:58:41.000000000 +0200 +++ new/gnome-remote-desktop-42.2/po/de.po 2022-05-29 18:27:40.000000000 +0200 @@ -9,18 +9,18 @@ "Project-Id-Version: gnome-remote-desktop master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-remote-desktop/" "issues\n" -"POT-Creation-Date: 2021-07-13 09:47+0000\n" -"PO-Revision-Date: 2021-08-12 21:48+0200\n" -"Last-Translator: Tim Sabsch <tim@sabsch.com>\n" +"POT-Creation-Date: 2022-05-09 07:39+0000\n" +"PO-Revision-Date: 2022-05-22 00:53+0200\n" +"Last-Translator: Christian Kirbach <christian.kirbach@gmail.com>\n" "Language-Team: German <gnome-de@gnome.org>\n" "Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Poedit 3.0\n" +"X-Generator: Poedit 3.0.1\n" -#: src/grd-daemon.c:351 +#: src/grd-daemon.c:480 msgid "GNOME Remote Desktop" msgstr "GNOME Remote Desktop" @@ -46,12 +46,140 @@ msgid "Accept" msgstr "Akzeptieren" +#: src/grd-ctl.c:44 +#, c-format +msgid "Usage: %s [OPTIONS...] COMMAND [SUBCOMMAND]...\n" +msgstr "Aufruf: %s [OPTIONEN ���] BEFEHL [UNTERBEFEHL] ���\n" + +#: src/grd-ctl.c:383 +msgid "Commands:\n" +msgstr "Befehle:\n" + +#: src/grd-ctl.c:388 +msgid "" +" rdp - RDP subcommands:\n" +" enable - Enable the RDP backend\n" +" disable - Disable the RDP backend\n" +" set-tls-cert <path-to-cert> - Set path to TLS certificate\n" +" set-tls-key <path-to-key> - Set path to TLS key\n" +" set-credentials <username> <password> - Set username and password\n" +" credentials\n" +" clear-credentials - Clear username and password\n" +" credentials\n" +" enable-view-only - Disable remote control of " +"input\n" +" devices\n" +" disable-view-only - Enable remote control of " +"input\n" +" devices\n" +"\n" +msgstr "" +" rdp - RDP-Unterbefehle:\n" +" enable - RDP-Backend aktivieren\n" +" disable - RDP-Backend deaktivieren\n" +" set-tls-cert <pfad-zu-zertifikat> - Pfad zum TLS-Zertifikat " +"festlegen\n" +" set-tls-key <pfad-zu-schl��ssel> - Pfad zum TLS-Schl��ssel " +"festlegen\n" +" set-credentials <Benutzername> <Passwort> - Nutzername und Passwort " +"festlegen\n" +" clear-credentials - Nutzername und Passwort " +"l��schen\n" +" enable-view-only - Fernsteuerung mittels " +"Eingabeger��ten deaktivieren\n" +" disable-view-only - Fernsteuerung mittels " +"Eingabeger��ten aktivieren\n" +"\n" + +#: src/grd-ctl.c:407 +msgid "" +" vnc - VNC subcommands:\n" +" enable - Enable the VNC backend\n" +" disable - Disable the VNC backend\n" +" set-password <password> - Set the VNC password\n" +" clear-password - Clear the VNC password\n" +" set-auth-method password|prompt - Set the authorization method\n" +" enable-view-only - Disable remote control of " +"input\n" +" devices\n" +" disable-view-only - Enable remote control of " +"input\n" +" devices\n" +"\n" +msgstr "" +" vnc - VNC-Unterbefehle:\n" +" enable - VNC-Backend aktivieren\n" +" disable - VNC-Backend deaktivieren\n" +" set-password <Passwort> - VNC-Passwort festlegen\n" +" clear-password - VNC-Passwort l��schen\n" +" set-auth-method password|prompt - Authentifizierungsmethode " +"festlegen\n" +" enable-view-only - Fernsteuerung von " +"Eingabeger��ten deaktivieren\n" +" disable-view-only - Fernsteuerung von " +"Eingabeger��ten aktivieren\n" +"\n" + +#: src/grd-ctl.c:422 +msgid "" +" status [--show-credentials] - Show current status\n" +"\n" +"Options:\n" +" --help - Print this help text\n" +msgstr "" +" status [--show-credentials] - Aktuellen Status anzeigen\n" +"\n" +"Optionen:\n" +" --help - Diesen Hilfetext anzeigen\n" + #: src/org.gnome.desktop.remote-desktop.gschema.xml.in:7 +msgid "Whether the RDP backend is enabled or not" +msgstr "Legt fest, ob das RDP-Backend aktiviert ist oder nicht" + +#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:8 +msgid "If set to to 'true' the RDP backend will be initialized." +msgstr "Wenn ��wahr��, wird das RDP-Backend initialisiert." + +#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:14 +msgid "Screenshare mode of RDP connections" +msgstr "Art der Bildschirmfreigabe bei RDP-Verbindungen" + +#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:15 +msgid "" +"The screenshare mode specifies, whether the RDP backend mirrors the primary " +"screen, or whether a virtual monitor is created. For the initial resolution " +"of the virtual monitor, the RDP backend uses either the client core data " +"([MS-RDPBCGR] 2.2.1.3.2) or the client monitor data ([MS-RDPBCGR] " +"2.2.1.3.6), depending on what is available. When using a remote desktop " +"session with a virtual monitor, clients can resize the resolution of the " +"virtual monitor during a session with the Display Control Channel Extension " +"([MS-RDPEDISP]). Allowed screenshare modes include: * mirror-primary - " +"Record the primary monitor of the current user session. * extend - Create a " +"new virtual monitor and use it for the remote desktop session. The " +"resolution of this virtual monitor is derived from the monitor " +"configuration, submitted by the remote desktop client." +msgstr "" +"Die Art der Bildschirmfreigabe legt fest, ob das RDB-Backend den prim��ren " +"Bildschirm spiegelt, oder ob ein virtueller Monitor erstellt wird. Das RDP-" +"Backend verwendet f��r die anf��ngliche Aufl��sung des virtuellen Monitors " +"entweder die Client Kerndaten ([MS-RDPBCGR] 2.2.1.3.2), oder die Client " +"Monitor-Daten ([MS-RDPBCGR] 2.2.1.3.6), je nachdem was verf��gbar ist. Bei " +"Einsatz einer Freigabesitzung mit virtuellem Monitor k��nnen Clients die " +"Aufl��sung des virtuellen Monitors w��rhend einer Sitzung mit der Display " +"Control Channel Erweiterung anpassen ([MS-RDPEDISP]). M��gliche Arten der " +"Bildschirmfreigabe sind:\n" +"* mirror-primary - Den prim��ren Bildschirm der aktuellen Benutzersitzung " +"aufnehmen.\n" +"* extend - Einen neuen virtuellen Monitor erstellen und f��r die " +"Freigabesitzung verwenden. Die Aufl��sung der Monitors wird von der " +"Monitorkonfiguration abgeleitet, die vom Client ��bermittelt wurde." + +#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:41 msgid "Path to the certificate file" msgstr "Pfad zur Zertifikatsdatei" -#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:8 -#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:16 +#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:42 +#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:50 msgid "" "In order to be able to use RDP with TLS Security, both the private key file " "and the certificate file need to be provided to the RDP server." @@ -60,17 +188,17 @@ "Schl��sseldatei als auch die Zertifikatsdatei dem RDP-Server bereitgestellt " "werden." -#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:15 +#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:49 msgid "Path to the private key file" msgstr "Pfad zur privaten Schl��sseldatei" -#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:23 -#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:33 +#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:57 +#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:74 msgid "Only allow remote connections to view the screen content" msgstr "" "Entfernten Verbindungen lediglich das Ansehen des Bildschirminhalts erlauben" -#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:24 +#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:58 msgid "" "When view-only is true, remote RDP connections cannot manipulate input " "devices (e.g. mouse and keyboard)." @@ -78,7 +206,15 @@ "Wenn ��Nur ansehen�� wahr ist, k��nnen entfernte RDP-Verbindungen keine " "Eingabeger��te manipulieren (z.B. Maus und Tastatur)." -#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:34 +#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:67 +msgid "Whether the VNC backend is enabled or not" +msgstr "Legt fest, ob das VNC-Backend aktiviert ist oder nicht" + +#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:68 +msgid "If set to to 'true' the VNC backend will be initialized." +msgstr "Wenn ��wahr��, wird das VNC-Backend initialisiert." + +#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:75 msgid "" "When view-only is true, remote VNC connections cannot manipulate input " "devices (e.g. mouse and keyboard)." @@ -86,11 +222,11 @@ "Wenn ��Nur ansehen�� wahr ist, k��nnen entfernte VNC-Verbindungen keine " "Eingabeger��te manipulieren (z.B. Maus und Tastatur)." -#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:41 +#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:82 msgid "Method used to authenticate VNC connections" msgstr "Zur Authentifizierung von VNC-Verbindungen genutzte Methode" -#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:42 +#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:83 msgid "" "The VNC authentication method describes how a remote connection is " "authenticated. It can currently be done in two different ways: * prompt - by " diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gnome-remote-desktop-42.1.1/po/ka.po new/gnome-remote-desktop-42.2/po/ka.po --- old/gnome-remote-desktop-42.1.1/po/ka.po 1970-01-01 01:00:00.000000000 +0100 +++ new/gnome-remote-desktop-42.2/po/ka.po 2022-05-29 18:27:40.000000000 +0200 @@ -0,0 +1,239 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: gnome-remote-desktop\n" +"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-remote-desktop/" +"issues\n" +"POT-Creation-Date: 2022-05-10 16:53+0000\n" +"PO-Revision-Date: 2022-05-13 06:48+0200\n" +"Last-Translator: Temuri Doghonadze <temuri.doghonadze@gmail.com>\n" +"Language-Team: Georgian <(nothing)>\n" +"Language: ka\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Poedit 3.0.1\n" + +#: src/grd-daemon.c:480 +msgid "GNOME Remote Desktop" +msgstr "GNOME Remote Desktop" + +#: src/grd-prompt.c:124 +#, c-format +msgid "Do you want to share your desktop?" +msgstr "��������������������� ������������������ ��������������������� ��������������������� ���������������������������?" + +#: src/grd-prompt.c:125 +#, c-format +msgid "" +"A user on the computer '%s' is trying to remotely view or control your " +"desktop." +msgstr "" +"������������������������������������ ��������������������������������������� '%s' ��������������������� ��������������������� ��������������� ������ ������������������ ������������������ " +"��������������������� ������������������." + +#: src/grd-prompt.c:131 +msgid "Refuse" +msgstr "���������������������" + +#: src/grd-prompt.c:136 +msgid "Accept" +msgstr "���������������������" + +#: src/grd-ctl.c:44 +#, c-format +msgid "Usage: %s [OPTIONS...] COMMAND [SUBCOMMAND]...\n" +msgstr "������������������������������: %s [���������������������������������...] ������������������������ [���������������������������������]...\n" + +#: src/grd-ctl.c:383 +msgid "Commands:\n" +msgstr "������������������������������:\n" + +#: src/grd-ctl.c:388 +msgid "" +" rdp - RDP subcommands:\n" +" enable - Enable the RDP backend\n" +" disable - Disable the RDP backend\n" +" set-tls-cert <path-to-cert> - Set path to TLS certificate\n" +" set-tls-key <path-to-key> - Set path to TLS key\n" +" set-credentials <username> <password> - Set username and password\n" +" credentials\n" +" clear-credentials - Clear username and password\n" +" credentials\n" +" enable-view-only - Disable remote control of " +"input\n" +" devices\n" +" disable-view-only - Enable remote control of " +"input\n" +" devices\n" +"\n" +msgstr "" +" rdp - RDP-������ ���������������������������������������:\n" +" enable - RDP-������ ������������������������������ ������������������\n" +" disable - RDP-������ ������������������������������ ������������������������\n" +" set-tls-cert <path-to-cert> - ������������������ TLS " +"������������������������������������ ������������������������\n" +" set-tls-key <path-to-key> - ������������������ TLS " +"������������������������������������ ���������������������������������\n" +" set-credentials <username> <password> - ��������������������������������������� ������ ��������������������� " +"������������������������\n" +" ������������������������������������ ������ ������������������\n" +" clear-credentials - " +"��������������������������������������� ������ ��������������������� ���������������\n" +" enable-view-only ������������������������������ ������������������������������������������������ ������������������������ " +"������������������������������������������\n" +" ������������������\n" +" disable-view-obly - ������������������������ " +"������������������������������������������\n" +" ��������������������� " +"��������������������� ������������������\n" +"\n" + +#: src/grd-ctl.c:407 +msgid "" +" vnc - VNC subcommands:\n" +" enable - Enable the VNC backend\n" +" disable - Disable the VNC backend\n" +" set-password <password> - Set the VNC password\n" +" clear-password - Clear the VNC password\n" +" set-auth-method password|prompt - Set the authorization method\n" +" enable-view-only - Disable remote control of " +"input\n" +" devices\n" +" disable-view-only - Enable remote control of " +"input\n" +" devices\n" +"\n" +msgstr "" +" vnc - VNC subcommands:\n" +" enable - Enable the VNC backend\n" +" disable - VNC-������ ���������������������������������������\n" +" set-password <password> - VNC ��������������������� ������������������������\n" +" clear-password - VNC ��������������������� ���������������������������������\n" +" set-auth-method password|prompt - ��������������������� ������������������������������������ ������������������\n" +" enable-view-only - ������������������������������������������ ������������������������������ " +"���������������������\n" +" ������������������������\n" +" disable-view-only - ������������������������ ������������������������ " +"������������������������������������������ ���������������������������\n" +" ��������������������� ������������������\n" +"\n" + +#: src/grd-ctl.c:422 +msgid "" +" status [--show-credentials] - Show current status\n" +"\n" +"Options:\n" +" --help - Print this help text\n" +msgstr "" +" ��������������������� [--show-credentials] - ��������������������������� ������������������������ ���������������������\n" +"\n" +"���������������������������������:\n" +" --help - ������ ��������������������� ���������������������\n" + +#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:7 +msgid "Whether the RDP backend is enabled or not" +msgstr "������������������������ RDP ��������������� ������������ ������ ���������" + +#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:8 +msgid "If set to 'true' the RDP backend will be initialized." +msgstr "������ ������������������������, ������������������������������������ ������������������ RDP ���������������������������." + +#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:14 +msgid "Screenshare mode of RDP connections" +msgstr "RDP ��������������������������� ��������������������� ������������������������������ ������������������" + +#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:15 +msgid "" +"The screenshare mode specifies, whether the RDP backend mirrors the primary " +"screen, or whether a virtual monitor is created. For the initial resolution " +"of the virtual monitor, the RDP backend uses either the client core data " +"([MS-RDPBCGR] 2.2.1.3.2) or the client monitor data ([MS-RDPBCGR] " +"2.2.1.3.6), depending on what is available. When using a remote desktop " +"session with a virtual monitor, clients can resize the resolution of the " +"virtual monitor during a session with the Display Control Channel Extension " +"([MS-RDPEDISP]). Allowed screenshare modes include: * mirror-primary - " +"Record the primary monitor of the current user session. * extend - Create a " +"new virtual monitor and use it for the remote desktop session. The " +"resolution of this virtual monitor is derived from the monitor " +"configuration, submitted by the remote desktop client." +msgstr "" +"��������������������� ������������������������������ ������������������ ���������������������������, RDP ��������������������������� ������������������������ ��������������������� " +"������������������������������ ������������ ��������������� ������ ��������������� ������������������������������ ������������������ ���������������������. ������������������������������ " +"��������������������������� ��������������������� ��������������������������������������������� RDP ��������������������������� ������ ������������������������ ��������������������� " +"������������������������������ ��������������������� ([MS-RDPBCGR] 2.2.1.3.2), ������ ������������������������ ��������������������������� " +"������������������������������ ([MS-RDPBCGR] 2.2.1.3.6), ������������������������������������������������ ������������������������. ������ RDP_��� " +"������������������������������ ��������������������������� ���������������������, ��������������������������� ������������������������������ ��������������������������� ��������������� ��������������������� " +"������������������������ ([MS-RDPEDISP]). ��������������������� ������������������������������ ���������������������������: * mirror-primary " +"��������������������������� ������������������������������������ ������������������������ ��������������������� ������������������. * ������������������������������ - ������������������������������ " +"��������������������� ��������������������� ������������������������������ ��������������� ������������������������������ ��������������������������� ������������������. ������������������������������ " +"��������������������� ��������������������������� ���������������������������������������������, ��������������������� ������������������������ ������������ ������������ ������������������������������." + +#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:41 +msgid "Path to the certificate file" +msgstr "������������������ ������������������������������������ ������������������������" + +#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:42 +#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:50 +msgid "" +"In order to be able to use RDP with TLS Security, both the private key file " +"and the certificate file need to be provided to the RDP server." +msgstr "" +"RDP-������ TLS ������������������������������������ ������������������������������������������ ���������������, ������������������ ��������������������������� ������ " +"������������������������������������ ������������������ ��������������������������� ������������������." + +#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:49 +msgid "Path to the private key file" +msgstr "������������������ ������������������ ��������������������������� ������������������������" + +#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:57 +#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:74 +msgid "Only allow remote connections to view the screen content" +msgstr "������������������������������ ��������������������������������������������� ��������������������� ������������������ ������������������ ��������������������� ������������������" + +#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:58 +msgid "" +"When view-only is true, remote RDP connections cannot manipulate input " +"devices (e.g. mouse and keyboard)." +msgstr "" +"������������ ������������������������ ������������������ ��������������������������������� ������������������, RDP ��������������������������������� ������������������������ ������������������������ " +"������������������������������������������ ������������������������ ������ ������������������������ (������������������, ������������������������������)." + +#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:67 +msgid "Whether the VNC backend is enabled or not" +msgstr "������������������������ VNC-������ ��������������������������� ������ ���������" + +#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:68 +msgid "If set to 'true' the VNC backend will be initialized." +msgstr "������ ������������������������, ������������������������������������ ������������������ VNC ���������������������������." + +#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:75 +msgid "" +"When view-only is true, remote VNC connections cannot manipulate input " +"devices (e.g. mouse and keyboard)." +msgstr "" +"������������ ������������������������ ������������������ ��������������������������������� ������������������, VNC ��������������������������������� ������������������������ ������������������������ " +"������������������������������������������ ������������������������ ������ ������������������������ (������������������, ������������������������������)." + +#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:82 +msgid "Method used to authenticate VNC connections" +msgstr "VNC ��������������������������������� ��������������������������������������� ������������������" + +#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:83 +msgid "" +"The VNC authentication method describes how a remote connection is " +"authenticated. It can currently be done in two different ways: * prompt - by " +"prompting the user for each new connection, requiring a person with physical " +"access to the workstation to explicitly approve the new connection. * " +"password - by requiring the remote client to provide a known password" +msgstr "" +"VNC ��������������������������������������������� ������������������ ������������������, ������ ��������������� ��������������� ������������������������������ ������������������������ " +"���������������������������������. ��������������������� ������ ������������������������ ������������������������ ��������� ��������������������������������������� ������������: * ������������������������ " +"- ������������������������������������ ��������������������������� ������������������ ��������������� ������������������������ ���������������������, ��������������������� ������������������������ " +"������������������������ ��������������������� ��������������� ������������������������ ��������������� ������������������������ ������������������������ ��������������������������������� " +"���������������������������. * ������������������ - ��������������������������������� ��������������������������������� ��������������������� ��������������������� ���������������������������" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gnome-remote-desktop-42.1.1/po/ne.po new/gnome-remote-desktop-42.2/po/ne.po --- old/gnome-remote-desktop-42.1.1/po/ne.po 1970-01-01 01:00:00.000000000 +0100 +++ new/gnome-remote-desktop-42.2/po/ne.po 2022-05-29 18:27:40.000000000 +0200 @@ -0,0 +1,230 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: Gnome Nepali Translation Project\n" +"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-remote-desktop/" +"issues\n" +"POT-Creation-Date: 2022-05-02 10:47+0000\n" +"PO-Revision-Date: 2022-05-09 13:23+0545\n" +"Last-Translator: \n" +"Language-Team: Nepali Team <chautari@gmail.com>\n" +"Language: ne\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 3.0.1\n" + +#: src/grd-daemon.c:480 +msgid "GNOME Remote Desktop" +msgstr "��������������� ������������������ ���������������������" + +#: src/grd-prompt.c:124 +#, c-format +msgid "Do you want to share your desktop?" +msgstr "��������������������� ��������������������� ��������������������� ������������ ������������������������������?" + +#: src/grd-prompt.c:125 +#, c-format +msgid "" +"A user on the computer '%s' is trying to remotely view or control your " +"desktop." +msgstr "" +"'%s' ��������������������������������� ������������ ��������������������������������������� ��������������������� ��������������������� ��������������������� ������������������ ������ ��������������������������� ��������������� ������������������ " +"������������������������ ��� ���" + +#: src/grd-prompt.c:131 +msgid "Refuse" +msgstr "������������������������ ���������������������������" + +#: src/grd-prompt.c:136 +msgid "Accept" +msgstr "��������������������� ���������������������������" + +#: src/grd-ctl.c:44 +#, c-format +msgid "Usage: %s [OPTIONS...] COMMAND [SUBCOMMAND]...\n" +msgstr "���������������: %s [OPTIONS...] ������������ [SUBCOMMAND]...\n" + +#: src/grd-ctl.c:383 +msgid "Commands:\n" +msgstr "���������������������:\n" + +#: src/grd-ctl.c:388 +msgid "" +" rdp - RDP subcommands:\n" +" enable - Enable the RDP backend\n" +" disable - Disable the RDP backend\n" +" set-tls-cert <path-to-cert> - Set path to TLS certificate\n" +" set-tls-key <path-to-key> - Set path to TLS key\n" +" set-credentials <username> <password> - Set username and password\n" +" credentials\n" +" clear-credentials - Clear username and password\n" +" credentials\n" +" enable-view-only - Disable remote control of " +"input\n" +" devices\n" +" disable-view-only - Enable remote control of " +"input\n" +" devices\n" +"\n" +msgstr "" +" rdp - RDP ��������������� ���������������������:\n" +" ��������������� - RDP ��������������������������� ��������������� ������������������������������\n" +" ��������������� - RDP ��������������������������� ��������������� ������������������������������\n" +" TLS ������������ ��������� ��������������������������� <path-to-cert> - TLS ������������������������������������ ��������������� ��������� ���������������������������\n" +" ���������-tls-������������������ <path-to-key> - TLS ������������������������ ��������������� ��������� ���������������������������\n" +" ���������-������������������������������ <username> <password> - ��������������������������������� ��������� ��� ��������������������� ��������� ���������������������������\n" +" ������������������������������\n" +" ������������-������������������������������ - ��������������������������������� ��������� ��� ��������������������� ������������ ���������������������������\n" +" ������������������������������\n" +" ���������������-��������������� ��������������� ������������������������������ - ��������������� ������������������ ��������������������������� ��������������� ������������������������������\n" +" ���������������������������\n" +" ���������������-��������������� ��������������� ������������������������������ - ��������������� ������������������ ��������������������������� ��������������� ������������������������������\n" +" ���������������������������\n" +"\n" + +#: src/grd-ctl.c:407 +msgid "" +" vnc - VNC subcommands:\n" +" enable - Enable the VNC backend\n" +" disable - Disable the VNC backend\n" +" set-password <password> - Set the VNC password\n" +" clear-password - Clear the VNC password\n" +" set-auth-method password|prompt - Set the authorization method\n" +" enable-view-only - Disable remote control of " +"input\n" +" devices\n" +" disable-view-only - Enable remote control of " +"input\n" +" devices\n" +"\n" +msgstr "" +" vnc - VNC ��������������� ���������������������:\n" +" ��������������� - ������������������ ��������������������������� ��������������� ������������������������������\n" +" ��������������� - ������������������ ��������������������������� ��������������� ������������������������������\n" +" ��������������������� ��������� <password> ��������������������������� - ������������������ ��������������������� ��������� ���������������������������\n" +" ������������ ��������������������� - ������������������ ��������������������� ������������ ���������������������������\n" +" auth-method ��������������������� ��������� ���������������������������|prompt - ������������������������������ ������������ ��������� ���������������������������\n" +" ���������������-��������������� ��������������� ������������������������������ - ��������������� ������������������ ��������������������������� ��������������� ������������������������������\n" +" ���������������������������\n" +" ���������������-��������������� ��������������� ������������������������������ - ��������������� ������������������ ��������������������������� ��������������� ������������������������������\n" +" ���������������������������\n" +"\n" + +#: src/grd-ctl.c:422 +msgid "" +" status [--show-credentials] - Show current status\n" +"\n" +"Options:\n" +" --help - Print this help text\n" +msgstr "" +" status [--show-credentials] - ��������������� ��������������������������������� ���������������������������������\n" +"\n" +"���������������������������:\n" +" --help - ������ ��������������� ��������� ������������������ ���������������������������\n" + +#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:7 +msgid "Whether the RDP backend is enabled or not" +msgstr "RDP ��������������������������� ��������������� ��������������������� ��� ������ ���������" + +#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:8 +msgid "If set to to 'true' the RDP backend will be initialized." +msgstr "��������� '���������' ������ ��������� ��������������� RDP ��������������������������� ������������������ ��������������� ���" + +#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:14 +msgid "Screenshare mode of RDP connections" +msgstr "RDP ������������������ ��������������������������������� ���������" + +#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:15 +msgid "" +"The screenshare mode specifies, whether the RDP backend mirrors the primary " +"screen, or whether a virtual monitor is created. For the initial resolution " +"of the virtual monitor, the RDP backend uses either the client core data " +"([MS-RDPBCGR] 2.2.1.3.2) or the client monitor data ([MS-RDPBCGR] " +"2.2.1.3.6), depending on what is available. When using a remote desktop " +"session with a virtual monitor, clients can resize the resolution of the " +"virtual monitor during a session with the Display Control Channel Extension " +"([MS-RDPEDISP]). Allowed screenshare modes include: * mirror-primary - " +"Record the primary monitor of the current user session. * extend - Create a " +"new virtual monitor and use it for the remote desktop session. The " +"resolution of this virtual monitor is derived from the monitor " +"configuration, submitted by the remote desktop client." +msgstr "" +"��������������������������������� ��������������� ��������������������������� ���������������, ������ ������������������ ��������������������������������� ������������������������ ��������������� ��������������� ���������������, ������ " +"��������������������������� ������������������ ��������������������� ������������������ ��� ��� ��������������������� ������������������������ ������������������������������ ������������������������������������ ������������, " +"RDP ��������������������������������� ������ ��� ������������������������ ��������� ������������ ([MS-RDPBCGR] 2.2.1.3.2) ������ ������������������������ ������������������ " +"������������ ([MS-RDPBCGR] 2.2.1.3.6) ������������������ ���������������, ��������� ������������������ ��� ������������������ ��������������������� ��������������������������� " +"��������������������������� ������������������ ��������������������� ������������ ������������������ ���������������, ������������������������������ ������������������������ ��������������������������� ������������������ ��������������������� " +"([MS-RDPEDISP]) ��������������� ������������������ ��������������� ��������������������������� ������������������������ ������������������������������ ������������������ ������������ ��������������� " +"��� ������������������ ��������������������� ��������������������������������� ������������������ ������������������ ���������: * ������������-������������������������ - ��������������� ��������������������������������� " +"������������������ ������������������������ ������������������ ������������������ ��������������������������� ��� * ��������������������� - ������������ ��������������������� ��������������� ��������������������� ��������������������������� " +"��� ��������������� ������������������ ��������������������� ������������������ ������������ ������������������ ������������������������������ ������ ��������������������������� ������������������������ ������������������������������ " +"������������������ ��������������������� ������������������������������������������ ��������� ������������������, ������������������ ��������������������������������������� ������������������ ������ ���" + +#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:41 +msgid "Path to the certificate file" +msgstr "������������������������������ ������������������ ���������������" + +#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:42 +#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:50 +msgid "" +"In order to be able to use RDP with TLS Security, both the private key file " +"and the certificate file need to be provided to the RDP server." +msgstr "" +"TLS ������������������������������ RDP ������������������ ������������ ��������������� ��������������� ������������, ������������ ������������ ������������������ ������������ ��� ������������������������������ ������������ " +"RDP ��������������������� ������������������ ������������������ ������������������ ��� ���" + +#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:49 +msgid "Path to the private key file" +msgstr "��������������������������� ������������������ ������������������ ���������������" + +#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:57 +#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:74 +msgid "Only allow remote connections to view the screen content" +msgstr "��������������� ������������������������ ��������������������� ������������ ������������������ ��������������������� ��������������� ������������������ ������������������������" + +#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:58 +msgid "" +"When view-only is true, remote RDP connections cannot manipulate input " +"devices (e.g. mouse and keyboard)." +msgstr "" +"��������������� ��������������� ��������� ������������ ������������������, ������������������ RDP ������������������ ��������� ��������������������������� (������������������������ ������������ ������������ ��� " +"������������������������������) ������������������ ������������������ ���" + +#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:67 +msgid "Whether the VNC backend is enabled or not" +msgstr "������������������ ��������������������������� ��������������� ��������������������� ��� ������ ���������" + +#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:68 +msgid "If set to to 'true' the VNC backend will be initialized." +msgstr "��������� '���������' ������ ��������� ��������� ��������� ������������������ ��������������������������� ������������������ ��������������� ���" + +#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:75 +msgid "" +"When view-only is true, remote VNC connections cannot manipulate input " +"devices (e.g. mouse and keyboard)." +msgstr "" +"��������������� ��������������� ������������ ������������ ������������������, ������������������ ������������������ ������������������ ��������� ��������������������������� (������������������������ ������������ ������������ " +"��� ������������������������������) ������������������ ������������������ ���" + +#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:82 +msgid "Method used to authenticate VNC connections" +msgstr "������������������ ������������ ������������������������������ ������������ ������������������ ��������������� ������������" + +#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:83 +msgid "" +"The VNC authentication method describes how a remote connection is " +"authenticated. It can currently be done in two different ways: * prompt - by " +"prompting the user for each new connection, requiring a person with physical " +"access to the workstation to explicitly approve the new connection. * " +"password - by requiring the remote client to provide a known password" +msgstr "" +"VNC ������������������������������ ������������������ ������������ ������������������ ������������ ������������������������������ ��������������� ��������������� ��������������� ��� ������ ��������� ��������� ��������� " +"��������������������� ������������ ������������������: * ��������������������������� - ������������������������ ������������ ������������������ ������������ ������������������������������������������ ��������������������� ������������, " +"������������ ��������������������� ������������������ ��������������� ��������������������� ������������ ������������������������������������ ��������������� ��������������� ������������ ��������������������������� ������������������������ " +"��������������� ��� * ��������������������� - ��������������� ��������������������� ������������������ ������������ ������������������ ������������������������ ������������������ ������������������" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gnome-remote-desktop-42.1.1/po/oc.po new/gnome-remote-desktop-42.2/po/oc.po --- old/gnome-remote-desktop-42.1.1/po/oc.po 2022-04-26 21:58:41.000000000 +0200 +++ new/gnome-remote-desktop-42.2/po/oc.po 2022-05-29 18:27:40.000000000 +0200 @@ -8,8 +8,8 @@ "Project-Id-Version: gnome-remote-desktop master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-remote-desktop/" "issues\n" -"POT-Creation-Date: 2022-03-15 19:40+0000\n" -"PO-Revision-Date: 2022-03-16 15:04+0100\n" +"POT-Creation-Date: 2022-05-09 07:39+0000\n" +"PO-Revision-Date: 2022-05-26 20:05+0200\n" "Last-Translator: Quentin PAG��S\n" "Language-Team: Occitan <totenoc@gmail.com>\n" "Language: oc\n" @@ -18,7 +18,7 @@ "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 3.0.1\n" -#: src/grd-daemon.c:423 +#: src/grd-daemon.c:480 msgid "GNOME Remote Desktop" msgstr "Bur��u distant de GNOME" @@ -72,6 +72,22 @@ " devices\n" "\n" msgstr "" +" rdp - Jos comandas���:\n" +" enable - Activar lo backend RDP\n" +" disable - Desactivar lo backend RDP\n" +" set-tls-cert <path-to-cert> - Definir empla��ament " +"certificat TLS\n" +" set-tls-key <path-to-key> - Definir empla��ament clau TLS\n" +" set-credentials <username> <password> - Definir nom utilizaire e " +"senhal\n" +" clear-credentials - Escafar nom utilizaire e " +"senhal\n" +"\n" +" enable-view-only - Desactivar las entras del " +"periferic del contr��la a dist��ncia\n" +" disable-view-only - Activar las entras del " +"periferic del contr��la a dist��ncia\n" +"\n" #: src/grd-ctl.c:407 msgid "" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gnome-remote-desktop-42.1.1/src/grd-rdp-graphics-pipeline.c new/gnome-remote-desktop-42.2/src/grd-rdp-graphics-pipeline.c --- old/gnome-remote-desktop-42.1.1/src/grd-rdp-graphics-pipeline.c 2022-04-26 21:58:41.000000000 +0200 +++ new/gnome-remote-desktop-42.2/src/grd-rdp-graphics-pipeline.c 2022-05-29 18:27:40.000000000 +0200 @@ -37,6 +37,7 @@ #define ENC_TIMES_CHECK_INTERVAL_MS 1000 #define MAX_TRACKED_ENC_FRAMES 1000 +#define MIN_BW_MEASURE_SIZE (10 * 1024) typedef enum _HwAccelAPI { @@ -509,6 +510,8 @@ int64_t *enc_time_us) { RdpgfxServerContext *rdpgfx_context = graphics_pipeline->rdpgfx_context; + GrdRdpNetworkAutodetection *network_autodetection = + graphics_pipeline->network_autodetection; GrdRdpGfxSurface *gfx_surface = rdp_surface->gfx_surface; GrdRdpGfxSurface *render_surface = grd_rdp_gfx_surface_get_render_surface (gfx_surface); @@ -529,6 +532,7 @@ cairo_region_t *region; uint32_t surface_serial; int64_t enc_ack_time_us; + gboolean pending_bw_measure_stop = FALSE; int i; if (!rdp_surface->valid) @@ -629,6 +633,13 @@ } g_mutex_unlock (&graphics_pipeline->gfx_mutex); + if (network_autodetection && + (4 + avc420.meta.numRegionRects * 10 + avc420.length) >= MIN_BW_MEASURE_SIZE) + { + pending_bw_measure_stop = + grd_rdp_network_autodetection_try_bw_measure_start (network_autodetection); + } + rdpgfx_context->StartFrame (rdpgfx_context, &cmd_start); rdpgfx_context->SurfaceCommand (rdpgfx_context, &cmd); @@ -639,6 +650,9 @@ } rdpgfx_context->EndFrame (rdpgfx_context, &cmd_end); + if (pending_bw_measure_stop) + grd_rdp_network_autodetection_queue_bw_measure_stop (network_autodetection); + *enc_time_us = enc_ack_time_us; g_free (avc420.data); @@ -788,6 +802,8 @@ { RdpgfxServerContext *rdpgfx_context = graphics_pipeline->rdpgfx_context; GrdSessionRdp *session_rdp = graphics_pipeline->session_rdp; + GrdRdpNetworkAutodetection *network_autodetection = + graphics_pipeline->network_autodetection; GrdRdpGfxSurface *gfx_surface = rdp_surface->gfx_surface; GrdRdpGfxFrameController *frame_controller = grd_rdp_gfx_surface_get_frame_controller (gfx_surface); @@ -808,6 +824,7 @@ uint32_t codec_context_id; uint32_t surface_serial; int64_t enc_ack_time_us; + gboolean pending_bw_measure_stop = FALSE; int i; region = grd_rdp_damage_detector_get_damage_region (rdp_surface->detector); @@ -910,9 +927,18 @@ } g_mutex_unlock (&graphics_pipeline->gfx_mutex); + if (network_autodetection && cmd.length >= MIN_BW_MEASURE_SIZE) + { + pending_bw_measure_stop = + grd_rdp_network_autodetection_try_bw_measure_start (network_autodetection); + } + rdpgfx_context->SurfaceFrameCommand (rdpgfx_context, &cmd, &cmd_start, &cmd_end); + if (pending_bw_measure_stop) + grd_rdp_network_autodetection_queue_bw_measure_stop (network_autodetection); + *enc_time_us = enc_ack_time_us; cairo_region_destroy (region); @@ -1425,9 +1451,11 @@ rdpgfx_context->rdpcontext = rdp_context; rdpgfx_context->custom = graphics_pipeline; + g_mutex_lock (&graphics_pipeline->gfx_mutex); if (rdp_context->settings->NetworkAutoDetect && !graphics_pipeline->rtt_pause_source) ensure_rtt_receivement (graphics_pipeline); + g_mutex_unlock (&graphics_pipeline->gfx_mutex); return graphics_pipeline; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gnome-remote-desktop-42.1.1/src/grd-rdp-network-autodetection.c new/gnome-remote-desktop-42.2/src/grd-rdp-network-autodetection.c --- old/gnome-remote-desktop-42.1.1/src/grd-rdp-network-autodetection.c 2022-04-26 21:58:41.000000000 +0200 +++ new/gnome-remote-desktop-42.2/src/grd-rdp-network-autodetection.c 2022-05-29 18:27:40.000000000 +0200 @@ -25,16 +25,26 @@ #include "grd-rdp-private.h" #define BW_MEASURE_SEQUENCE_NUMBER 0 +#define MIN_NW_CHAR_RES_INTERVAL_US G_USEC_PER_SEC #define PING_INTERVAL_HIGH_MS 70 #define PING_INTERVAL_LOW_MS 700 #define RTT_AVG_PERIOD_US (500 * 1000) typedef enum _PingInterval { + PING_INTERVAL_NONE, PING_INTERVAL_HIGH, PING_INTERVAL_LOW, } PingInterval; +typedef enum _BwMeasureState +{ + BW_MEASURE_STATE_NONE, + BW_MEASURE_STATE_PENDING_STOP, + BW_MEASURE_STATE_QUEUED_STOP, + BW_MEASURE_STATE_PENDING_RESULTS, +} BwMeasureState; + typedef struct _PingInfo { uint16_t sequence_number; @@ -68,6 +78,13 @@ GQueue *round_trip_times; PingInterval ping_interval; + GMutex bw_measure_mutex; + uint32_t measured_bandwidth; + BwMeasureState bw_measure_state; + HANDLE bw_measure_stop_event; + + int64_t last_nw_char_res_notification_us; + uint16_t next_sequence_number; }; @@ -104,6 +121,16 @@ return FALSE; } +static gboolean +has_active_high_nec_rtt_consumers (GrdRdpNetworkAutodetection *network_autodetection) +{ + if (is_active_high_nec_rtt_consumer (network_autodetection, + GRD_RDP_NW_AUTODETECT_RTT_CONSUMER_RDPGFX)) + return TRUE; + + return FALSE; +} + static uint16_t get_next_free_sequence_number (GrdRdpNetworkAutodetection *network_autodetection) { @@ -146,30 +173,26 @@ static void update_ping_source (GrdRdpNetworkAutodetection *network_autodetection) { - GrdRdpNwAutodetectRTTConsumer active_high_nec_rtt_consumers; PingInterval new_ping_interval_type; uint32_t ping_interval_ms; - active_high_nec_rtt_consumers = GRD_RDP_NW_AUTODETECT_RTT_CONSUMER_NONE; - if (is_active_high_nec_rtt_consumer ( - network_autodetection, GRD_RDP_NW_AUTODETECT_RTT_CONSUMER_RDPGFX)) - active_high_nec_rtt_consumers |= GRD_RDP_NW_AUTODETECT_RTT_CONSUMER_RDPGFX; - - if (active_high_nec_rtt_consumers) + if (network_autodetection->rtt_consumers == GRD_RDP_NW_AUTODETECT_RTT_CONSUMER_NONE) + new_ping_interval_type = PING_INTERVAL_NONE; + else if (has_active_high_nec_rtt_consumers (network_autodetection)) new_ping_interval_type = PING_INTERVAL_HIGH; else new_ping_interval_type = PING_INTERVAL_LOW; - if ((network_autodetection->rtt_consumers == GRD_RDP_NW_AUTODETECT_RTT_CONSUMER_NONE || - network_autodetection->ping_interval != new_ping_interval_type) && + if (network_autodetection->ping_interval != new_ping_interval_type && network_autodetection->ping_source) { g_source_destroy (network_autodetection->ping_source); g_clear_pointer (&network_autodetection->ping_source, g_source_unref); } - if (network_autodetection->rtt_consumers == GRD_RDP_NW_AUTODETECT_RTT_CONSUMER_NONE || - network_autodetection->ping_interval == new_ping_interval_type) + network_autodetection->ping_interval = new_ping_interval_type; + + if (network_autodetection->ping_interval == PING_INTERVAL_NONE) return; g_assert (!network_autodetection->ping_source); @@ -177,6 +200,8 @@ switch (new_ping_interval_type) { + case PING_INTERVAL_NONE: + g_assert_not_reached (); case PING_INTERVAL_HIGH: ping_interval_ms = PING_INTERVAL_HIGH_MS; break; @@ -189,7 +214,6 @@ g_source_set_callback (network_autodetection->ping_source, emit_ping, network_autodetection, NULL); g_source_attach (network_autodetection->ping_source, NULL); - network_autodetection->ping_interval = new_ping_interval_type; } void @@ -199,8 +223,7 @@ g_assert (rtt_consumer != GRD_RDP_NW_AUTODETECT_RTT_CONSUMER_NONE); g_mutex_lock (&network_autodetection->consumer_mutex); - if (!has_rtt_consumer (network_autodetection, rtt_consumer)) - network_autodetection->rtt_consumers |= rtt_consumer; + network_autodetection->rtt_consumers |= rtt_consumer; update_ping_source (network_autodetection); g_mutex_unlock (&network_autodetection->consumer_mutex); @@ -210,6 +233,8 @@ grd_rdp_network_autodetection_remove_rtt_consumer (GrdRdpNetworkAutodetection *network_autodetection, GrdRdpNwAutodetectRTTConsumer rtt_consumer) { + g_assert (rtt_consumer != GRD_RDP_NW_AUTODETECT_RTT_CONSUMER_NONE); + g_mutex_lock (&network_autodetection->consumer_mutex); network_autodetection->rtt_consumers &= ~rtt_consumer; @@ -255,6 +280,59 @@ g_mutex_unlock (&network_autodetection->consumer_mutex); } +gboolean +grd_rdp_network_autodetection_try_bw_measure_start (GrdRdpNetworkAutodetection *network_autodetection) +{ + rdpAutoDetect *rdp_autodetect = network_autodetection->rdp_autodetect; + g_autoptr (GMutexLocker) locker = NULL; + + locker = g_mutex_locker_new (&network_autodetection->bw_measure_mutex); + if (network_autodetection->bw_measure_state != BW_MEASURE_STATE_NONE) + return FALSE; + + network_autodetection->bw_measure_state = BW_MEASURE_STATE_PENDING_STOP; + g_clear_pointer (&locker, g_mutex_locker_free); + + rdp_autodetect->BandwidthMeasureStart (network_autodetection->rdp_context, + BW_MEASURE_SEQUENCE_NUMBER); + + return TRUE; +} + +void +grd_rdp_network_autodetection_bw_measure_stop (GrdRdpNetworkAutodetection *network_autodetection) +{ + rdpAutoDetect *rdp_autodetect = network_autodetection->rdp_autodetect; + + g_mutex_lock (&network_autodetection->bw_measure_mutex); + g_assert (network_autodetection->bw_measure_state == BW_MEASURE_STATE_PENDING_STOP || + network_autodetection->bw_measure_state == BW_MEASURE_STATE_QUEUED_STOP); + + ResetEvent (network_autodetection->bw_measure_stop_event); + network_autodetection->bw_measure_state = BW_MEASURE_STATE_PENDING_RESULTS; + g_mutex_unlock (&network_autodetection->bw_measure_mutex); + + rdp_autodetect->BandwidthMeasureStop (network_autodetection->rdp_context, + BW_MEASURE_SEQUENCE_NUMBER); +} + +void +grd_rdp_network_autodetection_queue_bw_measure_stop (GrdRdpNetworkAutodetection *network_autodetection) +{ + g_mutex_lock (&network_autodetection->bw_measure_mutex); + g_assert (network_autodetection->bw_measure_state == BW_MEASURE_STATE_PENDING_STOP); + + SetEvent (network_autodetection->bw_measure_stop_event); + network_autodetection->bw_measure_state = BW_MEASURE_STATE_QUEUED_STOP; + g_mutex_unlock (&network_autodetection->bw_measure_mutex); +} + +HANDLE +grd_rdp_network_autodetection_get_bw_measure_stop_event_handle (GrdRdpNetworkAutodetection *network_autodetection) +{ + return network_autodetection->bw_measure_stop_event; +} + static void track_round_trip_time (GrdRdpNetworkAutodetection *network_autodetection, int64_t ping_time_us, @@ -281,27 +359,75 @@ g_free (g_queue_pop_head (network_autodetection->round_trip_times)); } -static int64_t -get_current_avg_round_trip_time_us (GrdRdpNetworkAutodetection *network_autodetection) +static void +update_round_trip_time_values (GrdRdpNetworkAutodetection *network_autodetection, + int64_t *base_round_trip_time_us, + int64_t *avg_round_trip_time_us) { int64_t sum_round_trip_times_us = 0; uint32_t total_round_trip_times; RTTInfo *rtt_info; GQueue *tmp; + *base_round_trip_time_us = 0; + *avg_round_trip_time_us = 0; + remove_old_round_trip_times (network_autodetection); - if (!g_queue_get_length (network_autodetection->round_trip_times)) - return 0; + if (g_queue_get_length (network_autodetection->round_trip_times) == 0) + return; tmp = g_queue_copy (network_autodetection->round_trip_times); total_round_trip_times = g_queue_get_length (tmp); + g_assert (total_round_trip_times > 0); + + *base_round_trip_time_us = INT64_MAX; while ((rtt_info = g_queue_pop_head (tmp))) - sum_round_trip_times_us += rtt_info->round_trip_time_us; + { + *base_round_trip_time_us = MIN (*base_round_trip_time_us, + rtt_info->round_trip_time_us); + sum_round_trip_times_us += rtt_info->round_trip_time_us; + } g_queue_free (tmp); - return sum_round_trip_times_us / total_round_trip_times; + *avg_round_trip_time_us = sum_round_trip_times_us / total_round_trip_times; +} + +static void +maybe_send_network_characteristics_results (GrdRdpNetworkAutodetection *network_autodetection, + uint32_t base_round_trip_time_ms, + uint32_t avg_round_trip_time_ms) +{ + rdpContext *rdp_context = network_autodetection->rdp_context; + rdpAutoDetect *rdp_autodetect = network_autodetection->rdp_autodetect; + int64_t last_notification_us; + int64_t current_time_us; + uint16_t sequence_number; + + if (network_autodetection->measured_bandwidth <= 0) + return; + + if (g_queue_get_length (network_autodetection->round_trip_times) == 0) + return; + + current_time_us = g_get_monotonic_time (); + last_notification_us = network_autodetection->last_nw_char_res_notification_us; + + if (current_time_us - last_notification_us < MIN_NW_CHAR_RES_INTERVAL_US) + return; + + rdp_autodetect->netCharBandwidth = network_autodetection->measured_bandwidth; + rdp_autodetect->netCharBaseRTT = base_round_trip_time_ms; + rdp_autodetect->netCharAverageRTT = avg_round_trip_time_ms; + + g_mutex_lock (&network_autodetection->sequence_mutex); + sequence_number = get_next_free_sequence_number (network_autodetection); + g_mutex_unlock (&network_autodetection->sequence_mutex); + + rdp_autodetect->NetworkCharacteristicsResult (rdp_context, sequence_number); + + network_autodetection->last_nw_char_res_notification_us = current_time_us; } static BOOL @@ -310,8 +436,10 @@ { RdpPeerContext *rdp_peer_context = (RdpPeerContext *) rdp_context; GrdRdpNetworkAutodetection *network_autodetection; - PingInfo *ping_info; + g_autofree PingInfo *ping_info = NULL; int64_t pong_time_us; + int64_t ping_time_us; + int64_t base_round_trip_time_us; int64_t avg_round_trip_time_us; gboolean has_rtt_consumer_rdpgfx = FALSE; @@ -335,35 +463,71 @@ g_clear_pointer (&ping_info, g_free); } - if (ping_info) - { - int64_t ping_time_us = ping_info->ping_time_us; - - g_assert (ping_info->sequence_number == sequence_number); - - track_round_trip_time (network_autodetection, ping_time_us, pong_time_us); - avg_round_trip_time_us = - get_current_avg_round_trip_time_us (network_autodetection); + g_assert (ping_info); + g_assert (ping_info->sequence_number == sequence_number); - g_hash_table_remove (network_autodetection->sequences, - GUINT_TO_POINTER (ping_info->sequence_number)); - } + g_hash_table_remove (network_autodetection->sequences, + GUINT_TO_POINTER (ping_info->sequence_number)); g_mutex_unlock (&network_autodetection->sequence_mutex); + ping_time_us = ping_info->ping_time_us; + track_round_trip_time (network_autodetection, ping_time_us, pong_time_us); + update_round_trip_time_values (network_autodetection, + &base_round_trip_time_us, + &avg_round_trip_time_us); + g_mutex_lock (&network_autodetection->consumer_mutex); has_rtt_consumer_rdpgfx = has_rtt_consumer ( network_autodetection, GRD_RDP_NW_AUTODETECT_RTT_CONSUMER_RDPGFX); g_mutex_unlock (&network_autodetection->consumer_mutex); g_mutex_lock (&network_autodetection->shutdown_mutex); - if (ping_info && !network_autodetection->in_shutdown && has_rtt_consumer_rdpgfx) + if (!network_autodetection->in_shutdown && has_rtt_consumer_rdpgfx) { grd_rdp_graphics_pipeline_notify_new_round_trip_time ( rdp_peer_context->graphics_pipeline, avg_round_trip_time_us); } g_mutex_unlock (&network_autodetection->shutdown_mutex); - g_free (ping_info); + maybe_send_network_characteristics_results (network_autodetection, + base_round_trip_time_us / 1000, + avg_round_trip_time_us / 1000); + + return TRUE; +} + +static BOOL +autodetect_bw_measure_results (rdpContext *rdp_context, + uint16_t sequence_number) +{ + RdpPeerContext *rdp_peer_context = (RdpPeerContext *) rdp_context; + GrdRdpNetworkAutodetection *network_autodetection = + rdp_peer_context->network_autodetection; + rdpAutoDetect *rdp_autodetect; + g_autoptr (GMutexLocker) locker = NULL; + int64_t base_round_trip_time_us; + int64_t avg_round_trip_time_us; + + locker = g_mutex_locker_new (&network_autodetection->bw_measure_mutex); + if (network_autodetection->bw_measure_state != BW_MEASURE_STATE_PENDING_RESULTS) + return TRUE; + + network_autodetection->bw_measure_state = BW_MEASURE_STATE_NONE; + g_clear_pointer (&locker, g_mutex_locker_free); + + rdp_autodetect = network_autodetection->rdp_autodetect; + if (rdp_autodetect->netCharBandwidth <= 0) + return TRUE; + + network_autodetection->measured_bandwidth = rdp_autodetect->netCharBandwidth; + + update_round_trip_time_values (network_autodetection, + &base_round_trip_time_us, + &avg_round_trip_time_us); + + maybe_send_network_characteristics_results (network_autodetection, + base_round_trip_time_us / 1000, + avg_round_trip_time_us / 1000); return TRUE; } @@ -381,6 +545,7 @@ network_autodetection->rdp_autodetect = rdp_autodetect; rdp_autodetect->RTTMeasureResponse = autodetect_rtt_measure_response; + rdp_autodetect->BandwidthMeasureResults = autodetect_bw_measure_results; return network_autodetection; } @@ -411,6 +576,8 @@ g_clear_pointer (&network_autodetection->sequences, g_hash_table_destroy); + g_clear_pointer (&network_autodetection->bw_measure_stop_event, CloseHandle); + G_OBJECT_CLASS (grd_rdp_network_autodetection_parent_class)->dispose (object); } @@ -420,6 +587,7 @@ GrdRdpNetworkAutodetection *network_autodetection = GRD_RDP_NETWORK_AUTODETECTION (object); + g_mutex_clear (&network_autodetection->bw_measure_mutex); g_mutex_clear (&network_autodetection->sequence_mutex); g_mutex_clear (&network_autodetection->consumer_mutex); g_mutex_clear (&network_autodetection->shutdown_mutex); @@ -430,6 +598,12 @@ static void grd_rdp_network_autodetection_init (GrdRdpNetworkAutodetection *network_autodetection) { + network_autodetection->ping_interval = PING_INTERVAL_NONE; + network_autodetection->bw_measure_state = BW_MEASURE_STATE_NONE; + + network_autodetection->bw_measure_stop_event = + CreateEvent (NULL, TRUE, FALSE, NULL); + network_autodetection->sequences = g_hash_table_new (NULL, NULL); network_autodetection->pings = g_queue_new (); network_autodetection->round_trip_times = g_queue_new (); @@ -437,6 +611,7 @@ g_mutex_init (&network_autodetection->shutdown_mutex); g_mutex_init (&network_autodetection->consumer_mutex); g_mutex_init (&network_autodetection->sequence_mutex); + g_mutex_init (&network_autodetection->bw_measure_mutex); } static void diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gnome-remote-desktop-42.1.1/src/grd-rdp-network-autodetection.h new/gnome-remote-desktop-42.2/src/grd-rdp-network-autodetection.h --- old/gnome-remote-desktop-42.1.1/src/grd-rdp-network-autodetection.h 2022-04-26 21:58:41.000000000 +0200 +++ new/gnome-remote-desktop-42.2/src/grd-rdp-network-autodetection.h 2022-05-29 18:27:40.000000000 +0200 @@ -53,4 +53,12 @@ GrdRdpNwAutodetectRTTConsumer rtt_consumer, GrdRdpNwAutodetectRTTNecessity rtt_necessity); +gboolean grd_rdp_network_autodetection_try_bw_measure_start (GrdRdpNetworkAutodetection *network_autodetection); + +void grd_rdp_network_autodetection_bw_measure_stop (GrdRdpNetworkAutodetection *network_autodetection); + +void grd_rdp_network_autodetection_queue_bw_measure_stop (GrdRdpNetworkAutodetection *network_autodetection); + +HANDLE grd_rdp_network_autodetection_get_bw_measure_stop_event_handle (GrdRdpNetworkAutodetection *network_autodetection); + #endif /* GRD_RDP_NETWORK_AUTODETECTION_H */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gnome-remote-desktop-42.1.1/src/grd-session-rdp.c new/gnome-remote-desktop-42.2/src/grd-session-rdp.c --- old/gnome-remote-desktop-42.1.1/src/grd-session-rdp.c 2022-04-26 21:58:41.000000000 +0200 +++ new/gnome-remote-desktop-42.2/src/grd-session-rdp.c 2022-05-29 18:27:40.000000000 +0200 @@ -2011,9 +2011,20 @@ while (TRUE) { + GrdRdpNetworkAutodetection *network_autodetection = + rdp_peer_context->network_autodetection; + gboolean pending_bw_measure_stop = FALSE; + HANDLE bw_measure_stop_event = NULL; + n_events = 0; events[n_events++] = session_rdp->stop_event; + if (network_autodetection) + { + bw_measure_stop_event = + grd_rdp_network_autodetection_get_bw_measure_stop_event_handle (network_autodetection); + events[n_events++] = bw_measure_stop_event; + } n_freerdp_handles = peer->GetEventHandles (peer, &events[n_events], 32 - n_events); @@ -2068,6 +2079,12 @@ break; } + if (bw_measure_stop_event) + { + pending_bw_measure_stop = WaitForSingleObject (bw_measure_stop_event, + 0) == WAIT_OBJECT_0; + } + if (WaitForSingleObject (channel_event, 0) == WAIT_OBJECT_0 && !WTSVirtualChannelManagerCheckFileDescriptor (vcm)) { @@ -2075,6 +2092,9 @@ handle_client_gone (session_rdp); break; } + + if (pending_bw_measure_stop) + grd_rdp_network_autodetection_bw_measure_stop (network_autodetection); } if (session_rdp->hwaccel_nvidia) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gnome-remote-desktop-42.1.1/tests/run-vnc-tests.py new/gnome-remote-desktop-42.2/tests/run-vnc-tests.py --- old/gnome-remote-desktop-42.1.1/tests/run-vnc-tests.py 2022-04-26 21:58:41.000000000 +0200 +++ new/gnome-remote-desktop-42.2/tests/run-vnc-tests.py 2022-05-29 18:27:40.000000000 +0200 @@ -21,7 +21,6 @@ vnc_server_failed = None os.environ['GNOME_REMOTE_DESKTOP_TEST_VNC_PASSWORD'] = 'secret' -os.environ['MUTTER_DEBUG_DUMMY_MODE_SPECS'] = '1024x768' def run_vnc_test_client(): print("Running VNC test client") @@ -70,7 +69,8 @@ def start_mutter(): global mutter print("Starting mutter") - mutter = subprocess.Popen(['mutter', '--nested', '--wayland'], + mutter = subprocess.Popen(['mutter', '--headless', '--wayland', '--no-x11', + '--virtual-monitor', '1024x768'], stderr=subprocess.STDOUT) def stop_mutter(): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gnome-remote-desktop-42.1.1/tests/vnc-test-runner.sh new/gnome-remote-desktop-42.2/tests/vnc-test-runner.sh --- old/gnome-remote-desktop-42.1.1/tests/vnc-test-runner.sh 2022-04-26 21:58:41.000000000 +0200 +++ new/gnome-remote-desktop-42.2/tests/vnc-test-runner.sh 2022-05-29 18:27:40.000000000 +0200 @@ -1,3 +1,3 @@ #!/usr/bin/env bash -dbus-run-session -- xvfb-run -s '+iglx -noreset' $TEST_SRCDIR/tests/run-vnc-tests.py +dbus-run-session -- $TEST_SRCDIR/tests/run-vnc-tests.py ++++++ gnome-remote-desktop.obsinfo ++++++ --- /var/tmp/diff_new_pack.hUyeHG/_old 2022-05-31 15:48:52.380047603 +0200 +++ /var/tmp/diff_new_pack.hUyeHG/_new 2022-05-31 15:48:52.384047606 +0200 @@ -1,5 +1,5 @@ name: gnome-remote-desktop -version: 42.1.1 -mtime: 1651003121 -commit: a7cbaae7139c108a6c0297dac7881ab071a91ca3 +version: 42.2 +mtime: 1653841660 +commit: a5a962b923bf88d64793b43e0f3915e0eaa8acbe
participants (1)
-
Source-Sync