From cb640e48c5cdbb6f04c415dcd666cb627ef2de44 Mon Sep 17 00:00:00 2001 From: rustdesk Date: Fri, 9 Dec 2022 20:59:25 +0800 Subject: [PATCH 01/20] refactor punch hole --- src/rendezvous_mediator.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/rendezvous_mediator.rs b/src/rendezvous_mediator.rs index 9350085c4..89c1ca227 100644 --- a/src/rendezvous_mediator.rs +++ b/src/rendezvous_mediator.rs @@ -379,7 +379,10 @@ impl RendezvousMediator { ) .await?; let local_addr = socket.local_addr(); - allow_err!(socket_client::connect_tcp(peer_addr, local_addr, 300).await); + // key important here for punch hole to tell gateway incoming peer is safe. + // before we use 300ms, 1000ms seems more safe. + // it can not be async here, because local_addr can not be reused, we must close the connection before use it again. + allow_err!(socket_client::connect_tcp(peer_addr, local_addr, 1000).await); socket }; let mut msg_out = Message::new(); From 12390a66e82e5e58dd23987e4c9da8b39c978b96 Mon Sep 17 00:00:00 2001 From: rustdesk Date: Fri, 9 Dec 2022 21:04:49 +0800 Subject: [PATCH 02/20] shorter punch --- src/rendezvous_mediator.rs | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/rendezvous_mediator.rs b/src/rendezvous_mediator.rs index 89c1ca227..2b2dd05bc 100644 --- a/src/rendezvous_mediator.rs +++ b/src/rendezvous_mediator.rs @@ -379,10 +379,9 @@ impl RendezvousMediator { ) .await?; let local_addr = socket.local_addr(); - // key important here for punch hole to tell gateway incoming peer is safe. - // before we use 300ms, 1000ms seems more safe. + // key important here for punch hole to tell my gateway incoming peer is safe. // it can not be async here, because local_addr can not be reused, we must close the connection before use it again. - allow_err!(socket_client::connect_tcp(peer_addr, local_addr, 1000).await); + allow_err!(socket_client::connect_tcp(peer_addr, local_addr, 30).await); socket }; let mut msg_out = Message::new(); From d846a7efd51d0723a545c558d8485fcb06c5f75e Mon Sep 17 00:00:00 2001 From: Agent-JY Date: Fri, 9 Dec 2022 18:28:38 +0100 Subject: [PATCH 03/20] Update de.rs --- src/lang/de.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/lang/de.rs b/src/lang/de.rs index 223237def..6bd2a9bbe 100644 --- a/src/lang/de.rs +++ b/src/lang/de.rs @@ -56,7 +56,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Too frequent", "Zu häufig"), ("Cancel", "Abbrechen"), ("Skip", "Überspringen"), - ("Close", "Sitzung beenden"), + ("Close", "Schließen"), ("Retry", "Erneut versuchen"), ("OK", "OK"), ("Password Required", "Passwort erforderlich"), @@ -358,7 +358,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Unpin menubar", "Menüleiste lösen"), ("Recording", "Aufnahme"), ("Directory", "Verzeichnis"), - ("Automatically record incoming sessions", "Automatische Aufzeichnung eingehender Sitzungen"), + ("Automatically record incoming sessions", "Eingehende Sitzungen automatisch aufzeichnen"), ("Change", "Ändern"), ("Start session recording", "Sitzungsaufzeichnung starten"), ("Stop session recording", "Sitzungsaufzeichnung beenden"), @@ -398,7 +398,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Hide connection management window", "Fenster zur Verwaltung der Verbindung verstecken"), ("hide_cm_tip", "Dies ist nur möglich, wenn der Zugriff nur über ein permanentes Passwort erfolgt."), // Sehr unklar. Muss noch angepasst werden. Original: Allow hiding only if accepting sessions via password and using pernament passw"), ("wayland_experiment_tip", ""), - ("Right click to select tabs", ""), - ("Add to Address Book", ""), + ("Right click to select tabs", "Register mit rechtem Mausklick auswählen"), + ("Add to Address Book", "Zum Adressbuch hinzufügen"), ].iter().cloned().collect(); } From 7f4a453cc87b586430768914a75e0c5592d578de Mon Sep 17 00:00:00 2001 From: Kingtous Date: Sat, 10 Dec 2022 10:57:21 +0800 Subject: [PATCH 04/20] opt: listen status for system tray on Linux --- Cargo.lock | 80 ++++++++++++++++++++++++++++++++++++++++++++++++++--- Cargo.toml | 1 + src/tray.rs | 42 ++++++++++++++++++++-------- 3 files changed, 108 insertions(+), 15 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 237369d2c..469828592 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2007,7 +2007,7 @@ version = "0.15.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "140b2f5378256527150350a8346dbdb08fadc13453a7a2d73aecd5fab3c402a7" dependencies = [ - "gio-sys", + "gio-sys 0.15.10", "glib-sys 0.15.10", "gobject-sys 0.15.10", "libc", @@ -2022,7 +2022,7 @@ checksum = "32e7a08c1e8f06f4177fb7e51a777b8c1689f743a7bc11ea91d44d2226073a88" dependencies = [ "cairo-sys-rs", "gdk-pixbuf-sys", - "gio-sys", + "gio-sys 0.15.10", "glib-sys 0.15.10", "gobject-sys 0.15.10", "libc", @@ -2078,7 +2078,7 @@ dependencies = [ "futures-channel", "futures-core", "futures-io", - "gio-sys", + "gio-sys 0.15.10", "glib 0.15.12", "libc", "once_cell", @@ -2098,6 +2098,19 @@ dependencies = [ "winapi 0.3.9", ] +[[package]] +name = "gio-sys" +version = "0.16.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9b693b8e39d042a95547fc258a7b07349b1f0b48f4b2fa3108ba3c51c0b5229" +dependencies = [ + "glib-sys 0.16.3", + "gobject-sys 0.16.3", + "libc", + "system-deps 6.0.3", + "winapi 0.3.9", +] + [[package]] name = "glib" version = "0.10.3" @@ -2137,6 +2150,28 @@ dependencies = [ "thiserror", ] +[[package]] +name = "glib" +version = "0.16.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0cd04d150a2c63e6779f43aec7e04f5374252479b7bed5f45146d9c0e821f161" +dependencies = [ + "bitflags", + "futures-channel", + "futures-core", + "futures-executor", + "futures-task", + "futures-util", + "gio-sys 0.16.3", + "glib-macros 0.16.3", + "glib-sys 0.16.3", + "gobject-sys 0.16.3", + "libc", + "once_cell", + "smallvec", + "thiserror", +] + [[package]] name = "glib-macros" version = "0.10.1" @@ -2168,6 +2203,21 @@ dependencies = [ "syn", ] +[[package]] +name = "glib-macros" +version = "0.16.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e084807350b01348b6d9dbabb724d1a0bb987f47a2c85de200e98e12e30733bf" +dependencies = [ + "anyhow", + "heck 0.4.0", + "proc-macro-crate 1.2.1", + "proc-macro-error", + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "glib-sys" version = "0.10.1" @@ -2188,6 +2238,16 @@ dependencies = [ "system-deps 6.0.3", ] +[[package]] +name = "glib-sys" +version = "0.16.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c61a4f46316d06bfa33a7ac22df6f0524c8be58e3db2d9ca99ccb1f357b62a65" +dependencies = [ + "libc", + "system-deps 6.0.3", +] + [[package]] name = "glob" version = "0.3.0" @@ -2216,6 +2276,17 @@ dependencies = [ "system-deps 6.0.3", ] +[[package]] +name = "gobject-sys" +version = "0.16.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3520bb9c07ae2a12c7f2fbb24d4efc11231c8146a86956413fb1a79bb760a0f1" +dependencies = [ + "glib-sys 0.16.3", + "libc", + "system-deps 6.0.3", +] + [[package]] name = "gstreamer" version = "0.16.7" @@ -2382,7 +2453,7 @@ dependencies = [ "cairo-sys-rs", "gdk-pixbuf-sys", "gdk-sys", - "gio-sys", + "gio-sys 0.15.10", "glib-sys 0.15.10", "gobject-sys 0.15.10", "libc", @@ -4522,6 +4593,7 @@ dependencies = [ "flexi_logger", "flutter_rust_bridge", "flutter_rust_bridge_codegen", + "glib 0.16.5", "gtk", "hbb_common", "hound", diff --git a/Cargo.toml b/Cargo.toml index a783b1abe..2be48eca9 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -69,6 +69,7 @@ url = { version = "2.1", features = ["serde"] } reqwest = { version = "0.11", features = ["blocking", "json", "rustls-tls"], default-features=false } chrono = "0.4.23" cidr-utils = "0.5.9" +glib = "0.16.5" [target.'cfg(not(any(target_os = "android", target_os = "linux")))'.dependencies] cpal = "0.13.5" diff --git a/src/tray.rs b/src/tray.rs index 3658739a4..b73e46301 100644 --- a/src/tray.rs +++ b/src/tray.rs @@ -88,6 +88,9 @@ pub fn start_tray() { /// This function will block current execution, show the tray icon and handle events. #[cfg(target_os = "linux")] pub fn start_tray() { + use std::time::Duration; + + use glib::{clone, Continue}; use gtk::traits::{GtkMenuItemExt, MenuShellExt, WidgetExt}; info!("configuring tray"); @@ -106,9 +109,9 @@ pub fn start_tray() { crate::client::translate("Stop service".to_owned()) }; let menu_item_service = gtk::MenuItem::with_label(label.as_str()); - menu_item_service.connect_activate(move |item| { + menu_item_service.connect_activate(move |_| { let _lock = crate::ui_interface::SENDER.lock().unwrap(); - update_tray_service_item(item); + change_service_state(); }); menu.append(&menu_item_service); // show tray item @@ -116,6 +119,16 @@ pub fn start_tray() { appindicator.set_menu(&mut menu); // start event loop info!("Setting tray event loop"); + // check the connection status for every second + glib::timeout_add_local( + Duration::from_secs(1), + clone!(@strong menu_item_service as item => move || { + let _lock = crate::ui_interface::SENDER.lock().unwrap(); + update_tray_service_item(&item); + // continue to trigger the next status check + Continue(true) + }), + ); gtk::main(); } else { error!("Tray process exit now"); @@ -123,17 +136,25 @@ pub fn start_tray() { } #[cfg(target_os = "linux")] +fn change_service_state() { + if is_service_stoped() { + debug!("Now try to start service"); + crate::ipc::set_option("stop-service", ""); + } else { + debug!("Now try to stop service"); + crate::ipc::set_option("stop-service", "Y"); + } +} + +#[cfg(target_os = "linux")] +#[inline] fn update_tray_service_item(item: >k::MenuItem) { use gtk::traits::GtkMenuItemExt; if is_service_stoped() { - debug!("Now try to start service"); - item.set_label(&crate::client::translate("Stop service".to_owned())); - crate::ipc::set_option("stop-service", ""); - } else { - debug!("Now try to stop service"); item.set_label(&crate::client::translate("Start Service".to_owned())); - crate::ipc::set_option("stop-service", "Y"); + } else { + item.set_label(&crate::client::translate("Stop service".to_owned())); } } @@ -189,10 +210,10 @@ pub fn make_tray() { match mode { dark_light::Mode::Dark => { icon_path = "mac-tray-light.png"; - }, + } dark_light::Mode::Light => { icon_path = "mac-tray-dark.png"; - }, + } } if let Ok(mut tray) = TrayItem::new(&crate::get_app_name(), icon_path) { tray.add_label(&format!( @@ -211,4 +232,3 @@ pub fn make_tray() { } } } - From 4aa5c934245228336b60c459b396ba67b0e99e13 Mon Sep 17 00:00:00 2001 From: fufesou Date: Sat, 10 Dec 2022 12:37:18 +0800 Subject: [PATCH 05/20] move glib dep to linux part Signed-off-by: fufesou --- Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Cargo.toml b/Cargo.toml index 2be48eca9..7715ebded 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -69,7 +69,6 @@ url = { version = "2.1", features = ["serde"] } reqwest = { version = "0.11", features = ["blocking", "json", "rustls-tls"], default-features=false } chrono = "0.4.23" cidr-utils = "0.5.9" -glib = "0.16.5" [target.'cfg(not(any(target_os = "android", target_os = "linux")))'.dependencies] cpal = "0.13.5" @@ -119,6 +118,7 @@ dbus = "0.9" dbus-crossroads = "0.5" gtk = "0.15" libappindicator = "0.7" +glib = "0.16.5" [target.'cfg(target_os = "android")'.dependencies] android_logger = "0.11" From a780519fe05ac8b615d7f5e48b209e8cd8723f66 Mon Sep 17 00:00:00 2001 From: fufesou Date: Sat, 10 Dec 2022 19:46:41 +0800 Subject: [PATCH 06/20] allow_err with msg Signed-off-by: fufesou --- libs/hbb_common/src/lib.rs | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/libs/hbb_common/src/lib.rs b/libs/hbb_common/src/lib.rs index ae564685f..0f9f7824c 100644 --- a/libs/hbb_common/src/lib.rs +++ b/libs/hbb_common/src/lib.rs @@ -66,6 +66,21 @@ macro_rules! allow_err { } else { } }; + + ($e:expr, $($arg:tt)*) => { + if let Err(err) = $e { + log::debug!( + "{:?}, {}, {}:{}:{}:{}", + err, + format_args!($($arg)*), + module_path!(), + file!(), + line!(), + column!() + ); + } else { + } + }; } #[inline] @@ -250,4 +265,10 @@ mod tests { let addr = SocketAddr::V4(SocketAddrV4::new(Ipv4Addr::new(192, 168, 16, 32), 21116)); assert_eq!(addr, AddrMangle::decode(&AddrMangle::encode(addr))); } + + #[test] + fn test_allow_err() { + allow_err!(Err("test err") as Result<(), &str>); + allow_err!(Err("test err with msg") as Result<(), &str>, "prompt {}", "failed"); + } } From a6135068a9905979b8b7c90b6c3e235c9dab2fe0 Mon Sep 17 00:00:00 2001 From: rustdesk Date: Sun, 11 Dec 2022 00:16:02 +0800 Subject: [PATCH 07/20] https://github.com/rustdesk/rustdesk/issues/2468 --- src/platform/linux.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/platform/linux.rs b/src/platform/linux.rs index 82d6592db..8a15c83dd 100644 --- a/src/platform/linux.rs +++ b/src/platform/linux.rs @@ -179,7 +179,8 @@ fn set_x11_env(uid: &str) { log::info!("uid of seat0: {}", uid); let gdm = format!("/run/user/{}/gdm/Xauthority", uid); let mut auth = get_env_tries("XAUTHORITY", uid, 10); - if auth.is_empty() { + // auth is another user's when uid = 0, https://github.com/rustdesk/rustdesk/issues/2468 + if auth.is_empty() || uid == "0" { auth = if std::path::Path::new(&gdm).exists() { gdm } else { From 46a6df86ea412d520355499d48edd677bf05ea0c Mon Sep 17 00:00:00 2001 From: kingtous Date: Sun, 11 Dec 2022 14:17:29 +0800 Subject: [PATCH 08/20] refactor: use latest custom cursor api --- flutter/lib/desktop/pages/remote_page.dart | 50 +++++++++++++--------- flutter/lib/models/model.dart | 5 ++- flutter/pubspec.yaml | 2 +- 3 files changed, 34 insertions(+), 23 deletions(-) diff --git a/flutter/lib/desktop/pages/remote_page.dart b/flutter/lib/desktop/pages/remote_page.dart index 7b3e0fe82..130a5e6ad 100644 --- a/flutter/lib/desktop/pages/remote_page.dart +++ b/flutter/lib/desktop/pages/remote_page.dart @@ -5,6 +5,8 @@ import 'dart:ui' as ui; import 'package:flutter/gestures.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; +import 'package:flutter_custom_cursor/cursor_manager.dart' + as custom_cursor_manager; import 'package:get/get.dart'; import 'package:provider/provider.dart'; import 'package:wakelock/wakelock.dart'; @@ -109,17 +111,17 @@ class _RemotePageState extends State id: widget.id, arg: 'show-remote-cursor'); _zoomCursor.value = bind.sessionGetToggleOptionSync(id: widget.id, arg: 'zoom-cursor'); - if (!_isCustomCursorInited) { - customCursorController.registerNeedUpdateCursorCallback( - (String? lastKey, String? currentKey) async { - if (_firstEnterImage.value) { - _firstEnterImage.value = false; - return true; - } - return lastKey == null || lastKey != currentKey; - }); - _isCustomCursorInited = true; - } + // if (!_isCustomCursorInited) { + // customCursorController.registerNeedUpdateCursorCallback( + // (String? lastKey, String? currentKey) async { + // if (_firstEnterImage.value) { + // _firstEnterImage.value = false; + // return true; + // } + // return lastKey == null || lastKey != currentKey; + // }); + // _isCustomCursorInited = true; + // } } @override @@ -366,15 +368,23 @@ class _ImagePaintState extends State { return MouseCursor.defer; } else { final key = cache.updateGetKey(scale, zoomCursor.value); - cursor.addKey(key); - return FlutterCustomMemoryImageCursor( - pixbuf: cache.data, - key: key, - hotx: cache.hotx, - hoty: cache.hoty, - imageWidth: (cache.width * cache.scale).toInt(), - imageHeight: (cache.height * cache.scale).toInt(), - ); + if (!cursor.cachedKeys.contains(key)) { + debugPrint("Register custom cursor with key $key"); + // [Safety] + // It's ok to call async registerCursor in current synchronous context, + // because activating the cursor is also an async call and will always + // be executed after this. + custom_cursor_manager.CursorManager.instance + .registerCursor(custom_cursor_manager.CursorData() + ..buffer = cache.data! + ..height = (cache.height * cache.scale).toInt() + ..width = (cache.width * cache.scale).toInt() + ..hotX = cache.hotx + ..hotY = cache.hoty + ..name = key); + cursor.addKey(key); + } + return FlutterCustomMemoryImageCursor(key: key); } } diff --git a/flutter/lib/models/model.dart b/flutter/lib/models/model.dart index 805bcde33..37c246fe1 100644 --- a/flutter/lib/models/model.dart +++ b/flutter/lib/models/model.dart @@ -19,7 +19,7 @@ import 'package:flutter_hbb/common/shared_state.dart'; import 'package:flutter_hbb/utils/multi_window_manager.dart'; import 'package:tuple/tuple.dart'; import 'package:image/image.dart' as img2; -import 'package:flutter_custom_cursor/flutter_custom_cursor.dart'; +import 'package:flutter_custom_cursor/cursor_manager.dart'; import 'package:flutter_svg/flutter_svg.dart'; import '../common.dart'; @@ -1113,7 +1113,8 @@ class CursorModel with ChangeNotifier { _clearCache() { final keys = {...cachedKeys}; for (var k in keys) { - customCursorController.freeCache(k); + debugPrint("deleting cursor with key $k"); + CursorManager.instance.deleteCursor(k); } } } diff --git a/flutter/pubspec.yaml b/flutter/pubspec.yaml index a8a3d7050..9084446be 100644 --- a/flutter/pubspec.yaml +++ b/flutter/pubspec.yaml @@ -68,7 +68,7 @@ dependencies: flutter_custom_cursor: git: url: https://github.com/Kingtous/rustdesk_flutter_custom_cursor - ref: 74b1b314142b6775c1243067a3503ac568ebc74b + ref: da241145957988efd91cc12a364848eabe505e83 window_size: git: url: https://github.com/google/flutter-desktop-embedding.git From bc5a959c902bde1a6e2fa6bafc02dbf30ac5f36e Mon Sep 17 00:00:00 2001 From: Kingtous Date: Sun, 11 Dec 2022 23:23:26 +0800 Subject: [PATCH 09/20] opt: backport cursor api --- .github/workflows/flutter-nightly.yml | 4 ++-- flutter/pubspec.lock | 16 +++++++--------- flutter/pubspec.yaml | 5 +---- 3 files changed, 10 insertions(+), 15 deletions(-) diff --git a/.github/workflows/flutter-nightly.yml b/.github/workflows/flutter-nightly.yml index 4ccd42081..5474183db 100644 --- a/.github/workflows/flutter-nightly.yml +++ b/.github/workflows/flutter-nightly.yml @@ -47,8 +47,8 @@ jobs: run: | flutter doctor -v flutter precache --windows - Invoke-WebRequest -Uri https://github.com/Kingtous/engine/releases/download/v3.0.5-rustdesk/windows-x64-release-flutter.zip -OutFile windows-x64-release-flutter.zip - Expand-Archive windows-x64-release-flutter.zip -DestinationPath engine + Invoke-WebRequest -Uri https://github.com/Kingtous/engine/releases/download/v3.0.5-rustdesk.2/windows-x64-flutter-release.zip -OutFile windows-x64-flutter-release.zip + Expand-Archive windows-x64-flutter-release.zip -DestinationPath engine mv -Force engine/* C:/hostedtoolcache/windows/flutter/stable-3.0.5-x64/bin/cache/artifacts/engine/windows-x64-release/ - name: Install Rust toolchain diff --git a/flutter/pubspec.lock b/flutter/pubspec.lock index 625862dbf..aec2abcde 100644 --- a/flutter/pubspec.lock +++ b/flutter/pubspec.lock @@ -352,7 +352,7 @@ packages: name: file_picker url: "https://pub.dartlang.org" source: hosted - version: "5.2.2" + version: "5.2.3" fixnum: dependency: transitive description: @@ -389,11 +389,9 @@ packages: flutter_custom_cursor: dependency: "direct main" description: - path: "." - ref: "74b1b314142b6775c1243067a3503ac568ebc74b" - resolved-ref: "74b1b314142b6775c1243067a3503ac568ebc74b" - url: "https://github.com/Kingtous/rustdesk_flutter_custom_cursor" - source: git + name: flutter_custom_cursor + url: "https://pub.dartlang.org" + source: hosted version: "0.0.1" flutter_improved_scrolling: dependency: "direct main" @@ -455,7 +453,7 @@ packages: name: freezed url: "https://pub.dartlang.org" source: hosted - version: "2.2.1" + version: "2.3.2" freezed_annotation: dependency: "direct main" description: @@ -637,7 +635,7 @@ packages: name: mime url: "https://pub.dartlang.org" source: hosted - version: "1.0.2" + version: "1.0.3" nested: dependency: transitive description: @@ -1113,7 +1111,7 @@ packages: name: video_player url: "https://pub.dartlang.org" source: hosted - version: "2.4.8" + version: "2.4.9" video_player_android: dependency: transitive description: diff --git a/flutter/pubspec.yaml b/flutter/pubspec.yaml index 9084446be..31caa91fd 100644 --- a/flutter/pubspec.yaml +++ b/flutter/pubspec.yaml @@ -65,10 +65,7 @@ dependencies: url: https://github.com/Kingtous/rustdesk_desktop_multi_window ref: 82f9eab81cb2c7bfb938def7a1b399a6279bbc75 freezed_annotation: ^2.0.3 - flutter_custom_cursor: - git: - url: https://github.com/Kingtous/rustdesk_flutter_custom_cursor - ref: da241145957988efd91cc12a364848eabe505e83 + flutter_custom_cursor: ^0.0.1 window_size: git: url: https://github.com/google/flutter-desktop-embedding.git From 5aaaf2a5e1198c3b84ec87081c2928b55bc91bb1 Mon Sep 17 00:00:00 2001 From: Kingtous Date: Sun, 11 Dec 2022 23:37:07 +0800 Subject: [PATCH 10/20] update: deps --- Cargo.lock | 332 ++++++++++++++++++++++++++++------------------------- 1 file changed, 174 insertions(+), 158 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 469828592..3db348fd0 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -76,7 +76,7 @@ dependencies = [ "alsa-sys", "bitflags", "libc", - "nix 0.23.1", + "nix 0.23.2", ] [[package]] @@ -175,11 +175,11 @@ dependencies = [ [[package]] name = "async-channel" -version = "1.7.1" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e14485364214912d3b19cc3435dde4df66065127f05fa0d75c712f36f12c2f28" +checksum = "cf46fee83e5ccffc220104713af3292ff9bc7c64c7de289f66dae8e38d826833" dependencies = [ - "concurrent-queue 1.2.4", + "concurrent-queue", "event-listener", "futures-core", ] @@ -192,7 +192,7 @@ checksum = "17adb73da160dfb475c183343c8cccd80721ea5a605d3eb57125f0a7b7a92d0b" dependencies = [ "async-lock", "async-task", - "concurrent-queue 2.0.0", + "concurrent-queue", "fastrand", "futures-lite", "slab", @@ -200,13 +200,13 @@ dependencies = [ [[package]] name = "async-io" -version = "1.10.0" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8121296a9f05be7f34aa4196b1747243b3b62e048bb7906f644f3fbfc490cf7" +checksum = "8c374dda1ed3e7d8f0d9ba58715f924862c63eae6849c92d3a18e7fbde9e2794" dependencies = [ "async-lock", "autocfg 1.1.0", - "concurrent-queue 1.2.4", + "concurrent-queue", "futures-lite", "libc", "log", @@ -215,7 +215,7 @@ dependencies = [ "slab", "socket2 0.4.7", "waker-fn", - "winapi 0.3.9", + "windows-sys 0.42.0", ] [[package]] @@ -230,20 +230,20 @@ dependencies = [ [[package]] name = "async-process" -version = "1.5.0" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02111fd8655a613c25069ea89fc8d9bb89331fa77486eb3bc059ee757cfa481c" +checksum = "6381ead98388605d0d9ff86371043b5aa922a3905824244de40dc263a14fcba4" dependencies = [ "async-io", + "async-lock", "autocfg 1.1.0", "blocking", "cfg-if 1.0.0", "event-listener", "futures-lite", "libc", - "once_cell", "signal-hook", - "winapi 0.3.9", + "windows-sys 0.42.0", ] [[package]] @@ -265,9 +265,9 @@ checksum = "7a40729d2133846d9ed0ea60a8b9541bccddab49cd30f0715a1da672fe9a2524" [[package]] name = "async-trait" -version = "0.1.58" +version = "0.1.59" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e805d94e6b5001b651426cf4cd446b1ab5f319d27bab5c644f61de0a804360c" +checksum = "31e6e93155431f3931513b243d371981bb2770112b370c82745a1d19d2f99364" dependencies = [ "proc-macro2", "quote", @@ -438,16 +438,16 @@ dependencies = [ [[package]] name = "blocking" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6ccb65d468978a086b69884437ded69a90faab3bbe6e67f242173ea728acccc" +checksum = "3c67b173a56acffd6d2326fb7ab938ba0b00a71480e14902b2591c87bc5741e8" dependencies = [ "async-channel", + "async-lock", "async-task", "atomic-waker", "fastrand", "futures-lite", - "once_cell", ] [[package]] @@ -495,15 +495,9 @@ version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dfb24e866b15a1af2a1b663f10c6b6b8f397a84aadb828f12e5b289ec23a3a3c" dependencies = [ - "serde 1.0.147", + "serde 1.0.149", ] -[[package]] -name = "cache-padded" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1db59621ec70f09c5e9b597b220c7a2b43611f4710dc03ceb8748637775692c" - [[package]] name = "cairo-rs" version = "0.15.12" @@ -544,7 +538,7 @@ version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "88ad0e1e3e88dd237a156ab9f571021b8a158caa0ae44b1968a241efb5144c1e" dependencies = [ - "serde 1.0.147", + "serde 1.0.149", ] [[package]] @@ -553,7 +547,7 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cbdb825da8a5df079a43676dbe042702f1707b1109f713a01420fbb4cc71fa27" dependencies = [ - "serde 1.0.147", + "serde 1.0.149", ] [[package]] @@ -565,7 +559,7 @@ dependencies = [ "camino", "cargo-platform", "semver 1.0.14", - "serde 1.0.147", + "serde 1.0.149", "serde_json 1.0.89", ] @@ -581,7 +575,7 @@ dependencies = [ "log", "proc-macro2", "quote", - "serde 1.0.147", + "serde 1.0.149", "serde_json 1.0.89", "syn", "tempfile", @@ -643,7 +637,7 @@ dependencies = [ "js-sys", "num-integer", "num-traits 0.2.15", - "time 0.1.44", + "time 0.1.45", "wasm-bindgen", "winapi 0.3.9", ] @@ -733,7 +727,7 @@ dependencies = [ "cc", "hbb_common", "lazy_static", - "serde 1.0.147", + "serde 1.0.149", "serde_derive", "thiserror", ] @@ -824,15 +818,6 @@ dependencies = [ "memchr", ] -[[package]] -name = "concurrent-queue" -version = "1.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af4780a44ab5696ea9e28294517f1fffb421a83a25af521333c838635509db9c" -dependencies = [ - "cache-padded", -] - [[package]] name = "concurrent-queue" version = "2.0.0" @@ -848,7 +833,7 @@ version = "0.4.0" source = "git+https://github.com/open-trade/confy#630cc28a396cb7d01eefdd9f3824486fe4d8554b" dependencies = [ "directories-next", - "serde 1.0.147", + "serde 1.0.149", "thiserror", "toml", ] @@ -976,7 +961,7 @@ dependencies = [ "mach", "ndk 0.6.0", "ndk-glue 0.6.2", - "nix 0.23.1", + "nix 0.23.2", "oboe", "parking_lot 0.11.2", "stdweb", @@ -1068,12 +1053,12 @@ dependencies = [ [[package]] name = "ctrlc" -version = "3.2.3" +version = "3.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d91974fbbe88ec1df0c24a4f00f99583667a7e2e6272b2b92d294d81e462173" +checksum = "1631ca6e3c59112501a9d87fd86f21591ff77acd31331e8a73f8d80a65bbdd71" dependencies = [ - "nix 0.25.0", - "winapi 0.3.9", + "nix 0.26.1", + "windows-sys 0.42.0", ] [[package]] @@ -1084,9 +1069,9 @@ checksum = "b365fabc795046672053e29c954733ec3b05e4be654ab130fe8f1f94d7051f35" [[package]] name = "cxx" -version = "1.0.82" +version = "1.0.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4a41a86530d0fe7f5d9ea779916b7cadd2d4f9add748b99c2c029cbbdfaf453" +checksum = "bdf07d07d6531bfcdbe9b8b739b104610c6508dcc4d63b410585faf338241daf" dependencies = [ "cc", "cxxbridge-flags", @@ -1096,9 +1081,9 @@ dependencies = [ [[package]] name = "cxx-build" -version = "1.0.82" +version = "1.0.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06416d667ff3e3ad2df1cd8cd8afae5da26cf9cec4d0825040f88b5ca659a2f0" +checksum = "d2eb5b96ecdc99f72657332953d4d9c50135af1bac34277801cc3937906ebd39" dependencies = [ "cc", "codespan-reporting", @@ -1111,15 +1096,15 @@ dependencies = [ [[package]] name = "cxxbridge-flags" -version = "1.0.82" +version = "1.0.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "820a9a2af1669deeef27cb271f476ffd196a2c4b6731336011e0ba63e2c7cf71" +checksum = "ac040a39517fd1674e0f32177648334b0f4074625b5588a64519804ba0553b12" [[package]] name = "cxxbridge-macro" -version = "1.0.82" +version = "1.0.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a08a6e2fcc370a089ad3b4aaf54db3b1b4cee38ddabce5896b33eb693275f470" +checksum = "1362b0ddcfc4eb0a1f57b68bd77dd99f0e826958a96abd0ae9bd092e114ffed6" dependencies = [ "proc-macro2", "quote", @@ -1458,7 +1443,7 @@ checksum = "7f3f119846c823f9eafcf953a8f6ffb6ed69bf6240883261a7f13b634579a51f" dependencies = [ "lazy_static", "regex", - "serde 1.0.147", + "serde 1.0.149", "strsim 0.10.0", ] @@ -1481,7 +1466,7 @@ dependencies = [ "cc", "hbb_common", "lazy_static", - "serde 1.0.147", + "serde 1.0.149", "serde_derive", "thiserror", ] @@ -1503,9 +1488,9 @@ checksum = "90e5c1c8368803113bf0c9584fc495a58b86dc8a29edbf8fe877d21d9507e797" [[package]] name = "embed-resource" -version = "1.7.2" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecc24ff8d764818e9ab17963b0593c535f077a513f565e75e4352d758bc4d8c0" +checksum = "e62abb876c07e4754fae5c14cafa77937841f01740637e17d78dc04352f32a5e" dependencies = [ "cc", "rustc_version 0.4.0", @@ -1534,7 +1519,7 @@ dependencies = [ "objc", "pkg-config", "rdev 0.5.0-2 (git+https://github.com/asur4s/rdev)", - "serde 1.0.147", + "serde 1.0.149", "serde_derive", "tfc", "unicode-segmentation", @@ -1580,7 +1565,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e75d4cd21b95383444831539909fbb14b9dc3fdceb2a6f5d36577329a1f55ccb" dependencies = [ "enumflags2_derive", - "serde 1.0.147", + "serde 1.0.149", ] [[package]] @@ -1679,7 +1664,7 @@ source = "git+https://github.com/fufesou/evdev#cec616e37790293d2cd2aa54a96601ed6 dependencies = [ "bitvec", "libc", - "nix 0.23.1", + "nix 0.23.2", ] [[package]] @@ -1718,9 +1703,9 @@ dependencies = [ [[package]] name = "filetime" -version = "0.2.18" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b9663d381d07ae25dc88dbdf27df458faa83a9b25336bcac83d5e452b5fc9d3" +checksum = "4e884668cd0c7480504233e951174ddc3b382f7c2666e3b7310b5c4e7b0c37f9" dependencies = [ "cfg-if 1.0.0", "libc", @@ -1730,12 +1715,12 @@ dependencies = [ [[package]] name = "flate2" -version = "1.0.24" +version = "1.0.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f82b0f4c27ad9f8bfd1f3208d882da2b09c301bc1c828fd3a00d0216d2fbbff6" +checksum = "a8a2db397cb1c8772f31494cb8917e48cd1e64f0fa7efac59fbd741a0a8ce841" dependencies = [ "crc32fast", - "miniz_oxide 0.5.4", + "miniz_oxide 0.6.2", ] [[package]] @@ -1787,7 +1772,7 @@ dependencies = [ "pathdiff", "quote", "regex", - "serde 1.0.147", + "serde 1.0.149", "serde_yaml", "structopt", "syn", @@ -2526,7 +2511,7 @@ dependencies = [ "quinn", "rand 0.8.5", "regex", - "serde 1.0.147", + "serde 1.0.149", "serde_derive", "serde_json 1.0.89", "socket2 0.3.19", @@ -2618,12 +2603,12 @@ checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" [[package]] name = "hwcodec" version = "0.1.0" -source = "git+https://github.com/21pages/hwcodec#f54d69b35251ade110373403ddefcb8b49c87305" +source = "git+https://github.com/21pages/hwcodec#e819484c4c010199f2a0977bdf306b4edbeafbae" dependencies = [ "bindgen 0.59.2", "cc", "log", - "serde 1.0.147", + "serde 1.0.149", "serde_derive", "serde_json 1.0.89", ] @@ -2654,9 +2639,9 @@ dependencies = [ [[package]] name = "hyper-rustls" -version = "0.23.1" +version = "0.23.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59df7c4e19c950e6e0e868dcc0a300b09a9b88e9ec55bd879ca819087a77355d" +checksum = "1788965e61b367cd03a62950836d5cd41560c3577d90e40e0819373194d1661c" dependencies = [ "http", "hyper", @@ -2801,9 +2786,9 @@ dependencies = [ [[package]] name = "ipnet" -version = "2.5.1" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f88c5561171189e69df9d98bcf18fd5f9558300f7ea7b801eb8a0fd748bd8745" +checksum = "ec947b7a4ce12e3b87e353abae7ce124d025b6c7d6c5aea5cc0bcf92e9510ded" [[package]] name = "itertools" @@ -2918,9 +2903,9 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.137" +version = "0.2.138" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc7fcc620a3bff7cdd7a365be3376c97191aeaccc2a603e600951e452615bf89" +checksum = "db6d7e329c562c5dfab7a46a2afabc8b987ab9a4834c9d1ca04dc54c1546cef8" [[package]] name = "libdbus-sys" @@ -3050,7 +3035,7 @@ version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b238e3235c8382b7653c6408ed1b08dd379bdb9fdf990fb0bbae3db2cc0ae963" dependencies = [ - "nix 0.23.1", + "nix 0.23.2", "winapi 0.3.9", ] @@ -3175,6 +3160,15 @@ dependencies = [ "adler", ] +[[package]] +name = "miniz_oxide" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b275950c28b37e794e8c55d88aeb5e139d0ce23fdbbeda68f8d7174abdf9e8fa" +dependencies = [ + "adler", +] + [[package]] name = "mio" version = "0.6.23" @@ -3251,7 +3245,7 @@ dependencies = [ [[package]] name = "mouce" version = "0.2.1" -source = "git+https://github.com/fufesou/mouce.git#aa18ba25bb47484282e972a4b95a8e1d753230b5" +source = "git+https://github.com/fufesou/mouce.git#ed83800d532b95d70e39915314f6052aa433e9b9" dependencies = [ "glob", ] @@ -3401,9 +3395,9 @@ dependencies = [ [[package]] name = "nix" -version = "0.23.1" +version = "0.23.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f866317acbd3a240710c63f065ffb1e4fd466259045ccb504130b7f668f35c6" +checksum = "8f3790c00a0150112de0f4cd161e3d7fc4b2d8a5542ffc35f099a2562aecb35c" dependencies = [ "bitflags", "cc", @@ -3414,9 +3408,9 @@ dependencies = [ [[package]] name = "nix" -version = "0.24.2" +version = "0.24.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "195cdbc1741b8134346d515b3a56a1c94b0912758009cfd53f99ea0f57b065fc" +checksum = "fa52e972a9a719cecb6864fb88568781eb706bac2cd1d4f04a648542dbf78069" dependencies = [ "bitflags", "cfg-if 1.0.0", @@ -3426,9 +3420,9 @@ dependencies = [ [[package]] name = "nix" -version = "0.25.0" +version = "0.25.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e322c04a9e3440c327fca7b6c8a63e6890a32fa2ad689db972425f07e0d22abb" +checksum = "f346ff70e7dbfd675fe90590b92d59ef2de15a8779ae305ebcbfd3f0caf59be4" dependencies = [ "autocfg 1.1.0", "bitflags", @@ -3438,6 +3432,18 @@ dependencies = [ "pin-utils", ] +[[package]] +name = "nix" +version = "0.26.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46a58d1d356c6597d08cde02c2f09d785b09e28711837b1ed667dc652c08a694" +dependencies = [ + "bitflags", + "cfg-if 1.0.0", + "libc", + "static_assertions", +] + [[package]] name = "nom" version = "7.1.1" @@ -3663,9 +3669,9 @@ dependencies = [ [[package]] name = "ordered-stream" -version = "0.1.1" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "034ce384018b245e8d8424bbe90577fbd91a533be74107e465e3474eb2285eef" +checksum = "01ca8c99d73c6e92ac1358f9f692c22c0bfd9c4701fa086f5d365c0d4ea818ea" dependencies = [ "futures-core", "pin-project-lite", @@ -3747,7 +3753,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" dependencies = [ "lock_api", - "parking_lot_core 0.9.4", + "parking_lot_core 0.9.5", ] [[package]] @@ -3766,9 +3772,9 @@ dependencies = [ [[package]] name = "parking_lot_core" -version = "0.9.4" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4dc9e0dc2adc1c69d09143aff38d3d30c5c3f0df0dad82e6d25547af174ebec0" +checksum = "7ff9f3fef3968a3ec5945535ed654cb38ff72d7495a25619e2247fb15a2ed9ba" dependencies = [ "cfg-if 1.0.0", "libc", @@ -3803,9 +3809,9 @@ checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e" [[package]] name = "pest" -version = "2.4.1" +version = "2.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a528564cc62c19a7acac4d81e01f39e53e25e17b934878f4c6d25cc2836e62f8" +checksum = "cc8bed3549e0f9b0a2a78bf7c0018237a2cdf085eecbbc048e52612438e4e9d0" dependencies = [ "thiserror", "ucd-trie", @@ -3901,16 +3907,16 @@ dependencies = [ [[package]] name = "polling" -version = "2.4.0" +version = "2.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab4609a838d88b73d8238967b60dd115cc08d38e2bbaf51ee1e4b695f89122e2" +checksum = "166ca89eb77fd403230b9c156612965a81e094ec6ec3aa13663d4c8b113fa748" dependencies = [ "autocfg 1.1.0", "cfg-if 1.0.0", "libc", "log", "wepoll-ffi", - "winapi 0.3.9", + "windows-sys 0.42.0", ] [[package]] @@ -4276,11 +4282,10 @@ dependencies = [ [[package]] name = "rayon" -version = "1.6.0" +version = "1.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e060280438193c554f654141c9ea9417886713b7acd75974c85b18a69a88e0b" +checksum = "6db3a213adf02b3bcfd2d3846bb41cb22857d131789e01df434fb7e7bc0759b7" dependencies = [ - "crossbeam-deque", "either", "rayon-core", ] @@ -4300,7 +4305,7 @@ dependencies = [ [[package]] name = "rdev" version = "0.5.0-2" -source = "git+https://github.com/asur4s/rdev#4051761e7ccf434a443b8e9592c23160c9cace56" +source = "git+https://github.com/asur4s/rdev#3d6d413a9b2ab703edc22071acea31826b0efce3" dependencies = [ "cocoa", "core-foundation 0.9.3", @@ -4316,13 +4321,13 @@ dependencies = [ "strum_macros 0.24.3", "widestring 1.0.2", "winapi 0.3.9", - "x11 2.20.0", + "x11 2.20.1", ] [[package]] name = "rdev" version = "0.5.0-2" -source = "git+https://github.com/rustdesk/rdev#25c29f61bfdf5d8ec50f0a8a7743bc1d85eb2c04" +source = "git+https://github.com/rustdesk/rdev#3d6d413a9b2ab703edc22071acea31826b0efce3" dependencies = [ "cocoa", "core-foundation 0.9.3", @@ -4338,7 +4343,7 @@ dependencies = [ "strum_macros 0.24.3", "widestring 1.0.2", "winapi 0.3.9", - "x11 2.20.0", + "x11 2.20.1", ] [[package]] @@ -4352,9 +4357,9 @@ dependencies = [ [[package]] name = "realfft" -version = "3.1.0" +version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3052e66d6ebeff8049607775c41d39a58d1dfa91a2733e89f2b7816bce2ea4cc" +checksum = "93d6b8e8f0c6d2234aa58048d7290c60bf92cd36fd2888cd8331c66ad4f2e1d2" dependencies = [ "rustfft", ] @@ -4440,7 +4445,7 @@ dependencies = [ "pin-project-lite", "rustls", "rustls-pemfile 1.0.1", - "serde 1.0.147", + "serde 1.0.149", "serde_json 1.0.89", "serde_urlencoded", "tokio", @@ -4482,9 +4487,20 @@ dependencies = [ [[package]] name = "rpassword" -version = "7.1.0" +version = "7.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20c9f5d2a0c3e2ea729ab3706d22217177770654c3ef5056b68b69d07332d3f5" +checksum = "6678cf63ab3491898c0d021b493c94c9b221d91295294a2a5746eacbe5928322" +dependencies = [ + "libc", + "rtoolbox", + "winapi 0.3.9", +] + +[[package]] +name = "rtoolbox" +version = "0.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "034e22c514f5c0cb8a10ff341b9b048b5ceb21591f31c8f44c43b960f9b3524a" dependencies = [ "libc", "winapi 0.3.9", @@ -4615,14 +4631,14 @@ dependencies = [ "rdev 0.5.0-2 (git+https://github.com/rustdesk/rdev)", "repng", "reqwest", - "rpassword 7.1.0", + "rpassword 7.2.0", "rubato", "runas", "rust-pulsectl", "samplerate", "sciter-rs", "scrap", - "serde 1.0.147", + "serde 1.0.149", "serde_derive", "serde_json 1.0.89", "sha2", @@ -4799,7 +4815,7 @@ dependencies = [ "num_cpus", "quest", "repng", - "serde 1.0.147", + "serde 1.0.149", "serde_json 1.0.89", "target_build_utils", "tracing", @@ -4861,7 +4877,7 @@ version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e25dfac463d778e353db5be2449d1cce89bd6fd23c9f1ea21310ce6e5a1b29c4" dependencies = [ - "serde 1.0.147", + "serde 1.0.149", ] [[package]] @@ -4881,18 +4897,18 @@ checksum = "34b623917345a631dc9608d5194cc206b3fe6c3554cd1c75b937e55e285254af" [[package]] name = "serde" -version = "1.0.147" +version = "1.0.149" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d193d69bae983fc11a79df82342761dfbf28a99fc8d203dca4c3c1b590948965" +checksum = "256b9932320c590e707b94576e3cc1f7c9024d0ee6612dfbcf1cb106cbe8e055" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.147" +version = "1.0.149" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f1d362ca8fc9c3e3a7484440752472d68a6caa98f1ab81d99b5dfe517cec852" +checksum = "b4eae9b04cbffdfd550eb462ed33bc6a1b68c935127d008b27444d08380f94e4" dependencies = [ "proc-macro2", "quote", @@ -4919,7 +4935,7 @@ checksum = "020ff22c755c2ed3f8cf162dbb41a7268d934702f3ed3631656ea597e08fc3db" dependencies = [ "itoa 1.0.4", "ryu", - "serde 1.0.147", + "serde 1.0.149", ] [[package]] @@ -4942,7 +4958,7 @@ dependencies = [ "form_urlencoded", "itoa 1.0.4", "ryu", - "serde 1.0.147", + "serde 1.0.149", ] [[package]] @@ -4953,7 +4969,7 @@ checksum = "578a7433b776b56a35785ed5ce9a7e777ac0598aac5a6dd1b4b18a307c7fc71b" dependencies = [ "indexmap", "ryu", - "serde 1.0.147", + "serde 1.0.149", "yaml-rust", ] @@ -4987,7 +5003,7 @@ checksum = "ba8593196da75d9dc4f69349682bd4c2099f8cde114257d1ef7ef1b33d1aba54" dependencies = [ "cfg-if 1.0.0", "libc", - "nix 0.23.1", + "nix 0.23.2", "rand 0.8.5", "win-sys", ] @@ -5035,7 +5051,7 @@ version = "0.1.0" dependencies = [ "confy", "hbb_common", - "serde 1.0.147", + "serde 1.0.149", "serde_derive", "walkdir", ] @@ -5110,7 +5126,7 @@ dependencies = [ "ed25519", "libc", "libsodium-sys", - "serde 1.0.147", + "serde 1.0.149", ] [[package]] @@ -5218,9 +5234,9 @@ dependencies = [ [[package]] name = "syn" -version = "1.0.103" +version = "1.0.105" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a864042229133ada95abf3b54fdc62ef5ccabe9515b64717bcb9a1919e59445d" +checksum = "60b9b43d45702de4c839cb9b51d9f529c5dd26a4aff255b42b1ebc03e88ee908" dependencies = [ "proc-macro2", "quote", @@ -5442,9 +5458,9 @@ dependencies = [ [[package]] name = "time" -version = "0.1.44" +version = "0.1.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6db9e6914ab8b1ae1c260a4ae7a49b6c5611b40328a735b21862567685e73255" +checksum = "1b797afad3f312d1c66a56d11d0316f916356d11bd158fbc6ca6389ff6bf805a" dependencies = [ "libc", "wasi 0.10.0+wasi-snapshot-preview1", @@ -5486,9 +5502,9 @@ checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" [[package]] name = "tokio" -version = "1.22.0" +version = "1.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d76ce4a75fb488c605c54bf610f221cea8b0dafb53333c1a67e8ee199dcd2ae3" +checksum = "eab6d665857cc6ca78d6e80303a02cea7a7851e85dfbd77cbdc09bd129f1ef46" dependencies = [ "autocfg 1.1.0", "bytes", @@ -5501,14 +5517,14 @@ dependencies = [ "signal-hook-registry", "socket2 0.4.7", "tokio-macros", - "winapi 0.3.9", + "windows-sys 0.42.0", ] [[package]] name = "tokio-macros" -version = "1.8.0" +version = "1.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9724f9a975fb987ef7a3cd9be0350edcbe130698af5b8f7a631e23d42d052484" +checksum = "d266c00fde287f55d3f1c3e96c500c362a2b8c695076ec180f27918820bc6df8" dependencies = [ "proc-macro2", "quote", @@ -5566,7 +5582,7 @@ version = "0.5.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8d82e1a7758622a465f8cee077614c73484dac5b836c02ff6a40d5d1010324d7" dependencies = [ - "serde 1.0.147", + "serde 1.0.149", ] [[package]] @@ -5652,9 +5668,9 @@ checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" [[package]] name = "typenum" -version = "1.15.0" +version = "1.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcf81ac59edc17cc8697ff311e8f5ef2d99fcbd9817b34cec66f90b6c3dfd987" +checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba" [[package]] name = "ucd-trie" @@ -5726,7 +5742,7 @@ dependencies = [ "form_urlencoded", "idna", "percent-encoding", - "serde 1.0.147", + "serde 1.0.149", ] [[package]] @@ -5783,9 +5799,9 @@ dependencies = [ [[package]] name = "vswhom-sys" -version = "0.1.1" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22025f6d8eb903ebf920ea6933b70b1e495be37e2cb4099e62c80454aaf57c39" +checksum = "d3b17ae1f6c8a2b28506cd96d412eebf83b4a0ff2cbefeeb952f2f9dfa44ba18" dependencies = [ "cc", "libc", @@ -5905,7 +5921,7 @@ dependencies = [ "bitflags", "downcast-rs", "libc", - "nix 0.24.2", + "nix 0.24.3", "scoped-tls", "wayland-commons", "wayland-scanner", @@ -5918,7 +5934,7 @@ version = "0.29.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8691f134d584a33a6606d9d717b95c4fa20065605f798a3f350d78dced02a902" dependencies = [ - "nix 0.24.2", + "nix 0.24.3", "once_cell", "smallvec", "wayland-sys", @@ -5930,7 +5946,7 @@ version = "0.29.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6865c6b66f13d6257bef1cd40cbfe8ef2f150fb8ebbdb1e8e873455931377661" dependencies = [ - "nix 0.24.2", + "nix 0.24.3", "wayland-client", "xcursor", ] @@ -6009,9 +6025,9 @@ dependencies = [ [[package]] name = "webpki-roots" -version = "0.22.5" +version = "0.22.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "368bfe657969fb01238bb756d351dcade285e0f6fcbd36dcb23359a5169975be" +checksum = "b6c71e40d7d2c34a5106301fb632274ca37242cd0c9d3e64dbece371a40a2d87" dependencies = [ "webpki", ] @@ -6476,9 +6492,9 @@ dependencies = [ [[package]] name = "x11" -version = "2.20.0" +version = "2.20.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7ae97874a928d821b061fce3d1fc52f08071dd53c89a6102bc06efcac3b2908" +checksum = "c2638d5b9c17ac40575fb54bb461a4b1d2a8d1b4ffcc4ff237d254ec59ddeb82" dependencies = [ "libc", "pkg-config", @@ -6486,9 +6502,9 @@ dependencies = [ [[package]] name = "x11-dl" -version = "2.20.0" +version = "2.20.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c83627bc137605acc00bb399c7b908ef460b621fc37c953db2b09f88c449ea6" +checksum = "b1536d6965a5d4e573c7ef73a2c15ebcd0b2de3347bdf526c34c297c00ac40f0" dependencies = [ "lazy_static", "libc", @@ -6533,9 +6549,9 @@ dependencies = [ [[package]] name = "zbus" -version = "3.5.0" +version = "3.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a25ae891bd547674b368906552115143031c16c23a0f2f4b2f5f5436ab2e6a9f" +checksum = "938ea6da98c75c2c37a86007bd17fd8e208cbec24e086108c87ece98e9edec0d" dependencies = [ "async-broadcast", "async-channel", @@ -6554,11 +6570,11 @@ dependencies = [ "futures-sink", "futures-util", "hex", - "nix 0.25.0", + "nix 0.25.1", "once_cell", "ordered-stream", "rand 0.8.5", - "serde 1.0.147", + "serde 1.0.149", "serde_repr", "sha1", "static_assertions", @@ -6572,9 +6588,9 @@ dependencies = [ [[package]] name = "zbus_macros" -version = "3.5.0" +version = "3.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8aa37701ce7b3a43632d2b0ad9d4aef602b46be6bdd7fba3b7c5007f9f6eb2c2" +checksum = "45066039ebf3330820e495e854f8b312abb68f0a39e97972d092bd72e8bb3e8e" dependencies = [ "proc-macro-crate 1.2.1", "proc-macro2", @@ -6585,11 +6601,11 @@ dependencies = [ [[package]] name = "zbus_names" -version = "2.3.0" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d69bb79b44e1901ed8b217e485d0f01991aec574479b68cb03415f142bc7ae67" +checksum = "6c737644108627748a660d038974160e0cbb62605536091bdfa28fd7f64d43c8" dependencies = [ - "serde 1.0.147", + "serde 1.0.149", "static_assertions", "zvariant", ] @@ -6625,23 +6641,23 @@ dependencies = [ [[package]] name = "zvariant" -version = "3.8.0" +version = "3.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c817f416f05fcbc833902f1e6064b72b1778573978cfeac54731451ccc9e207" +checksum = "56f8c89c183461e11867ded456db252eae90874bc6769b7adbea464caa777e51" dependencies = [ "byteorder", "enumflags2", "libc", - "serde 1.0.147", + "serde 1.0.149", "static_assertions", "zvariant_derive", ] [[package]] name = "zvariant_derive" -version = "3.8.0" +version = "3.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdd24fffd02794a76eb10109de463444064c88f5adb9e9d1a78488adc332bfef" +checksum = "155247a5d1ab55e335421c104ccd95d64f17cebbd02f50cdbc1c33385f9c4d81" dependencies = [ "proc-macro-crate 1.2.1", "proc-macro2", From cc0c335e1e8b9dbc77a5c8d1275dca62d5307dc7 Mon Sep 17 00:00:00 2001 From: Kingtous Date: Sun, 11 Dec 2022 23:43:47 +0800 Subject: [PATCH 11/20] fix: rdev compilation --- src/ui_session_interface.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/ui_session_interface.rs b/src/ui_session_interface.rs index 6b635436d..7d88ce22a 100644 --- a/src/ui_session_interface.rs +++ b/src/ui_session_interface.rs @@ -822,9 +822,9 @@ impl Session { #[cfg(target_os = "linux")] pub fn grab_hotkeys(&self, _grab: bool) { if _grab { - rdev::enable_grab().ok(); + rdev::enable_grab(); } else { - rdev::disable_grab().ok(); + rdev::disable_grab(); } } @@ -1342,7 +1342,7 @@ impl Session { } _ => Some(event), }; - rdev::start_grab_listen(func) + rdev::start_grab_listen(func); } #[cfg(any(target_os = "windows", target_os = "macos"))] std::thread::spawn(move || { @@ -1610,7 +1610,7 @@ pub fn global_grab_keyboard() { } _ => Some(event), }; - rdev::start_grab_listen(func) + rdev::start_grab_listen(func); } #[cfg(any(target_os = "windows", target_os = "macos"))] From 5a6e879c0a3121a390800327711e518e9be2db29 Mon Sep 17 00:00:00 2001 From: Kingtous Date: Mon, 12 Dec 2022 00:14:38 +0800 Subject: [PATCH 12/20] update: cursor to 0.0.2 --- flutter/pubspec.lock | 2 +- flutter/pubspec.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/flutter/pubspec.lock b/flutter/pubspec.lock index aec2abcde..5f7c67618 100644 --- a/flutter/pubspec.lock +++ b/flutter/pubspec.lock @@ -392,7 +392,7 @@ packages: name: flutter_custom_cursor url: "https://pub.dartlang.org" source: hosted - version: "0.0.1" + version: "0.0.2" flutter_improved_scrolling: dependency: "direct main" description: diff --git a/flutter/pubspec.yaml b/flutter/pubspec.yaml index 31caa91fd..a87727f7b 100644 --- a/flutter/pubspec.yaml +++ b/flutter/pubspec.yaml @@ -65,7 +65,7 @@ dependencies: url: https://github.com/Kingtous/rustdesk_desktop_multi_window ref: 82f9eab81cb2c7bfb938def7a1b399a6279bbc75 freezed_annotation: ^2.0.3 - flutter_custom_cursor: ^0.0.1 + flutter_custom_cursor: ^0.0.2 window_size: git: url: https://github.com/google/flutter-desktop-embedding.git From c5560b66b1ece513e7ac39957731665e67f4bb23 Mon Sep 17 00:00:00 2001 From: RustDesk <71636191+rustdesk@users.noreply.github.com> Date: Mon, 12 Dec 2022 09:41:46 +0800 Subject: [PATCH 13/20] Update Cargo.toml --- Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Cargo.toml b/Cargo.toml index 7715ebded..006663a66 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -47,7 +47,7 @@ libc = "0.2" parity-tokio-ipc = { git = "https://github.com/open-trade/parity-tokio-ipc" } flexi_logger = { version = "0.22", features = ["async", "use_chrono_for_offset"] } runas = "0.2" -magnum-opus = { git = "https://github.com/SoLongAndThanksForAllThePizza/magnum-opus" } +magnum-opus = { git = "https://github.com/rustdesk/magnum-opus" } dasp = { version = "0.11", features = ["signal", "interpolate-linear", "interpolate"], optional = true } rubato = { version = "0.12", optional = true } samplerate = { version = "0.2", optional = true } From 3dd43b79ec0409fc38103bed0c7eb0bc3cd993d5 Mon Sep 17 00:00:00 2001 From: "Miguel F. G" <116861809+flusheDData@users.noreply.github.com> Date: Mon, 12 Dec 2022 16:49:26 +0100 Subject: [PATCH 14/20] Update es.rs 'Addresbook' update --- src/lang/es.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lang/es.rs b/src/lang/es.rs index 17c3ddf07..8690f8b3f 100644 --- a/src/lang/es.rs +++ b/src/lang/es.rs @@ -17,7 +17,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Transfer File", "Transferir archivo"), ("Connect", "Conectar"), ("Recent Sessions", "Sesiones recientes"), - ("Address Book", "Directorio"), + ("Address Book", "Libreta de direcciones"), ("Confirmation", "Confirmación"), ("TCP Tunneling", "Túnel TCP"), ("Remove", "Quitar"), From cd511010a887a74819e1e3194d276630fa6e0477 Mon Sep 17 00:00:00 2001 From: rustdesk Date: Tue, 13 Dec 2022 00:10:53 +0800 Subject: [PATCH 15/20] update lock --- Cargo.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Cargo.lock b/Cargo.lock index 3db348fd0..ae5f7b0c7 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3060,7 +3060,7 @@ dependencies = [ [[package]] name = "magnum-opus" version = "0.4.0" -source = "git+https://github.com/SoLongAndThanksForAllThePizza/magnum-opus#6247071a64af7b18e2d553e235729e6865f63ece" +source = "git+https://github.com/rustdesk/magnum-opus#79be072c939168e907fe851690759dcfd6a326af" dependencies = [ "bindgen 0.59.2", "target_build_utils", From e58f2186ec86d454b64da324b46bad38d1b7ece5 Mon Sep 17 00:00:00 2001 From: 21pages Date: Tue, 13 Dec 2022 09:47:23 +0800 Subject: [PATCH 16/20] don't new hwcodec decoders if option disabled Signed-off-by: 21pages --- libs/scrap/src/common/codec.rs | 22 +++++++++++++++------- libs/scrap/src/common/hwcodec.rs | 3 ++- libs/scrap/src/common/mediacodec.rs | 1 + 3 files changed, 18 insertions(+), 8 deletions(-) diff --git a/libs/scrap/src/common/codec.rs b/libs/scrap/src/common/codec.rs index d729342d6..9535e9f3a 100644 --- a/libs/scrap/src/common/codec.rs +++ b/libs/scrap/src/common/codec.rs @@ -218,7 +218,7 @@ impl Encoder { #[inline] pub fn current_hw_encoder_name() -> Option { #[cfg(feature = "hwcodec")] - if check_hwcodec_config() { + if enable_hwcodec_option() { return HwEncoder::current_name().lock().unwrap().clone(); } else { return None; @@ -229,7 +229,7 @@ impl Encoder { pub fn supported_encoding() -> (bool, bool) { #[cfg(feature = "hwcodec")] - if check_hwcodec_config() { + if enable_hwcodec_option() { let best = HwEncoder::best(); ( best.h264.as_ref().map_or(false, |c| c.score > 0), @@ -246,7 +246,7 @@ impl Encoder { impl Decoder { pub fn video_codec_state(_id: &str) -> VideoCodecState { #[cfg(feature = "hwcodec")] - if check_hwcodec_config() { + if enable_hwcodec_option() { let best = HwDecoder::best(); return VideoCodecState { score_vpx: SCORE_VPX, @@ -257,7 +257,7 @@ impl Decoder { }; } #[cfg(feature = "mediacodec")] - if check_hwcodec_config() { + if enable_hwcodec_option() { let score_h264 = if H264_DECODER_SUPPORT.load(std::sync::atomic::Ordering::SeqCst) { 92 } else { @@ -287,11 +287,19 @@ impl Decoder { Decoder { vpx, #[cfg(feature = "hwcodec")] - hw: HwDecoder::new_decoders(), + hw: if enable_hwcodec_option() { + HwDecoder::new_decoders() + } else { + HwDecoders::default() + }, #[cfg(feature = "hwcodec")] i420: vec![], #[cfg(feature = "mediacodec")] - media_codec: MediaCodecDecoder::new_decoders(), + media_codec: if enable_hwcodec_option() { + MediaCodecDecoder::new_decoders() + } else { + MediaCodecDecoders::default() + }, } } @@ -415,7 +423,7 @@ impl Decoder { } #[cfg(any(feature = "hwcodec", feature = "mediacodec"))] -fn check_hwcodec_config() -> bool { +fn enable_hwcodec_option() -> bool { if let Some(v) = Config2::get().options.get("enable-hwcodec") { return v != "N"; } diff --git a/libs/scrap/src/common/hwcodec.rs b/libs/scrap/src/common/hwcodec.rs index 166f7516c..c77da3f8f 100644 --- a/libs/scrap/src/common/hwcodec.rs +++ b/libs/scrap/src/common/hwcodec.rs @@ -94,7 +94,7 @@ impl EncoderApi for HwEncoder { frames.push(EncodedVideoFrame { data: Bytes::from(frame.data), pts: frame.pts as _, - key:frame.key == 1, + key: frame.key == 1, ..Default::default() }); } @@ -175,6 +175,7 @@ pub struct HwDecoder { pub info: CodecInfo, } +#[derive(Default)] pub struct HwDecoders { pub h264: Option, pub h265: Option, diff --git a/libs/scrap/src/common/mediacodec.rs b/libs/scrap/src/common/mediacodec.rs index fa821246c..406baecb5 100644 --- a/libs/scrap/src/common/mediacodec.rs +++ b/libs/scrap/src/common/mediacodec.rs @@ -37,6 +37,7 @@ impl Deref for MediaCodecDecoder { } } +#[derive(Default)] pub struct MediaCodecDecoders { pub h264: Option, pub h265: Option, From d08eb0441c2536014751351147237dd0e1ea1d44 Mon Sep 17 00:00:00 2001 From: 21pages Date: Tue, 13 Dec 2022 16:25:05 +0800 Subject: [PATCH 17/20] log Signed-off-by: 21pages --- libs/scrap/src/common/hwcodec.rs | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/libs/scrap/src/common/hwcodec.rs b/libs/scrap/src/common/hwcodec.rs index c77da3f8f..55c2309b5 100644 --- a/libs/scrap/src/common/hwcodec.rs +++ b/libs/scrap/src/common/hwcodec.rs @@ -190,22 +190,28 @@ impl HwDecoder { } pub fn new_decoders() -> HwDecoders { + flog("enter new_decoders"); let best = HwDecoder::best(); + flog(&format!("best:${:?}", best)); let mut h264: Option = None; let mut h265: Option = None; let mut fail = false; if let Some(info) = best.h264 { + flog(&format!("before new h264 codec")); h264 = HwDecoder::new(info).ok(); if h264.is_none() { fail = true; } + flog(&format!("new h264 codec result:{:}", h264.is_some())); } if let Some(info) = best.h265 { + flog(&format!("before new h265 codec")); h265 = HwDecoder::new(info).ok(); if h265.is_none() { fail = true; } + flog(&format!("new h265 codec result:{:}", h265.is_some())); } if fail { check_config_process(true); @@ -322,11 +328,21 @@ pub fn check_config_process(force_reset: bool) { } if let Ok(exe) = std::env::current_exe() { std::thread::spawn(move || { - std::process::Command::new(exe) + let result = std::process::Command::new(exe) .arg("--check-hwcodec-config") .status() .ok(); + flog(&format!("check codec process run result:{:?}", result)); HwCodecConfig::refresh(); }); }; } + +pub fn flog(s: &str) { + use hbb_common::chrono::prelude::*; + use std::io::Write; + let mut option = std::fs::OpenOptions::new(); + if let Ok(mut f) = option.append(true).create(true).open("/tmp/log.txt") { + write!(&mut f, "{:?} {}\n", Local::now(), s).ok(); + } +} From 72594c7e0e3baa8238d6568c455f3437eebe997c Mon Sep 17 00:00:00 2001 From: 21pages Date: Tue, 13 Dec 2022 21:30:08 +0800 Subject: [PATCH 18/20] remove hwcodec log Signed-off-by: 21pages --- libs/scrap/src/common/hwcodec.rs | 18 +----------------- 1 file changed, 1 insertion(+), 17 deletions(-) diff --git a/libs/scrap/src/common/hwcodec.rs b/libs/scrap/src/common/hwcodec.rs index 55c2309b5..c77da3f8f 100644 --- a/libs/scrap/src/common/hwcodec.rs +++ b/libs/scrap/src/common/hwcodec.rs @@ -190,28 +190,22 @@ impl HwDecoder { } pub fn new_decoders() -> HwDecoders { - flog("enter new_decoders"); let best = HwDecoder::best(); - flog(&format!("best:${:?}", best)); let mut h264: Option = None; let mut h265: Option = None; let mut fail = false; if let Some(info) = best.h264 { - flog(&format!("before new h264 codec")); h264 = HwDecoder::new(info).ok(); if h264.is_none() { fail = true; } - flog(&format!("new h264 codec result:{:}", h264.is_some())); } if let Some(info) = best.h265 { - flog(&format!("before new h265 codec")); h265 = HwDecoder::new(info).ok(); if h265.is_none() { fail = true; } - flog(&format!("new h265 codec result:{:}", h265.is_some())); } if fail { check_config_process(true); @@ -328,21 +322,11 @@ pub fn check_config_process(force_reset: bool) { } if let Ok(exe) = std::env::current_exe() { std::thread::spawn(move || { - let result = std::process::Command::new(exe) + std::process::Command::new(exe) .arg("--check-hwcodec-config") .status() .ok(); - flog(&format!("check codec process run result:{:?}", result)); HwCodecConfig::refresh(); }); }; } - -pub fn flog(s: &str) { - use hbb_common::chrono::prelude::*; - use std::io::Write; - let mut option = std::fs::OpenOptions::new(); - if let Ok(mut f) = option.append(true).create(true).open("/tmp/log.txt") { - write!(&mut f, "{:?} {}\n", Local::now(), s).ok(); - } -} From 856f84d37adb5edf594718363ddc6b39bda7bffb Mon Sep 17 00:00:00 2001 From: rustdesk Date: Wed, 14 Dec 2022 00:32:03 +0800 Subject: [PATCH 19/20] add a debug info --- src/core_main.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/core_main.rs b/src/core_main.rs index 342f438ee..eb8721563 100644 --- a/src/core_main.rs +++ b/src/core_main.rs @@ -173,7 +173,7 @@ pub fn core_main() -> Option> { crate::start_os_service(); return None; } else if args[0] == "--server" { - log::info!("start --server"); + log::info!("start --server with user {}", crate::username()); #[cfg(target_os = "windows")] { crate::start_server(true); From 5ee3e3f347edd32f32610151554f6a7d2e993ce2 Mon Sep 17 00:00:00 2001 From: rustdesk Date: Wed, 14 Dec 2022 00:51:43 +0800 Subject: [PATCH 20/20] fix Issue #1244 --- src/platform/windows.rs | 10 ++++++---- src/windows.cc | 40 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 46 insertions(+), 4 deletions(-) diff --git a/src/platform/windows.rs b/src/platform/windows.rs index 075f7ed08..a2a99800f 100644 --- a/src/platform/windows.rs +++ b/src/platform/windows.rs @@ -439,6 +439,7 @@ extern "C" { fn win32_disable_lowlevel_keyboard(hwnd: HWND); fn win_stop_system_key_propagate(v: BOOL); fn is_win_down() -> BOOL; + fn is_local_system() -> BOOL; } extern "system" { @@ -718,10 +719,10 @@ pub fn set_share_rdp(enable: bool) { } pub fn get_active_username() -> String { - let name = crate::username(); - if name != "SYSTEM" { - return name; + if !is_root() { + return crate::username(); } + extern "C" { fn get_active_user(path: *mut u16, n: u32, rdp: BOOL) -> u32; } @@ -757,7 +758,8 @@ pub fn is_prelogin() -> bool { } pub fn is_root() -> bool { - crate::username() == "SYSTEM" + // https://stackoverflow.com/questions/4023586/correct-way-to-find-out-if-a-service-is-running-as-the-system-user + unsafe { is_local_system() == TRUE } } pub fn lock_screen() { diff --git a/src/windows.cc b/src/windows.cc index dd3fa2e9e..137ae399e 100644 --- a/src/windows.cc +++ b/src/windows.cc @@ -588,4 +588,44 @@ extern "C" stop_system_key_propagate = v; } + // https://stackoverflow.com/questions/4023586/correct-way-to-find-out-if-a-service-is-running-as-the-system-user + BOOL is_local_system() + { + HANDLE hToken; + UCHAR bTokenUser[sizeof(TOKEN_USER) + 8 + 4 * SID_MAX_SUB_AUTHORITIES]; + PTOKEN_USER pTokenUser = (PTOKEN_USER)bTokenUser; + ULONG cbTokenUser; + SID_IDENTIFIER_AUTHORITY siaNT = SECURITY_NT_AUTHORITY; + PSID pSystemSid; + BOOL bSystem; + + // open process token + if (!OpenProcessToken(GetCurrentProcess(), + TOKEN_QUERY, + &hToken)) + return FALSE; + + // retrieve user SID + if (!GetTokenInformation(hToken, TokenUser, pTokenUser, + sizeof(bTokenUser), &cbTokenUser)) + { + CloseHandle(hToken); + return FALSE; + } + + CloseHandle(hToken); + + // allocate LocalSystem well-known SID + if (!AllocateAndInitializeSid(&siaNT, 1, SECURITY_LOCAL_SYSTEM_RID, + 0, 0, 0, 0, 0, 0, 0, &pSystemSid)) + return FALSE; + + // compare the user SID from the token with the LocalSystem SID + bSystem = EqualSid(pTokenUser->User.Sid, pSystemSid); + + FreeSid(pSystemSid); + + return bSystem; + } + } // end of extern "C" \ No newline at end of file