From 0d5eb639a0dd656a0fc07467c1c8cc0533859fd4 Mon Sep 17 00:00:00 2001 From: fufesou Date: Thu, 27 Oct 2022 18:40:45 +0800 Subject: [PATCH 01/27] flutter_desktop: win scale cursor data Signed-off-by: fufesou --- flutter/lib/consts.dart | 3 ++ flutter/lib/desktop/pages/remote_page.dart | 6 +-- flutter/lib/models/model.dart | 45 +++++++++++++++++++-- flutter/lib/utils/multi_window_manager.dart | 2 +- 4 files changed, 48 insertions(+), 8 deletions(-) diff --git a/flutter/lib/consts.dart b/flutter/lib/consts.dart index bc5128d34..dc4dc2c94 100644 --- a/flutter/lib/consts.dart +++ b/flutter/lib/consts.dart @@ -41,6 +41,9 @@ const Duration kTabTransitionDuration = Duration.zero; const double kEmptyMarginTop = 50; const double kDesktopIconButtonSplashRadius = 20; +/// [kMinCursorSize] indicates min cursor (w, h) +const int kMinCursorSize = 24; + /// [kDefaultScrollAmountMultiplier] indicates how many rows can be scrolled after a minimum scroll action of mouse const kDefaultScrollAmountMultiplier = 5.0; const kDefaultScrollDuration = Duration(milliseconds: 50); diff --git a/flutter/lib/desktop/pages/remote_page.dart b/flutter/lib/desktop/pages/remote_page.dart index 01229ab2b..4febd3878 100644 --- a/flutter/lib/desktop/pages/remote_page.dart +++ b/flutter/lib/desktop/pages/remote_page.dart @@ -339,15 +339,15 @@ class ImagePaint extends StatelessWidget { if (cacheLinux == null) { return MouseCursor.defer; } else { - final key = cacheLinux.key(scale); + final key = cacheLinux.updateGetKey(scale); cursor.addKeyLinux(key); return FlutterCustomMemoryImageCursor( pixbuf: cacheLinux.data, key: key, hotx: cacheLinux.hotx, hoty: cacheLinux.hoty, - imageWidth: (cacheLinux.width * scale).toInt(), - imageHeight: (cacheLinux.height * scale).toInt(), + imageWidth: (cacheLinux.width * cacheLinux.scale).toInt(), + imageHeight: (cacheLinux.height * cacheLinux.scale).toInt(), ); } } diff --git a/flutter/lib/models/model.dart b/flutter/lib/models/model.dart index aa9dfd8e2..d619364dc 100644 --- a/flutter/lib/models/model.dart +++ b/flutter/lib/models/model.dart @@ -17,6 +17,7 @@ import 'package:flutter_hbb/models/user_model.dart'; import 'package:flutter_hbb/utils/multi_window_manager.dart'; import 'package:shared_preferences/shared_preferences.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_svg/flutter_svg.dart'; @@ -665,7 +666,9 @@ class CanvasModel with ChangeNotifier { class CursorData { final String peerId; final int id; - final Uint8List? data; + final img2.Image? image; + double scale; + Uint8List? data; final double hotx; final double hoty; final int width; @@ -674,6 +677,8 @@ class CursorData { CursorData({ required this.peerId, required this.id, + required this.image, + required this.scale, required this.data, required this.hotx, required this.hoty, @@ -683,8 +688,34 @@ class CursorData { int _doubleToInt(double v) => (v * 10e6).round().toInt(); - String key(double scale) => - '${peerId}_${id}_${_doubleToInt(width * scale)}_${_doubleToInt(height * scale)}'; + double _checkUpdateScale(double scale) { + // Update data if scale changed. + if (Platform.isWindows) { + final tgtWidth = (width * scale).toInt(); + final tgtHeight = (width * scale).toInt(); + if (tgtWidth < kMinCursorSize || tgtHeight < kMinCursorSize) { + double sw = kMinCursorSize.toDouble() / width; + double sh = kMinCursorSize.toDouble() / height; + scale = sw < sh ? sh : sw; + } + if (_doubleToInt(this.scale) != _doubleToInt(scale)) { + data = img2 + .copyResize( + image!, + width: (width * scale).toInt(), + height: (height * scale).toInt(), + ) + .getBytes(); + } + } + this.scale = scale; + return scale; + } + + String updateGetKey(double scale) { + scale = _checkUpdateScale(scale); + return '${peerId}_${id}_${_doubleToInt(width * scale)}_${_doubleToInt(height * scale)}'; + } } class CursorModel with ChangeNotifier { @@ -864,15 +895,21 @@ class CursorModel with ChangeNotifier { _updateCacheLinux(ui.Image image, int id, int w, int h) async { ByteData? data; + img2.Image? image2; if (Platform.isWindows) { data = await image.toByteData(format: ui.ImageByteFormat.rawRgba); + if (data != null) { + image2 = img2.Image.fromBytes(w, h, data.buffer.asUint8List()); + } } else { data = await image.toByteData(format: ui.ImageByteFormat.png); } _cacheLinux = CursorData( peerId: this.id, - data: data?.buffer.asUint8List(), id: id, + image: image2, + scale: 1.0, + data: data?.buffer.asUint8List(), hotx: _hotx, hoty: _hoty, width: w, diff --git a/flutter/lib/utils/multi_window_manager.dart b/flutter/lib/utils/multi_window_manager.dart index 8fd71540d..a88f19a57 100644 --- a/flutter/lib/utils/multi_window_manager.dart +++ b/flutter/lib/utils/multi_window_manager.dart @@ -154,7 +154,7 @@ class RustDeskMultiWindowManager { int? wId = findWindowByType(type); if (wId != null) { debugPrint("closing multi window: ${type.toString()}"); - saveWindowPosition(type, windowId: wId); + await saveWindowPosition(type, windowId: wId); try { final ids = await DesktopMultiWindow.getAllSubWindowIds(); if (!ids.contains(wId)) { From 2cb99dbbff0fc9d12d74b95b346b73fcc1fd3924 Mon Sep 17 00:00:00 2001 From: fufesou Date: Thu, 27 Oct 2022 20:05:36 +0800 Subject: [PATCH 02/27] flutter_desktop: default cursor init commit Signed-off-by: fufesou --- flutter/lib/models/model.dart | 30 ++++++++++++++++++++++++------ 1 file changed, 24 insertions(+), 6 deletions(-) diff --git a/flutter/lib/models/model.dart b/flutter/lib/models/model.dart index d619364dc..7a656faae 100644 --- a/flutter/lib/models/model.dart +++ b/flutter/lib/models/model.dart @@ -894,22 +894,37 @@ class CursorModel with ChangeNotifier { } _updateCacheLinux(ui.Image image, int id, int w, int h) async { - ByteData? data; + Uint8List? data; img2.Image? image2; if (Platform.isWindows) { - data = await image.toByteData(format: ui.ImageByteFormat.rawRgba); - if (data != null) { - image2 = img2.Image.fromBytes(w, h, data.buffer.asUint8List()); + ByteData? data2 = + await image.toByteData(format: ui.ImageByteFormat.rawRgba); + if (data2 != null) { + data = data2.buffer.asUint8List(); + image2 = img2.Image.fromBytes(w, h, data); + } else { + data = defaultCursorImage?.getBytes(format: img2.Format.bgra); + image2 = defaultCursorImage?.clone(); + _hotx = defaultCursorImage!.width / 2; + _hoty = defaultCursorImage!.height / 2; } } else { - data = await image.toByteData(format: ui.ImageByteFormat.png); + ByteData? data2 = await image.toByteData(format: ui.ImageByteFormat.png); + if (data2 != null) { + data = data2.buffer.asUint8List(); + } else { + data = Uint8List.fromList(img2.encodePng(defaultCursorImage!)); + _hotx = defaultCursorImage!.width / 2; + _hoty = defaultCursorImage!.height / 2; + } } + _cacheLinux = CursorData( peerId: this.id, id: id, image: image2, scale: 1.0, - data: data?.buffer.asUint8List(), + data: data, hotx: _hotx, hoty: _hoty, width: w, @@ -985,6 +1000,9 @@ class CursorModel with ChangeNotifier { cachedForbidmemoryCursorData ??= base64Decode( 'iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAkZQTFRFAAAA2B4G2B4G2B4G2B4G2B4G2B4G2B4G2B4G2B4G2B4G2B4G2B4G2B4G2B4G2B4G2B4G2B4G2B4G2B4G2B4G2B4G2B4G2B4G2B4G2B4G2B4G2B4G2B4G2B4G2B4G2B4G2B4G2B4G2B4G2B4G2B4G2B4G2B4G2B4G2B4G2B4G2B4G2B4G2B4G2B4G2B4G2B4G2B4G2B4G2B4G2B4G2B4G2B4G2B4G2B4G2B4G2B4G2B4G2B4G2B4G2B4G2B4G2B4G2B4GWAwCAAAAAAAA2B4GAAAAMTExAAAAAAAA2B4G2B4G2B4GAAAAmZmZkZGRAQEBAAAA2B4G2B4G2B4G////oKCgAwMDag8D2B4G2B4G2B4Gra2tBgYGbg8D2B4G2B4Gubm5CQkJTwsCVgwC2B4GxcXFDg4OAAAAAAAA2B4G2B4Gz8/PFBQUAAAAAAAA2B4G2B4G2B4G2B4G2B4G2B4G2B4GDgIA2NjYGxsbAAAAAAAA2B4GFwMB4eHhIyMjAAAAAAAA2B4G6OjoLCwsAAAAAAAA2B4G2B4G2B4G2B4G2B4GCQEA4ODgv7+/iYmJY2NjAgICAAAA9PT0Ojo6AAAAAAAAAAAA+/v7SkpKhYWFr6+vAAAAAAAA8/PzOTk5ERER9fX1KCgoAAAAgYGBKioqAAAAAAAApqamlpaWAAAAAAAAAAAAAAAAAAAAAAAALi4u/v7+GRkZAAAAAAAAAAAAAAAAAAAAfn5+AAAAAAAAV1dXkJCQAAAAAAAAAQEBAAAAAAAAAAAA7Hz6BAAAAMJ0Uk5TAAIWEwEynNz6//fVkCAatP2fDUHs6cDD8d0mPfT5fiEskiIR584A0gejr3AZ+P4plfALf5ZiTL85a4ziD6697fzN3UYE4v/4TwrNHuT///tdRKZh///+1U/ZBv///yjb///eAVL//50Cocv//6oFBbPvpGZCbfT//7cIhv///8INM///zBEcWYSZmO7//////1P////ts/////8vBv//////gv//R/z///QQz9sevP///2waXhNO/+fc//8mev/5gAe2r90MAAAByUlEQVR4nGNggANGJmYWBpyAlY2dg5OTi5uHF6s0H78AJxRwCAphyguLgKRExcQlQLSkFLq8tAwnp6ycPNABjAqKQKNElVDllVU4OVVhVquJA81Q10BRoAkUUYbJa4Edoo0sr6PLqaePLG/AyWlohKTAmJPTBFnelAFoixmSAnNOTgsUeQZLTk4rJAXWnJw2EHlbiDyDPCenHZICe04HFrh+RydnBgYWPU5uJAWinJwucPNd3dw9GDw5Ob2QFHBzcnrD7ffx9fMPCOTkDEINhmC4+3x8Q0LDwlEDIoKTMzIKKg9SEBIdE8sZh6SAJZ6Tkx0qD1YQkpCYlIwclCng0AXLQxSEpKalZyCryATKZwkhKQjJzsnNQ1KQXwBUUVhUXBJYWgZREFJeUVmFpMKlWg+anmqgCkJq6+obkG1pLEBTENLU3NKKrIKhrb2js8u4G6Kgpze0r3/CRAZMAHbkpJDJU6ZMmTqtFbuC6TNmhsyaMnsOFlmwgrnzpsxfELJwEXZ5Bp/FS3yWLlsesmLlKuwKVk9Ys5Zh3foN0zduwq5g85atDAzbpqSGbN9RhV0FGOzctWH3lD14FOzdt3H/gQw8Cg4u2gQPAwBYDXXdIH+wqAAAAABJRU5ErkJggg=='); } + + img2.Image? defaultCursorImage = img2.decodePng(base64Decode( + 'iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAAPCSURBVFiF7ZZBbBVVFIa/c+8w01daaKHYSkUQsQSbSIm4ELRqYlyoUQHbVcUmYmIg7EQSE5MmxI0LN4YuTBCDicYiDYSExiAxJrpoiDGURK2ChZYioNjS1/de583cOS5eiQJ99BU0uui/vDPn/N+Ze/PfgVnN6j+W3Grh9iMapMPRlI2MCZiX72whg4j+qwAvfa5zTTZcL4YnUX0ApAZJPEXSRvlFha9szLE9m1Jn/3GA9oO5RxF2ojwBlBd5TYGfFOm0Euz94HlJ3zZAR4eaM2smXkHZBdROumSShEGX8BtIZAxVVnSJCHdMljkVPpHQ7fiwteLCbQG0H8q9qsq7AhVAOBHJ0aFRc7B/WE7/Pu7lUJJUGXMaFrrapYvj5qpANxlhSQFUPtMk/9q+jfMu3xLAy4dyzaJ0AbWqMnopLbt7+vzDZAkRDPZv9XkSDPrQqvzKlfW6wzP6IICIvDMeBm/ubxU3lYcpZr61SytE2Unhs4eX0rK7p9fvJkeEh73GHMDH4GGP/+D3nzzjve0SfgRQ1S1z/Yl1xXyKAuT8cD3wOEAmL1/09PmHAW4wvl4e9sQpO/DrmLwP5IAFIrShOmVdUQAVngLKVckMj5pDZAmnNb8qwXzzc9AbOU4AKDS3dWfrSgbYfkQDVBsBnHKu/7ycRorD3iCL5EbIZvLyXWEa6o3IspIB0uFoCpFFAC6Ri5fHvUzJ01+VQ7ORDAOqkBJrFpUMYCNjILEFAGIcM45YCs4xoAIiLvFKBgiYl1cKKeYZqsvK8WcMYRHfUA0YhEhFrpQM0NlCRuA0gGf1rnsXuNoZAwR4FWWFc4QyYo2cKxkAERXha0CNsGh5bfLYjMzzJE1L3T3BHF07udKXDoPB0gEAE3EUoR+gqtxtbFrlVhEzZZpdI4d680k1LI7bDNQBTiyf7m+V3IwA9mxKnUWkE3DWUH9/ffx643K3ghhXdDtinFdB2TNNYXvK16cBFL4MJTxYzMfebJh1G3Z9H9n4bmC1NdxZOz9pWljjrlzIehfjLCERCY4EUCze6hXuvkcaoq2VZdoi4AEDBt320XOVp4p5TH8bdo3Xqe+9J+iLkxNNRDEnx0P5NpeX84kSB3OonutrY8rXteavK3kgUdm2b0NZz836lxQum7vHFlrrv6GqW4AF1z3W6/okCMdE9a29L5T3Tte75HRr6VJb6U08nFg2ozQDixVSACLEKH8g9IlwIDThgY+frRoppe+Mf0o7OtQMrsnWqcqyREyNamJFZUxVhnJxMFTstM9qVv9b/QkV/YOrhHDdtAAAAABJRU5ErkJggg==')); } class QualityMonitorData { From 6fb52573e73afa20b244bfe26479d8c80d557a5d Mon Sep 17 00:00:00 2001 From: fufesou Date: Fri, 28 Oct 2022 10:16:00 +0800 Subject: [PATCH 03/27] win clipboard remove debug msg Signed-off-by: fufesou --- libs/clipboard/src/windows/wf_cliprdr.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/libs/clipboard/src/windows/wf_cliprdr.c b/libs/clipboard/src/windows/wf_cliprdr.c index 7374b27c1..00ef7254e 100644 --- a/libs/clipboard/src/windows/wf_cliprdr.c +++ b/libs/clipboard/src/windows/wf_cliprdr.c @@ -135,14 +135,14 @@ typedef struct _FORMAT_IDS FORMAT_IDS; #define TAG "windows" -// #ifdef WITH_DEBUG_CLIPRDR +#ifdef WITH_DEBUG_CLIPRDR #define DEBUG_CLIPRDR(fmt, ...) fprintf(stderr, "DEBUG %s[%d] %s() " fmt "\n", __FILE__, __LINE__, __func__, ##__VA_ARGS__);fflush(stderr) -// #else -// #define DEBUG_CLIPRDR(fmt, ...) \ -// do \ -// { \ -// } while (0) -// #endif +#else +#define DEBUG_CLIPRDR(fmt, ...) \ + do \ + { \ + } while (0) +#endif typedef BOOL(WINAPI *fnAddClipboardFormatListener)(HWND hwnd); typedef BOOL(WINAPI *fnRemoveClipboardFormatListener)(HWND hwnd); From 9591c908a15feb0a7e568a11d395b41657a85b58 Mon Sep 17 00:00:00 2001 From: fufesou Date: Fri, 28 Oct 2022 10:19:22 +0800 Subject: [PATCH 04/27] trivial wayland changes Signed-off-by: fufesou --- src/server/wayland.rs | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/server/wayland.rs b/src/server/wayland.rs index de304c459..7fd6f106b 100644 --- a/src/server/wayland.rs +++ b/src/server/wayland.rs @@ -17,18 +17,18 @@ pub fn set_wayland_scrap_map_err() { } fn map_err_scrap(err: String) -> io::Error { - // REMOVE ME ===================================== uncomment to handle error - // // to-do: Handle error better, do not restart server - // if err.starts_with("Did not receive a reply") { - // log::error!("Fatal pipewire error, {}", &err); - // std::process::exit(-1); - // } - + // to-do: Remove this the following log log::error!( "REMOVE ME ===================================== wayland scrap error {}", &err ); + // to-do: Handle error better, do not restart server + if err.starts_with("Did not receive a reply") { + log::error!("Fatal pipewire error, {}", &err); + std::process::exit(-1); + } + if DISTRO.name.to_uppercase() == "Ubuntu".to_uppercase() { if DISTRO.version_id < "21".to_owned() { io::Error::new(io::ErrorKind::Other, SCRAP_UBUNTU_HIGHER_REQUIRED) From 2c34112492bcd50fe5e002844b9500f649391579 Mon Sep 17 00:00:00 2001 From: fufesou Date: Sun, 30 Oct 2022 13:50:44 +0800 Subject: [PATCH 05/27] flutter_desktop: debug win cursor Signed-off-by: fufesou --- flutter/lib/desktop/pages/remote_page.dart | 10 +++--- flutter/lib/models/model.dart | 42 +++++++++++----------- flutter/lib/models/user_model.dart | 4 ++- 3 files changed, 31 insertions(+), 25 deletions(-) diff --git a/flutter/lib/desktop/pages/remote_page.dart b/flutter/lib/desktop/pages/remote_page.dart index 4febd3878..b10534030 100644 --- a/flutter/lib/desktop/pages/remote_page.dart +++ b/flutter/lib/desktop/pages/remote_page.dart @@ -340,12 +340,14 @@ class ImagePaint extends StatelessWidget { return MouseCursor.defer; } else { final key = cacheLinux.updateGetKey(scale); - cursor.addKeyLinux(key); + cursor.addKey(key); return FlutterCustomMemoryImageCursor( pixbuf: cacheLinux.data, key: key, - hotx: cacheLinux.hotx, - hoty: cacheLinux.hoty, + // hotx: cacheLinux.hotx, + // hoty: cacheLinux.hoty, + hotx: 0, + hoty: 0, imageWidth: (cacheLinux.width * cacheLinux.scale).toInt(), imageHeight: (cacheLinux.height * cacheLinux.scale).toInt(), ); @@ -362,7 +364,7 @@ class ImagePaint extends StatelessWidget { cursor.updateForbiddenCursorBuffer(); } final key = 'disabled_cursor_key'; - cursor.addKeyLinux(key); + cursor.addKey(key); return FlutterCustomMemoryImageCursor( pixbuf: cursor.cachedForbidmemoryCursorData, key: key, diff --git a/flutter/lib/models/model.dart b/flutter/lib/models/model.dart index 7a656faae..754d62fac 100644 --- a/flutter/lib/models/model.dart +++ b/flutter/lib/models/model.dart @@ -669,8 +669,8 @@ class CursorData { final img2.Image? image; double scale; Uint8List? data; - final double hotx; - final double hoty; + double hotx; + double hoty; final int width; final int height; @@ -705,7 +705,9 @@ class CursorData { width: (width * scale).toInt(), height: (height * scale).toInt(), ) - .getBytes(); + .getBytes(format: img2.Format.bgra); + hotx = (width * scale) / 2; + hoty = (height * scale) / 2; } } this.scale = scale; @@ -721,9 +723,9 @@ class CursorData { class CursorModel with ChangeNotifier { ui.Image? _image; final _images = >{}; - CursorData? _cacheLinux; - final _cacheMapLinux = {}; - final _cacheKeysLinux = {}; + CursorData? _cache; + final _cacheMap = {}; + final _cacheKeys = {}; double _x = -10000; double _y = -10000; double _hotx = 0; @@ -734,7 +736,7 @@ class CursorModel with ChangeNotifier { WeakReference parent; ui.Image? get image => _image; - CursorData? get cacheLinux => _cacheLinux; + CursorData? get cacheLinux => _cache; double get x => _x - _displayOriginX; @@ -748,8 +750,8 @@ class CursorModel with ChangeNotifier { CursorModel(this.parent); - Set get cachedKeysLinux => _cacheKeysLinux; - addKeyLinux(String key) => _cacheKeysLinux.add(key); + Set get cachedKeys => _cacheKeys; + addKey(String key) => _cacheKeys.add(key); // remote physical display coordinate Rect getVisibleRect() { @@ -919,7 +921,7 @@ class CursorModel with ChangeNotifier { } } - _cacheLinux = CursorData( + _cache = CursorData( peerId: this.id, id: id, image: image2, @@ -930,12 +932,12 @@ class CursorModel with ChangeNotifier { width: w, height: h, ); - _cacheMapLinux[id] = _cacheLinux!; + _cacheMap[id] = _cache!; } updateCursorId(Map evt) async { final id = int.parse(evt['id']); - _cacheLinux = _cacheMapLinux[id]; + _cache = _cacheMap[id]; final tmp = _images[id]; if (tmp != null) { _image = tmp.item1; @@ -983,15 +985,15 @@ class CursorModel with ChangeNotifier { _image = null; _images.clear(); - _clearCacheLinux(); - _cacheLinux = null; - _cacheMapLinux.clear(); + _clearCache(); + _cache = null; + _cacheMap.clear(); } - _clearCacheLinux() { - final cachedKeys = {...cachedKeysLinux}; - for (var key in cachedKeys) { - customCursorController.freeCache(key); + _clearCache() { + final keys = {...cachedKeys}; + for (var k in keys) { + customCursorController.freeCache(k); } } @@ -1002,7 +1004,7 @@ class CursorModel with ChangeNotifier { } img2.Image? defaultCursorImage = img2.decodePng(base64Decode( - 'iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAAPCSURBVFiF7ZZBbBVVFIa/c+8w01daaKHYSkUQsQSbSIm4ELRqYlyoUQHbVcUmYmIg7EQSE5MmxI0LN4YuTBCDicYiDYSExiAxJrpoiDGURK2ChZYioNjS1/de583cOS5eiQJ99BU0uui/vDPn/N+Ze/PfgVnN6j+W3Grh9iMapMPRlI2MCZiX72whg4j+qwAvfa5zTTZcL4YnUX0ApAZJPEXSRvlFha9szLE9m1Jn/3GA9oO5RxF2ojwBlBd5TYGfFOm0Euz94HlJ3zZAR4eaM2smXkHZBdROumSShEGX8BtIZAxVVnSJCHdMljkVPpHQ7fiwteLCbQG0H8q9qsq7AhVAOBHJ0aFRc7B/WE7/Pu7lUJJUGXMaFrrapYvj5qpANxlhSQFUPtMk/9q+jfMu3xLAy4dyzaJ0AbWqMnopLbt7+vzDZAkRDPZv9XkSDPrQqvzKlfW6wzP6IICIvDMeBm/ubxU3lYcpZr61SytE2Unhs4eX0rK7p9fvJkeEh73GHMDH4GGP/+D3nzzjve0SfgRQ1S1z/Yl1xXyKAuT8cD3wOEAmL1/09PmHAW4wvl4e9sQpO/DrmLwP5IAFIrShOmVdUQAVngLKVckMj5pDZAmnNb8qwXzzc9AbOU4AKDS3dWfrSgbYfkQDVBsBnHKu/7ycRorD3iCL5EbIZvLyXWEa6o3IspIB0uFoCpFFAC6Ri5fHvUzJ01+VQ7ORDAOqkBJrFpUMYCNjILEFAGIcM45YCs4xoAIiLvFKBgiYl1cKKeYZqsvK8WcMYRHfUA0YhEhFrpQM0NlCRuA0gGf1rnsXuNoZAwR4FWWFc4QyYo2cKxkAERXha0CNsGh5bfLYjMzzJE1L3T3BHF07udKXDoPB0gEAE3EUoR+gqtxtbFrlVhEzZZpdI4d680k1LI7bDNQBTiyf7m+V3IwA9mxKnUWkE3DWUH9/ffx643K3ghhXdDtinFdB2TNNYXvK16cBFL4MJTxYzMfebJh1G3Z9H9n4bmC1NdxZOz9pWljjrlzIehfjLCERCY4EUCze6hXuvkcaoq2VZdoi4AEDBt320XOVp4p5TH8bdo3Xqe+9J+iLkxNNRDEnx0P5NpeX84kSB3OonutrY8rXteavK3kgUdm2b0NZz836lxQum7vHFlrrv6GqW4AF1z3W6/okCMdE9a29L5T3Tte75HRr6VJb6U08nFg2ozQDixVSACLEKH8g9IlwIDThgY+frRoppe+Mf0o7OtQMrsnWqcqyREyNamJFZUxVhnJxMFTstM9qVv9b/QkV/YOrhHDdtAAAAABJRU5ErkJggg==')); + 'iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAAFmSURBVFiF7dWxSlxREMbx34QFDRowYBchZSxSCWlMCOwD5FGEFHap06UI7KPsAyyEEIQFqxRaCqYTsqCJFsKkuAeRXb17wrqV918dztw55zszc2fo6Oh47MR/e3zO1/iAHWmznHKGQwx9ip/LEbCfazbsoY8j/JLOhcC6sCW9wsjEwJf483AC9nPNc1+lFRwI13d+l3rYFS799rFGxJMqARv2pBXh+72XQ7gWvklPS7TmMl9Ak/M+DqrENvxAv/guKKApuKPWl0/TROK4+LbSqzhuB+OZ3fRSeFPWY+Fkyn56Y29hfgTSpnQ+s98cvorVey66uPlNFxKwZOYLCGfCs5n9NMYVrsp6mvXSoFqpqYFDvMBkStgJJe93dZOwVXxbqUnBENulydSReqUrDhcX0PT2EXarBYS3GNXMhboinBgIl9K71kg0L3+PvyYGdVpruT2MwrF0iotiXfIwus0Dj+OOjo6Of+e7ab74RkpgAAAAAElFTkSuQmCC')); } class QualityMonitorData { diff --git a/flutter/lib/models/user_model.dart b/flutter/lib/models/user_model.dart index 163efaebc..721aac5b5 100644 --- a/flutter/lib/models/user_model.dart +++ b/flutter/lib/models/user_model.dart @@ -77,7 +77,9 @@ class UserModel { return ""; } final m = jsonDecode(userInfo); - userName.value = m['name'] ?? ''; + if (m != null) { + userName.value = m['name'] ?? ''; + } return userName.value; } From b321dff158f9a6a4a117059faa9467deb26a7761 Mon Sep 17 00:00:00 2001 From: fufesou Date: Sun, 30 Oct 2022 14:38:35 +0800 Subject: [PATCH 06/27] flutter_desktop: debug win cursor 2 Signed-off-by: fufesou --- flutter/lib/desktop/pages/remote_page.dart | 28 +++++++++++----------- flutter/lib/models/model.dart | 28 +++++++++++++++++++++- 2 files changed, 41 insertions(+), 15 deletions(-) diff --git a/flutter/lib/desktop/pages/remote_page.dart b/flutter/lib/desktop/pages/remote_page.dart index b10534030..05a244802 100644 --- a/flutter/lib/desktop/pages/remote_page.dart +++ b/flutter/lib/desktop/pages/remote_page.dart @@ -284,7 +284,7 @@ class ImagePaint extends StatelessWidget { ? keyboardEnabled.isTrue ? (remoteCursorMoved.isTrue ? SystemMouseCursors.none - : _buildCustomCursorLinux(context, s)) + : _buildCustomCursor(context, s)) : _buildDisabledCursor(context, s) : MouseCursor.defer, onHover: (evt) {}, @@ -333,31 +333,31 @@ class ImagePaint extends StatelessWidget { } } - MouseCursor _buildCustomCursorLinux(BuildContext context, double scale) { + MouseCursor _buildCustomCursor(BuildContext context, double scale) { final cursor = Provider.of(context); - final cacheLinux = cursor.cacheLinux; - if (cacheLinux == null) { + final cache = cursor.cache ?? cursor.defaultCache; + if (cache == null) { return MouseCursor.defer; } else { - final key = cacheLinux.updateGetKey(scale); + final key = cache.updateGetKey(scale); cursor.addKey(key); return FlutterCustomMemoryImageCursor( - pixbuf: cacheLinux.data, + pixbuf: cache.data, key: key, - // hotx: cacheLinux.hotx, - // hoty: cacheLinux.hoty, + // hotx: cache.hotx, + // hoty: cache.hoty, hotx: 0, hoty: 0, - imageWidth: (cacheLinux.width * cacheLinux.scale).toInt(), - imageHeight: (cacheLinux.height * cacheLinux.scale).toInt(), + imageWidth: (cache.width * cache.scale).toInt(), + imageHeight: (cache.height * cache.scale).toInt(), ); } } MouseCursor _buildDisabledCursor(BuildContext context, double scale) { final cursor = Provider.of(context); - final cacheLinux = cursor.cacheLinux; - if (cacheLinux == null) { + final cache = cursor.cache; + if (cache == null) { return MouseCursor.defer; } else { if (cursor.cachedForbidmemoryCursorData == null) { @@ -368,8 +368,8 @@ class ImagePaint extends StatelessWidget { return FlutterCustomMemoryImageCursor( pixbuf: cursor.cachedForbidmemoryCursorData, key: key, - hotx: cacheLinux.hotx, - hoty: cacheLinux.hoty, + hotx: 0, + hoty: 0, imageWidth: 32, imageHeight: 32, ); diff --git a/flutter/lib/models/model.dart b/flutter/lib/models/model.dart index 754d62fac..54d77ca95 100644 --- a/flutter/lib/models/model.dart +++ b/flutter/lib/models/model.dart @@ -724,6 +724,8 @@ class CursorModel with ChangeNotifier { ui.Image? _image; final _images = >{}; CursorData? _cache; + final _defaultCacheId = -1; + CursorData? _defaultCache; final _cacheMap = {}; final _cacheKeys = {}; double _x = -10000; @@ -736,7 +738,8 @@ class CursorModel with ChangeNotifier { WeakReference parent; ui.Image? get image => _image; - CursorData? get cacheLinux => _cache; + CursorData? get cache => _cache; + CursorData? get defaultCache => _getDefaultCache(); double get x => _x - _displayOriginX; @@ -753,6 +756,29 @@ class CursorModel with ChangeNotifier { Set get cachedKeys => _cacheKeys; addKey(String key) => _cacheKeys.add(key); + CursorData? _getDefaultCache() { + if (_defaultCache == null) { + if (Platform.isWindows) { + Uint8List data = defaultCursorImage!.getBytes(format: img2.Format.bgra); + _hotx = defaultCursorImage!.width / 2; + _hoty = defaultCursorImage!.height / 2; + + _defaultCache = CursorData( + peerId: id, + id: _defaultCacheId, + image: defaultCursorImage?.clone(), + scale: 1.0, + data: data, + hotx: _hotx, + hoty: _hoty, + width: defaultCursorImage!.width, + height: defaultCursorImage!.height, + ); + } + } + return _defaultCache; + } + // remote physical display coordinate Rect getVisibleRect() { final size = MediaQueryData.fromWindow(ui.window).size; From f111306ef0aba069abac204797b7e94e3f027416 Mon Sep 17 00:00:00 2001 From: fufesou Date: Sun, 30 Oct 2022 18:26:00 +0800 Subject: [PATCH 07/27] flutter_desktop: remote menu refactor Signed-off-by: fufesou --- .../lib/desktop/widgets/remote_menubar.dart | 34 ++++++++++++------- 1 file changed, 22 insertions(+), 12 deletions(-) diff --git a/flutter/lib/desktop/widgets/remote_menubar.dart b/flutter/lib/desktop/widgets/remote_menubar.dart index e670e5d80..86a169b7b 100644 --- a/flutter/lib/desktop/widgets/remote_menubar.dart +++ b/flutter/lib/desktop/widgets/remote_menubar.dart @@ -106,18 +106,24 @@ class _RemoteMenubarState extends State { width: 100, height: 13, child: TextButton( - onHover: (bool v) { - _hideColor.value = v ? Colors.white60 : Colors.white24; - }, - onPressed: () { - _show.value = !_show.value; - if (_show.isTrue) { - _updateScreen(); - } - }, - child: Obx(() => Container( + onHover: (bool v) { + _hideColor.value = v ? Colors.white60 : Colors.white24; + }, + onPressed: () { + _show.value = !_show.value; + _hideColor.value = Colors.white24; + if (_show.isTrue) { + _updateScreen(); + } + }, + child: Obx(() => Container( + decoration: BoxDecoration( color: _hideColor.value, - ).marginOnly(bottom: 8.0)))))); + border: Border.all(color: MyTheme.border), + borderRadius: BorderRadius.all(Radius.circular(5.0)), + ), + ).marginOnly(bottom: 8.0)), + )))); } _updateScreen() async { @@ -170,7 +176,11 @@ class _RemoteMenubarState extends State { textStyle: TextStyle(color: _MenubarTheme.commonColor)), child: Column(mainAxisSize: MainAxisSize.min, children: [ Container( - color: Colors.white, + decoration: BoxDecoration( + color: Colors.white, + border: Border.all(color: MyTheme.border), + borderRadius: BorderRadius.all(Radius.circular(10.0)), + ), child: Row( mainAxisSize: MainAxisSize.min, children: menubarItems, From ba4bc3a6456da0816660d2e53d42ee76a0b51874 Mon Sep 17 00:00:00 2001 From: 21pages Date: Sun, 30 Oct 2022 18:45:44 +0800 Subject: [PATCH 08/27] fix windows install hang, avoid kill self Signed-off-by: 21pages --- src/lang/en.rs | 1 + src/platform/windows.rs | 17 +++++++++++++---- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/src/lang/en.rs b/src/lang/en.rs index 7c95f8abb..72aa45853 100644 --- a/src/lang/en.rs +++ b/src/lang/en.rs @@ -34,5 +34,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("uac_warning", "Temporarily denied access due to elevation request, please wait for the remote user to accept the UAC dialog. To avoid this problem, it is recommended to install the software on the remote device or run it with administrator privileges."), ("elevated_foreground_window_warning", "Temporarily unable to use the mouse and keyboard, because the current window of the remote desktop requires higher privilege to operate, you can request the remote user to minimize the current window. To avoid this problem, it is recommended to install the software on the remote device or run it with administrator privileges."), ("JumpLink", "View"), + ("Stop service", "Stop Service"), ].iter().cloned().collect(); } diff --git a/src/platform/windows.rs b/src/platform/windows.rs index 53fb60bd8..3fc25e208 100644 --- a/src/platform/windows.rs +++ b/src/platform/windows.rs @@ -21,7 +21,10 @@ use winapi::{ errhandlingapi::GetLastError, handleapi::CloseHandle, minwinbase::STILL_ACTIVE, - processthreadsapi::{GetCurrentProcess, GetExitCodeProcess, OpenProcess, OpenProcessToken}, + processthreadsapi::{ + GetCurrentProcess, GetCurrentProcessId, GetExitCodeProcess, OpenProcess, + OpenProcessToken, + }, securitybaseapi::GetTokenInformation, shellapi::ShellExecuteA, winbase::*, @@ -905,7 +908,7 @@ pub fn update_me() -> ResultType<()> { chcp 65001 sc stop {app_name} taskkill /F /IM {broker_exe} - taskkill /F /IM {app_name}.exe + taskkill /F /IM {app_name}.exe /FI \"PID ne {cur_pid}\" {copy_exe} \"{src_exe}\" --extract \"{path}\" sc start {app_name} @@ -917,6 +920,7 @@ pub fn update_me() -> ResultType<()> { path = path, app_name = crate::get_app_name(), lic = register_licence(), + cur_pid = get_current_pid(), ); std::thread::sleep(std::time::Duration::from_millis(1000)); run_cmds(cmds, false, "update")?; @@ -1178,13 +1182,14 @@ fn get_before_uninstall() -> String { sc stop {app_name} sc delete {app_name} taskkill /F /IM {broker_exe} - taskkill /F /IM {app_name}.exe + taskkill /F /IM {app_name}.exe /FI \"PID ne {cur_pid}\" reg delete HKEY_CLASSES_ROOT\\.{ext} /f netsh advfirewall firewall delete rule name=\"{app_name} Service\" ", app_name = app_name, broker_exe = crate::ui::win_privacy::INJECTED_PROCESS_EXE, - ext = ext + ext = ext, + cur_pid = get_current_pid(), ) } @@ -1613,3 +1618,7 @@ pub fn is_foreground_window_elevated() -> ResultType { is_elevated(Some(process_id)) } } + +fn get_current_pid() -> u32 { + unsafe { GetCurrentProcessId() } +} From 7dec4f8a041f285342e2896b4e309f1e23dffd7e Mon Sep 17 00:00:00 2001 From: 21pages Date: Mon, 24 Oct 2022 20:45:34 +0800 Subject: [PATCH 09/27] copy broker when update Signed-off-by: 21pages --- src/platform/windows.rs | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/src/platform/windows.rs b/src/platform/windows.rs index 3fc25e208..ed9ac7e9b 100644 --- a/src/platform/windows.rs +++ b/src/platform/windows.rs @@ -881,23 +881,35 @@ fn get_install_info_with_subkey(subkey: String) -> (String, String, String, Stri (subkey, path, start_menu, exe) } -pub fn copy_exe_cmd(src_exe: &str, _exe: &str, _path: &str) -> String { +pub fn copy_exe_cmd(src_exe: &str, _exe: &str, path: &str) -> String { #[cfg(feature = "flutter")] - return format!( + let main_exe = format!( "XCOPY \"{}\" \"{}\" /Y /E /H /C /I /K /R /Z", PathBuf::from(src_exe) .parent() .unwrap() .to_string_lossy() .to_string(), - _path + path ); #[cfg(not(feature = "flutter"))] - return format!( + let main_exe = format!( "copy /Y \"{src_exe}\" \"{exe}\"", src_exe = src_exe, exe = _exe ); + + return format!( + " + {main_exe} + copy /Y \"{ORIGIN_PROCESS_EXE}\" \"{path}\\{broker_exe}\" + \"{src_exe}\" --extract \"{path}\" + ", + main_exe = main_exe, + path = path, + ORIGIN_PROCESS_EXE = crate::ui::win_privacy::ORIGIN_PROCESS_EXE, + broker_exe = crate::ui::win_privacy::INJECTED_PROCESS_EXE, + ); } pub fn update_me() -> ResultType<()> { @@ -910,14 +922,11 @@ pub fn update_me() -> ResultType<()> { taskkill /F /IM {broker_exe} taskkill /F /IM {app_name}.exe /FI \"PID ne {cur_pid}\" {copy_exe} - \"{src_exe}\" --extract \"{path}\" sc start {app_name} {lic} ", - src_exe = src_exe, copy_exe = copy_exe_cmd(&src_exe, &exe, &path), broker_exe = crate::ui::win_privacy::INJECTED_PROCESS_EXE, - path = path, app_name = crate::get_app_name(), lic = register_licence(), cur_pid = get_current_pid(), @@ -1091,8 +1100,6 @@ if exist \"{tmp_path}\\{app_name} Tray.lnk\" del /f /q \"{tmp_path}\\{app_name} chcp 65001 md \"{path}\" {copy_exe} -copy /Y \"{ORIGIN_PROCESS_EXE}\" \"{path}\\{broker_exe}\" -\"{src_exe}\" --extract \"{path}\" reg add {subkey} /f reg add {subkey} /f /v DisplayIcon /t REG_SZ /d \"{exe}\" reg add {subkey} /f /v DisplayName /t REG_SZ /d \"{app_name}\" @@ -1123,10 +1130,7 @@ sc delete {app_name} ", uninstall_str=uninstall_str, path=path, - src_exe=src_exe, exe=exe, - ORIGIN_PROCESS_EXE = crate::ui::win_privacy::ORIGIN_PROCESS_EXE, - broker_exe=crate::ui::win_privacy::INJECTED_PROCESS_EXE, subkey=subkey, app_name=crate::get_app_name(), version=crate::VERSION, From cc30b9f8a5360648a6c5e3850d5027602d9c27c0 Mon Sep 17 00:00:00 2001 From: 21pages Date: Sun, 30 Oct 2022 19:42:33 +0800 Subject: [PATCH 10/27] remove startup elevation, update impersonate_system Signed-off-by: 21pages --- Cargo.lock | 2 +- flutter/lib/desktop/pages/desktop_home_page.dart | 9 --------- src/core_main.rs | 5 ----- src/ui/index.tis | 6 ------ 4 files changed, 1 insertion(+), 21 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 159eee6e5..0bc360fe7 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2559,7 +2559,7 @@ dependencies = [ [[package]] name = "impersonate_system" version = "0.1.0" -source = "git+https://github.com/21pages/impersonate-system#af4a82050580217a434c2024e181a98de24823ec" +source = "git+https://github.com/21pages/impersonate-system#c48f37a8fd17413b2a4ba655c3873bdc5c8d25aa" dependencies = [ "cc", ] diff --git a/flutter/lib/desktop/pages/desktop_home_page.dart b/flutter/lib/desktop/pages/desktop_home_page.dart index b65525159..152463c68 100644 --- a/flutter/lib/desktop/pages/desktop_home_page.dart +++ b/flutter/lib/desktop/pages/desktop_home_page.dart @@ -412,15 +412,6 @@ class _DesktopHomePageState extends State @override void initState() { super.initState(); - Timer(const Duration(seconds: 1), () async { - final installed = bind.mainIsInstalled(); - final root = await bind.mainIsRoot(); - final release = await bind.mainIsRelease(); - if (Platform.isWindows && release && !installed && !root) { - msgBox('custom-elevation-nocancel', 'Prompt', 'elevation_prompt', '', - gFFI.dialogManager); - } - }); Timer(const Duration(seconds: 5), () async { updateUrl = await bind.mainGetSoftwareUpdateUrl(); if (updateUrl.isNotEmpty) setState(() {}); diff --git a/src/core_main.rs b/src/core_main.rs index 8c6430ef8..46088da5c 100644 --- a/src/core_main.rs +++ b/src/core_main.rs @@ -85,11 +85,6 @@ pub fn core_main() -> Option> { .ok(); } } - #[cfg(windows)] - #[cfg(not(debug_assertions))] - if !crate::platform::is_installed() && args.is_empty() { - crate::platform::elevate_or_run_as_system(is_setup, _is_elevate, _is_run_as_system); - } if args.is_empty() { std::thread::spawn(move || crate::start_server(false)); } else { diff --git a/src/ui/index.tis b/src/ui/index.tis index 45e881096..31781c35e 100644 --- a/src/ui/index.tis +++ b/src/ui/index.tis @@ -1242,9 +1242,3 @@ function refreshCurrentUser() { function getHttpHeaders() { return "Authorization: Bearer " + handler.get_local_option("access_token"); } - -$(body).timer(1000, function check_elevation(){ - if (is_win && handler.is_release() && !handler.is_installed() && !handler.is_root()) { - msgbox("custom-elevation-nocancel", "Prompt", "elevation_prompt"); - } -}); \ No newline at end of file From d6c9639c5da78d1197d412934b6f75c411f6ddd9 Mon Sep 17 00:00:00 2001 From: fufesou Date: Mon, 31 Oct 2022 10:04:59 +0800 Subject: [PATCH 11/27] fix: win remote and file transfer , simultaneous connection Signed-off-by: fufesou --- src/client/io_loop.rs | 21 +++++++++++++++------ src/common.rs | 1 - src/server/input_service.rs | 6 +++--- src/server/video_service.rs | 8 ++++++-- src/ui.rs | 2 +- src/ui/remote.rs | 2 -- src/ui_cm_interface.rs | 6 +++--- 7 files changed, 28 insertions(+), 18 deletions(-) diff --git a/src/client/io_loop.rs b/src/client/io_loop.rs index b108c1ad0..e4e604cde 100644 --- a/src/client/io_loop.rs +++ b/src/client/io_loop.rs @@ -1,5 +1,5 @@ use crate::client::{ - Client, CodecFormat, FileManager, MediaData, MediaSender, QualityStatus, MILLI1, SEC30, + Client, CodecFormat, MediaData, MediaSender, QualityStatus, MILLI1, SEC30, SERVER_CLIPBOARD_ENABLED, SERVER_FILE_TRANSFER_ENABLED, SERVER_KEYBOARD_ENABLED, }; use crate::common; @@ -15,7 +15,7 @@ use crate::{client::Data, client::Interface}; use hbb_common::config::{PeerConfig, TransferSerde}; use hbb_common::fs::{ can_enable_overwrite_detection, get_job, get_string, new_send_confirm, DigestCheckResult, - RemoveJobMeta, TransferJobMeta, + RemoveJobMeta, }; use hbb_common::message_proto::permission_info::Permission; use hbb_common::protobuf::Message as _; @@ -23,6 +23,7 @@ use hbb_common::rendezvous_proto::ConnType; use hbb_common::tokio::{ self, sync::mpsc, + sync::Mutex as TokioMutex, time::{self, Duration, Instant, Interval}, }; use hbb_common::{ @@ -113,15 +114,23 @@ impl Remote { // just build for now #[cfg(not(windows))] let (_tx_holder, mut rx_clip_client) = mpsc::unbounded_channel::(); + #[cfg(windows)] - let (client_conn_id, rx_clip_client1) = - clipboard::get_rx_cliprdr_client(&self.handler.id); + let (_tx_holder, rx) = mpsc::unbounded_channel(); #[cfg(windows)] - let mut rx_clip_client = rx_clip_client1.lock().await; + let mut rx_clip_client_lock = Arc::new(TokioMutex::new(rx)); #[cfg(windows)] { - self.client_conn_id = client_conn_id; + let is_conn_not_default = self.handler.is_file_transfer() + || self.handler.is_port_forward() + || self.handler.is_rdp(); + if !is_conn_not_default { + (self.client_conn_id, rx_clip_client_lock) = + clipboard::get_rx_cliprdr_client(&self.handler.id); + }; } + #[cfg(windows)] + let mut rx_clip_client = rx_clip_client_lock.lock().await; let mut status_timer = time::interval(Duration::new(1, 0)); diff --git a/src/common.rs b/src/common.rs index 3022e5b56..8a9890319 100644 --- a/src/common.rs +++ b/src/common.rs @@ -1,5 +1,4 @@ use std::{ - collections::HashMap, future::Future, sync::{Arc, Mutex}, }; diff --git a/src/server/input_service.rs b/src/server/input_service.rs index 2f2dd7743..546013673 100644 --- a/src/server/input_service.rs +++ b/src/server/input_service.rs @@ -725,7 +725,7 @@ fn legacy_keyboard_mode(evt: &KeyEvent) { // disable numlock if press home etc when numlock is on, // because we will get numpad value (7,8,9 etc) if not #[cfg(windows)] - let mut disable_numlock = false; + let mut _disable_numlock = false; #[cfg(target_os = "macos")] en.reset_flag(); // When long-pressed the command key, then press and release @@ -775,8 +775,8 @@ fn legacy_keyboard_mode(evt: &KeyEvent) { if let Some(key) = KEY_MAP.get(&ck.value()) { #[cfg(windows)] if let Some(_) = NUMPAD_KEY_MAP.get(&ck.value()) { - disable_numlock = en.get_key_state(Key::NumLock); - if disable_numlock { + _disable_numlock = en.get_key_state(Key::NumLock); + if _disable_numlock { en.key_down(Key::NumLock).ok(); en.key_up(Key::NumLock); } diff --git a/src/server/video_service.rs b/src/server/video_service.rs index b583a0ae3..5927bddec 100644 --- a/src/server/video_service.rs +++ b/src/server/video_service.rs @@ -468,6 +468,7 @@ fn run(sp: GenericService) -> ResultType<()> { #[cfg(windows)] start_uac_elevation_check(); + #[cfg(target_os = "linux")] let mut would_block_count = 0u32; while sp.ok() { @@ -570,9 +571,9 @@ fn run(sp: GenericService) -> ResultType<()> { try_gdi += 1; } - would_block_count += 1; #[cfg(target_os = "linux")] { + would_block_count += 1; if !scrap::is_x11() { if would_block_count >= 100 { // For now, the user should choose and agree screen sharing agiain. @@ -600,7 +601,10 @@ fn run(sp: GenericService) -> ResultType<()> { return Err(err.into()); } _ => { - would_block_count = 0; + #[cfg(target_os = "linux")] + { + would_block_count = 0; + } } } diff --git a/src/ui.rs b/src/ui.rs index c25aaf670..b11e574ba 100644 --- a/src/ui.rs +++ b/src/ui.rs @@ -15,7 +15,7 @@ use hbb_common::{ protobuf::Message as _, rendezvous_proto::*, tcp::FramedStream, - tokio::{self, sync::mpsc, time}, + tokio::{self, sync::mpsc}, }; use crate::common::get_app_name; diff --git a/src/ui/remote.rs b/src/ui/remote.rs index ce10827c4..62df85250 100644 --- a/src/ui/remote.rs +++ b/src/ui/remote.rs @@ -18,8 +18,6 @@ use hbb_common::{ allow_err, fs::TransferJobMeta, log, message_proto::*, rendezvous_proto::ConnType, }; -#[cfg(windows)] -use crate::clipboard_file::*; use crate::{ client::*, ui_interface::has_hwcodec, diff --git a/src/ui_cm_interface.rs b/src/ui_cm_interface.rs index 7296f8738..5fb3c76fd 100644 --- a/src/ui_cm_interface.rs +++ b/src/ui_cm_interface.rs @@ -11,7 +11,7 @@ use std::{ }; #[cfg(windows)] -use clipboard::{cliprdr::CliprdrClientContext, empty_clipboard, ContextSend}; +use clipboard::{cliprdr::CliprdrClientContext, empty_clipboard, set_conn_enabled, ContextSend}; use serde_derive::Serialize; use crate::ipc::{self, new_listener, Connection, Data}; @@ -247,10 +247,10 @@ impl IpcTaskRunner { .await ); } - clipboard::set_conn_enabled(conn_id, enabled); + set_conn_enabled(conn_id, enabled); if !enabled { ContextSend::proc(|context: &mut Box| -> u32 { - clipboard::empty_clipboard(context, conn_id); + empty_clipboard(context, conn_id); 0 }); } From a362446effd54be5804aadf29d7ce1acae57e386 Mon Sep 17 00:00:00 2001 From: fufesou Date: Mon, 31 Oct 2022 10:18:22 +0800 Subject: [PATCH 12/27] remove some compilation warnings Signed-off-by: fufesou --- src/flutter.rs | 1 + src/flutter_ffi.rs | 5 +++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/flutter.rs b/src/flutter.rs index 5e844f910..5b8504b4d 100644 --- a/src/flutter.rs +++ b/src/flutter.rs @@ -418,6 +418,7 @@ pub fn session_start_(id: &str, event_stream: StreamSink) -> ResultTy pub mod connection_manager { use std::collections::HashMap; + #[cfg(any(target_os = "android"))] use hbb_common::log; #[cfg(any(target_os = "android"))] use scrap::android::call_main_service_set_by_name; diff --git a/src/flutter_ffi.rs b/src/flutter_ffi.rs index cddaf4d79..45bcd12e3 100644 --- a/src/flutter_ffi.rs +++ b/src/flutter_ffi.rs @@ -7,13 +7,14 @@ use std::{ use flutter_rust_bridge::{StreamSink, SyncReturn, ZeroCopyBuffer}; use serde_json::json; +use hbb_common::ResultType; use hbb_common::{ config::{self, LocalConfig, PeerConfig, ONLINE}, fs, log, }; -use hbb_common::{message_proto::Hash, ResultType}; use crate::flutter::{self, SESSIONS}; +#[cfg(target_os = "android")] use crate::start_server; use crate::ui_interface::{self, *}; use crate::{ @@ -362,7 +363,7 @@ pub fn session_create_dir(id: String, act_id: i32, path: String, is_remote: bool } } -pub fn session_read_local_dir_sync(id: String, path: String, show_hidden: bool) -> String { +pub fn session_read_local_dir_sync(_id: String, path: String, show_hidden: bool) -> String { if let Ok(fd) = fs::read_dir(&fs::get_path(&path), show_hidden) { return make_fd_to_json(fd.id, path, &fd.entries); } From d465792d419f5d6a7bb542602b08fc9578c514eb Mon Sep 17 00:00:00 2001 From: rustdesk Date: Mon, 31 Oct 2022 12:12:49 +0800 Subject: [PATCH 13/27] fix https://github.com/rustdesk/rustdesk/discussions/1859 --- res/PKGBUILD | 2 +- res/rpm-suse.spec | 2 +- res/rpm.spec | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/res/PKGBUILD b/res/PKGBUILD index 2ab82f9ea..7c97d419e 100644 --- a/res/PKGBUILD +++ b/res/PKGBUILD @@ -7,7 +7,7 @@ arch=('x86_64') url="" license=('AGPL-3.0') groups=() -depends=('gtk3' 'xdotool' 'libxcb' 'libxfixes' 'alsa-lib' 'pipewire' 'ttf-arphic-uming' 'curl' 'libappindicator-gtk3' 'libva' 'libvdpau' 'libayatana-appindicator') +depends=('gtk3' 'xdotool' 'libxcb' 'libxfixes' 'alsa-lib' 'pipewire' 'curl' 'libva' 'libvdpau' 'libayatana-appindicator') makedepends=() checkdepends=() optdepends=() diff --git a/res/rpm-suse.spec b/res/rpm-suse.spec index 85f01e37e..c328f42aa 100644 --- a/res/rpm-suse.spec +++ b/res/rpm-suse.spec @@ -3,7 +3,7 @@ Version: 1.1.9 Release: 0 Summary: RPM package License: GPL-3.0 -Requires: gtk3 libxcb1 xdotool libXfixes3 pulseaudio-utils alsa-utils arphic-uming-fonts curl libXtst6 +Requires: gtk3 libxcb1 xdotool libXfixes3 pipewire alsa-utils curl libXtst6 libayatana-appindicator3-1 libvdpau1 libva2 %description The best open-source remote desktop client software, written in Rust. diff --git a/res/rpm.spec b/res/rpm.spec index 80887de96..e88fe1fda 100644 --- a/res/rpm.spec +++ b/res/rpm.spec @@ -3,7 +3,7 @@ Version: 1.1.9 Release: 0 Summary: RPM package License: GPL-3.0 -Requires: gtk3 libxcb libxdo libXfixes pulseaudio-libs alsa-lib cjkuni-uming-fonts curl +Requires: gtk3 libxcb libxdo libXfixes pipewire alsa-lib curl libayatana-appindicator3-1 libvdpau1 libva2 %description The best open-source remote desktop client software, written in Rust. From c8c726b5651b5f7ce3b2162e011570a326048aa0 Mon Sep 17 00:00:00 2001 From: Kingtous Date: Mon, 31 Oct 2022 14:59:57 +0800 Subject: [PATCH 14/27] feat: support hot,key specification in portable file name --- src/common.rs | 3 +++ src/platform/windows.rs | 8 +++++++- src/ui_interface.rs | 5 +++++ 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/common.rs b/src/common.rs index 8a9890319..78e3147ec 100644 --- a/src/common.rs +++ b/src/common.rs @@ -26,6 +26,9 @@ pub type NotifyMessageBox = fn(String, String, String, String) -> dyn Future> = Default::default(); pub static ref SOFTWARE_UPDATE_URL: Arc> = Default::default(); diff --git a/src/platform/windows.rs b/src/platform/windows.rs index ed9ac7e9b..ae9574f33 100644 --- a/src/platform/windows.rs +++ b/src/platform/windows.rs @@ -1,4 +1,5 @@ use super::{CursorData, ResultType}; +use crate::common::PORTABLE_APPNAME_RUNTIME_ENV_KEY; use crate::ipc; use crate::license::*; use hbb_common::{ @@ -1333,7 +1334,12 @@ fn get_reg_of(subkey: &str, name: &str) -> String { } fn get_license_from_exe_name() -> ResultType { - let exe = std::env::current_exe()?.to_str().unwrap_or("").to_owned(); + let mut exe = std::env::current_exe()?.to_str().unwrap_or("").to_owned(); + // if defined portable appname entry, replace original executable name with it. + if let Ok(portable_exe) = std::env::var(PORTABLE_APPNAME_RUNTIME_ENV_KEY) { + exe = portable_exe; + log::debug!("update portable executable name to {}", exe); + } get_license_from_string(&exe) } diff --git a/src/ui_interface.rs b/src/ui_interface.rs index 0f7db9a1d..cb2c178d6 100644 --- a/src/ui_interface.rs +++ b/src/ui_interface.rs @@ -141,6 +141,11 @@ pub fn has_rendezvous_service() -> bool { pub fn get_license() -> String { #[cfg(windows)] if let Some(lic) = crate::platform::windows::get_license() { + #[cfg(feature = "flutter")] + { + return format!("Key: {}\nHost: {}\nApi: {}", lic.key, lic.host, lic.api); + } + // default license format is html formed (sciter) return format!( "
Key: {}
Host: {} Api: {}", lic.key, lic.host, lic.api From e6d4e5b42ced3fba7b3cda04ad7bb2355710e9d1 Mon Sep 17 00:00:00 2001 From: fufesou Date: Mon, 31 Oct 2022 16:35:14 +0800 Subject: [PATCH 15/27] win: fix potential bugs Signed-off-by: fufesou --- flutter/lib/common.dart | 30 ++++++++++++++---------------- flutter/windows/runner/main.cpp | 3 ++- 2 files changed, 16 insertions(+), 17 deletions(-) diff --git a/flutter/lib/common.dart b/flutter/lib/common.dart index 8c927e8a1..8a2792a2b 100644 --- a/flutter/lib/common.dart +++ b/flutter/lib/common.dart @@ -1210,23 +1210,21 @@ Future initUniLinks() async { } } -StreamSubscription listenUniLinks() { - if (Platform.isWindows || Platform.isMacOS) { - final sub = uriLinkStream.listen((Uri? uri) { - if (uri != null) { - callUniLinksUriHandler(uri); - } else { - print("uni listen error: uri is empty."); - } - }, onError: (err) { - print("uni links error: $err"); - }); - return sub; - } else { - // return empty stream subscription for uniform logic - final stream = Stream.empty(); - return stream.listen((event) {/*ignore*/}); +StreamSubscription? listenUniLinks() { + if (!(Platform.isWindows || Platform.isMacOS)) { + return null; } + + final sub = uriLinkStream.listen((Uri? uri) { + if (uri != null) { + callUniLinksUriHandler(uri); + } else { + print("uni listen error: uri is empty."); + } + }, onError: (err) { + print("uni links error: $err"); + }); + return sub; } void checkArguments() { diff --git a/flutter/windows/runner/main.cpp b/flutter/windows/runner/main.cpp index 19556a1f1..5680ab5d3 100644 --- a/flutter/windows/runner/main.cpp +++ b/flutter/windows/runner/main.cpp @@ -1,6 +1,7 @@ #include #include #include +#include #include #include "flutter_window.h" @@ -54,7 +55,7 @@ int APIENTRY wWinMain(_In_ HINSTANCE instance, _In_opt_ HINSTANCE prev, // only do uni links when dispatch a rustdesk links auto prefix = std::string(uniLinksPrefix); if (!command_line_arguments.empty() && command_line_arguments.front().compare(0, prefix.size(), prefix.c_str()) == 0) { - HWND hwnd = ::FindWindow(L"FLUTTER_RUNNER_WIN32_WINDOW", L"rustdesk"); + HWND hwnd = ::FindWindow(_T("FLUTTER_RUNNER_WIN32_WINDOW"), _T("RustDesk")); if (hwnd != NULL) { DispatchToUniLinksDesktop(hwnd); From 4c9dadc41a5be9def6cacfe07c2b48a20b267508 Mon Sep 17 00:00:00 2001 From: rustdesk Date: Mon, 31 Oct 2022 23:03:52 +0800 Subject: [PATCH 16/27] fix transmute crash --- libs/enigo/src/win/win_impl.rs | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/libs/enigo/src/win/win_impl.rs b/libs/enigo/src/win/win_impl.rs index 56fc4caef..aa3438c47 100644 --- a/libs/enigo/src/win/win_impl.rs +++ b/libs/enigo/src/win/win_impl.rs @@ -21,19 +21,21 @@ static mut LAYOUT: HKL = std::ptr::null_mut(); pub const ENIGO_INPUT_EXTRA_VALUE: ULONG_PTR = 100; fn mouse_event(flags: u32, data: u32, dx: i32, dy: i32) -> DWORD { - let mut input = INPUT { - type_: INPUT_MOUSE, - u: unsafe { - transmute(MOUSEINPUT { - dx, - dy, - mouseData: data, - dwFlags: flags, - time: 0, - dwExtraInfo: ENIGO_INPUT_EXTRA_VALUE, - }) - }, - }; + let mut input: INPUT = unsafe { std::mem::MaybeUninit::zeroed().assume_init() }; + input.type_ = INPUT_MOUSE; + unsafe { + let dst_ptr = (&mut input.u as *mut _) as *mut u8; + let m = MOUSEINPUT { + dx, + dy, + mouseData: data, + dwFlags: flags, + time: 0, + dwExtraInfo: ENIGO_INPUT_EXTRA_VALUE, + }; + let src_ptr = (&m as *const _) as *const u8; + std::ptr::copy_nonoverlapping(src_ptr, dst_ptr, std::mem::size_of::()); + } unsafe { SendInput(1, &mut input as LPINPUT, size_of::() as c_int) } } From e8182e762d9918504e4ddfa93dc5dfdd69714519 Mon Sep 17 00:00:00 2001 From: rustdesk Date: Mon, 31 Oct 2022 23:41:51 +0800 Subject: [PATCH 17/27] remove another transmute_copy --- Cargo.lock | 800 ++++++++++++++++++--------------- libs/enigo/src/win/win_impl.rs | 28 +- 2 files changed, 465 insertions(+), 363 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 0bc360fe7..7daf9862c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -23,12 +23,6 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aae1277d39aeec15cb388266ecc24b11c80469deae6067e17a1a7aa9e5c1f234" -[[package]] -name = "ahash" -version = "0.4.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "739f4a8db6605981345c5654f3a85b056ce52f37a39d34da03f25bf2151ea16e" - [[package]] name = "ahash" version = "0.7.6" @@ -42,9 +36,9 @@ dependencies = [ [[package]] name = "aho-corasick" -version = "0.7.18" +version = "0.7.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f" +checksum = "b4f55bd91a0978cbfd91c457a164bab8b4001c833b7f323132c0a4e1922dd44e" dependencies = [ "memchr", ] @@ -120,16 +114,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b5e9dd62f37dea550caf48c77591dc50bd1a378ce08855be1a0c42a97b7550fb" dependencies = [ "android_log-sys", - "env_logger 0.9.0", + "env_logger 0.9.1", "log", "once_cell", ] [[package]] name = "android_system_properties" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7ed72e1635e121ca3e79420540282af22da58be50de153d36f81ddc6b83aa9e" +checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" dependencies = [ "libc", ] @@ -145,9 +139,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.62" +version = "1.0.66" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1485d4d2cc45e7b201ee3767015c96faa5904387c9d87c6efdd0fb511f12d305" +checksum = "216261ddc8289130e551ddcd5ce8a064710c0d064a4d2895c67151c92b5443f6" [[package]] name = "arboard" @@ -206,31 +200,32 @@ dependencies = [ [[package]] name = "async-io" -version = "1.8.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ab006897723d9352f63e2b13047177c3982d8d79709d713ce7747a8f19fd1b0" +checksum = "e8121296a9f05be7f34aa4196b1747243b3b62e048bb7906f644f3fbfc490cf7" dependencies = [ + "async-lock", "autocfg 1.1.0", "concurrent-queue", "futures-lite", "libc", "log", - "once_cell", "parking", "polling", "slab", - "socket2 0.4.6", + "socket2 0.4.7", "waker-fn", "winapi 0.3.9", ] [[package]] name = "async-lock" -version = "2.5.0" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e97a171d191782fba31bb902b14ad94e24a68145032b7eedf871ab0bc0d077b6" +checksum = "c8101efe8695a6c17e02911402145357e718ac92d3ff88ae8419e84b1707b685" dependencies = [ "event-listener", + "futures-lite", ] [[package]] @@ -270,9 +265,9 @@ checksum = "7a40729d2133846d9ed0ea60a8b9541bccddab49cd30f0715a1da672fe9a2524" [[package]] name = "async-trait" -version = "0.1.57" +version = "0.1.58" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76464446b8bc32758d7e88ee1a804d9914cd9b1cb264c029899680b0be29826f" +checksum = "1e805d94e6b5001b651426cf4cd446b1ab5f319d27bab5c644f61de0a804360c" dependencies = [ "proc-macro2", "quote", @@ -300,7 +295,7 @@ dependencies = [ "glib-sys 0.15.10", "gobject-sys 0.15.10", "libc", - "system-deps 6.0.2", + "system-deps 6.0.3", ] [[package]] @@ -354,16 +349,16 @@ dependencies = [ "cc", "cfg-if 1.0.0", "libc", - "miniz_oxide 0.5.3", + "miniz_oxide 0.5.4", "object", "rustc-demangle", ] [[package]] name = "base64" -version = "0.13.0" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd" +checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" [[package]] name = "bindgen" @@ -375,7 +370,7 @@ dependencies = [ "cexpr", "clang-sys", "clap 2.34.0", - "env_logger 0.9.0", + "env_logger 0.9.1", "lazy_static", "lazycell", "log", @@ -385,7 +380,7 @@ dependencies = [ "regex", "rustc-hash", "shlex", - "which 4.2.5", + "which 4.3.0", ] [[package]] @@ -414,9 +409,9 @@ checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a" [[package]] name = "block-buffer" -version = "0.10.2" +version = "0.10.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bf7fe51849ea569fd452f37822f606a5cabb684dc918707a0193fd4664ff324" +checksum = "69cce20737498f97b993470a6e536b8523f0af7892a4f928cceb1ac5e52ebe7e" dependencies = [ "generic-array", ] @@ -458,15 +453,15 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.11.0" +version = "3.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1ad822118d20d2c234f427000d5acc36eabe1e29a348c89b63dd60b13f28e5d" +checksum = "572f695136211188308f16ad2ca5c851a712c464060ae6974944458eb83880ba" [[package]] name = "bytemuck" -version = "1.12.1" +version = "1.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f5715e491b5a1598fc2bef5a606847b5dc1d48ea625bd3c02c00de8285591da" +checksum = "5aec14f5d4e6e3f927cd0c81f72e5710d95ee9019fbeb4b3021193867491bfd8" [[package]] name = "byteorder" @@ -480,7 +475,7 @@ version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec8a7b6a70fde80372154c65702f00a0f56f3e1c36abbc6c440484be248856db" dependencies = [ - "serde 1.0.144", + "serde 1.0.147", ] [[package]] @@ -510,7 +505,7 @@ checksum = "3c55d429bef56ac9172d25fecb85dc8068307d17acd74b377866b7a1ef25d3c8" dependencies = [ "glib-sys 0.15.10", "libc", - "system-deps 6.0.2", + "system-deps 6.0.3", ] [[package]] @@ -529,7 +524,7 @@ version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "88ad0e1e3e88dd237a156ab9f571021b8a158caa0ae44b1968a241efb5144c1e" dependencies = [ - "serde 1.0.144", + "serde 1.0.147", ] [[package]] @@ -538,7 +533,7 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cbdb825da8a5df079a43676dbe042702f1707b1109f713a01420fbb4cc71fa27" dependencies = [ - "serde 1.0.144", + "serde 1.0.147", ] [[package]] @@ -549,9 +544,9 @@ checksum = "4acbb09d9ee8e23699b9634375c72795d095bf268439da88562cf9b501f181fa" dependencies = [ "camino", "cargo-platform", - "semver 1.0.13", - "serde 1.0.144", - "serde_json 1.0.85", + "semver 1.0.14", + "serde 1.0.147", + "serde_json 1.0.87", ] [[package]] @@ -560,14 +555,14 @@ version = "0.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5b6d248e3ca02f3fbfabcb9284464c596baec223a26d91bbf44a5a62ddb0d900" dependencies = [ - "clap 3.2.17", + "clap 3.2.23", "heck 0.4.0", "indexmap", "log", "proc-macro2", "quote", - "serde 1.0.144", - "serde_json 1.0.85", + "serde 1.0.147", + "serde_json 1.0.87", "syn", "tempfile", "toml", @@ -575,9 +570,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.0.73" +version = "1.0.74" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fff2a6927b3bb87f9595d67196a70493f627687a71d87a0d692242c33f58c11" +checksum = "581f5dba903aac52ea3feb5ec4810848460ee833876f1f9b0fdeab1f19091574" dependencies = [ "jobserver", ] @@ -599,9 +594,9 @@ dependencies = [ [[package]] name = "cfg-expr" -version = "0.10.3" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0aacacf4d96c24b2ad6eb8ee6df040e4f27b0d0b39a5710c30091baa830485db" +checksum = "b0357a6402b295ca3a86bc148e84df46c02e41f41fef186bda662557ef6328aa" dependencies = [ "smallvec", ] @@ -635,9 +630,9 @@ dependencies = [ [[package]] name = "clang-sys" -version = "1.3.3" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a050e2153c5be08febd6734e29298e844fdb0fa21aeddd63b4eb7baa106c69b" +checksum = "fa2e27ae6ab525c3d369ded447057bca5438d86dc3a68f6faafb8269ba82ebf3" dependencies = [ "glob", "libc", @@ -661,9 +656,9 @@ dependencies = [ [[package]] name = "clap" -version = "3.2.17" +version = "3.2.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29e724a68d9319343bb3328c9cc2dfde263f4b3142ee1059a9980580171c954b" +checksum = "71655c45cb9845d3270c9d6df84ebe72b4dad3c2ba3f7023ad47c144e4e473a5" dependencies = [ "atty", "bitflags", @@ -673,14 +668,14 @@ dependencies = [ "once_cell", "strsim 0.10.0", "termcolor", - "textwrap 0.15.0", + "textwrap 0.16.0", ] [[package]] name = "clap_derive" -version = "3.2.17" +version = "3.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13547f7012c01ab4a0e8f8967730ada8f9fdf419e8b6c792788f39cf4e46eefa" +checksum = "ea0c8bce528c4be4da13ea6fead8965e95b6073585a2f05204bd8f4119f82a65" dependencies = [ "heck 0.4.0", "proc-macro-error", @@ -705,7 +700,7 @@ dependencies = [ "cc", "hbb_common", "lazy_static", - "serde 1.0.144", + "serde 1.0.147", "serde_derive", "thiserror", ] @@ -732,9 +727,9 @@ dependencies = [ [[package]] name = "cmake" -version = "0.1.48" +version = "0.1.49" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8ad8cef104ac57b68b89df3208164d228503abbdce70f6880ffa3d970e7443a" +checksum = "db34956e100b30725f2eb215f90d4871051239535632f84fea3bc92722c66b7c" dependencies = [ "cc", ] @@ -770,6 +765,16 @@ dependencies = [ "objc", ] +[[package]] +name = "codespan-reporting" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e" +dependencies = [ + "termcolor", + "unicode-width", +] + [[package]] name = "color_quant" version = "1.1.0" @@ -801,7 +806,7 @@ version = "0.4.0" source = "git+https://github.com/open-trade/confy#630cc28a396cb7d01eefdd9f3824486fe4d8554b" dependencies = [ "directories-next", - "serde 1.0.144", + "serde 1.0.147", "thiserror", "toml", ] @@ -940,9 +945,9 @@ dependencies = [ [[package]] name = "cpufeatures" -version = "0.2.4" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc948ebb96241bb40ab73effeb80d9f93afaad49359d159a5e61be51619fe813" +checksum = "28d997bd5e24a5928dd43e46dc529867e207907fe0b239c3477d924f7f2ca320" dependencies = [ "libc", ] @@ -979,15 +984,14 @@ dependencies = [ [[package]] name = "crossbeam-epoch" -version = "0.9.10" +version = "0.9.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "045ebe27666471bb549370b4b0b3e51b07f56325befa4284db65fc89c02511b1" +checksum = "f916dfc5d356b0ed9dae65f1db9fc9770aa2851d2662b988ccf4fe3516e86348" dependencies = [ "autocfg 1.1.0", "cfg-if 1.0.0", "crossbeam-utils", "memoffset", - "once_cell", "scopeguard", ] @@ -1003,12 +1007,11 @@ dependencies = [ [[package]] name = "crossbeam-utils" -version = "0.8.11" +version = "0.8.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51887d4adc7b564537b15adcfb307936f8075dfcd5f00dde9a9f1d29383682bc" +checksum = "edbafec5fa1f196ca66527c1b12c2ec4745ca14b50f1ad8f9f6f720b55d11fac" dependencies = [ "cfg-if 1.0.0", - "once_cell", ] [[package]] @@ -1048,10 +1051,54 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b365fabc795046672053e29c954733ec3b05e4be654ab130fe8f1f94d7051f35" [[package]] -name = "dark-light" -version = "0.2.2" +name = "cxx" +version = "1.0.80" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b83576e2eee2d9cdaa8d08812ae59cbfe1b5ac7ac5ac4b8400303c6148a88c1" +checksum = "6b7d4e43b25d3c994662706a1d4fcfc32aaa6afd287502c111b237093bb23f3a" +dependencies = [ + "cc", + "cxxbridge-flags", + "cxxbridge-macro", + "link-cplusplus", +] + +[[package]] +name = "cxx-build" +version = "1.0.80" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84f8829ddc213e2c1368e51a2564c552b65a8cb6a28f31e576270ac81d5e5827" +dependencies = [ + "cc", + "codespan-reporting", + "once_cell", + "proc-macro2", + "quote", + "scratch", + "syn", +] + +[[package]] +name = "cxxbridge-flags" +version = "1.0.80" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e72537424b474af1460806647c41d4b6d35d09ef7fe031c5c2fa5766047cc56a" + +[[package]] +name = "cxxbridge-macro" +version = "1.0.80" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "309e4fb93eed90e1e14bea0da16b209f81813ba9fc7830c20ed151dd7bc0a4d7" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "dark-light" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "413487ef345ab5cdfbf23e66070741217a701bce70f2f397a54221b4f2b6056a" dependencies = [ "dconf_rs", "detect-desktop-environment", @@ -1059,7 +1106,7 @@ dependencies = [ "objc", "rust-ini", "web-sys", - "winreg 0.8.0", + "winreg 0.10.1", "zbus", "zvariant", ] @@ -1361,12 +1408,9 @@ dependencies = [ [[package]] name = "dlv-list" -version = "0.2.3" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68df3f2b690c1b86e65ef7830956aededf3cb0a16f898f79b9a6f421a7b6211b" -dependencies = [ - "rand 0.8.5", -] +checksum = "0688c2a7f92e427f44895cd63841bff7b29f8d7a1648b9e7e07a4a365b2e1257" [[package]] name = "docopt" @@ -1376,7 +1420,7 @@ checksum = "7f3f119846c823f9eafcf953a8f6ffb6ed69bf6240883261a7f13b634579a51f" dependencies = [ "lazy_static", "regex", - "serde 1.0.144", + "serde 1.0.147", "strsim 0.10.0", ] @@ -1440,7 +1484,7 @@ dependencies = [ "objc", "pkg-config", "rdev", - "serde 1.0.144", + "serde 1.0.147", "serde_derive", "tfc", "unicode-segmentation", @@ -1486,7 +1530,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e75d4cd21b95383444831539909fbb14b9dc3fdceb2a6f5d36577329a1f55ccb" dependencies = [ "enumflags2_derive", - "serde 1.0.144", + "serde 1.0.147", ] [[package]] @@ -1512,9 +1556,9 @@ dependencies = [ [[package]] name = "env_logger" -version = "0.9.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b2cf0344971ee6c64c31be0d530793fba457d322dfec2810c453d0ef228f9c3" +checksum = "c90bf5f19754d10198ccb95b70664fc925bd1fc090a0fd9a6ebc54acc8cd6272" dependencies = [ "atty", "humantime", @@ -1624,14 +1668,14 @@ dependencies = [ [[package]] name = "filetime" -version = "0.2.17" +version = "0.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e94a7bbaa59354bc20dd75b67f23e2797b4490e9d6928203fb105c79e448c86c" +checksum = "4b9663d381d07ae25dc88dbdf27df458faa83a9b25336bcac83d5e452b5fc9d3" dependencies = [ "cfg-if 1.0.0", "libc", "redox_syscall", - "windows-sys 0.36.1", + "windows-sys 0.42.0", ] [[package]] @@ -1641,7 +1685,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f82b0f4c27ad9f8bfd1f3208d882da2b09c301bc1c828fd3a00d0216d2fbbff6" dependencies = [ "crc32fast", - "miniz_oxide 0.5.3", + "miniz_oxide 0.5.4", ] [[package]] @@ -1687,13 +1731,13 @@ dependencies = [ "cbindgen", "convert_case", "enum_dispatch", - "env_logger 0.9.0", + "env_logger 0.9.1", "lazy_static", "log", "pathdiff", "quote", "regex", - "serde 1.0.144", + "serde 1.0.147", "serde_yaml", "structopt", "syn", @@ -1730,11 +1774,10 @@ checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" [[package]] name = "form_urlencoded" -version = "1.0.1" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fc25a87fa4fd2094bffb06925852034d90a17f0d1e05197d4956d3555752191" +checksum = "a9c384f161156f5260c24a097c56119f9be8c798586aecc13afbcbe7b7e26bf8" dependencies = [ - "matches", "percent-encoding", ] @@ -1768,9 +1811,9 @@ checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" [[package]] name = "futures" -version = "0.3.23" +version = "0.3.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab30e97ab6aacfe635fad58f22c2bb06c8b685f7421eb1e064a729e2a5f481fa" +checksum = "38390104763dc37a5145a53c29c63c1290b5d316d6086ec32c293f6736051bb0" dependencies = [ "futures-channel", "futures-core", @@ -1783,9 +1826,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.23" +version = "0.3.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bfc52cbddcfd745bf1740338492bb0bd83d76c67b445f91c5fb29fae29ecaa1" +checksum = "52ba265a92256105f45b719605a571ffe2d1f0fea3807304b522c1d778f79eed" dependencies = [ "futures-core", "futures-sink", @@ -1793,15 +1836,15 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.23" +version = "0.3.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2acedae88d38235936c3922476b10fced7b2b68136f5e3c03c2d5be348a1115" +checksum = "04909a7a7e4633ae6c4a9ab280aeb86da1236243a77b694a49eacd659a4bd3ac" [[package]] name = "futures-executor" -version = "0.3.23" +version = "0.3.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d11aa21b5b587a64682c0094c2bdd4df0076c5324961a40cc3abd7f37930528" +checksum = "7acc85df6714c176ab5edf386123fafe217be88c0840ec11f199441134a074e2" dependencies = [ "futures-core", "futures-task", @@ -1810,9 +1853,9 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.23" +version = "0.3.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93a66fc6d035a26a3ae255a6d2bca35eda63ae4c5512bef54449113f7a1228e5" +checksum = "00f5fb52a06bdcadeb54e8d3671f8888a39697dcb0b81b23b55174030427f4eb" [[package]] name = "futures-lite" @@ -1831,9 +1874,9 @@ dependencies = [ [[package]] name = "futures-macro" -version = "0.3.23" +version = "0.3.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0db9cce532b0eae2ccf2766ab246f114b56b9cf6d445e00c2549fbc100ca045d" +checksum = "bdfb8ce053d86b91919aad980c220b1fb8401a9394410e1c289ed7e66b61835d" dependencies = [ "proc-macro2", "quote", @@ -1842,21 +1885,21 @@ dependencies = [ [[package]] name = "futures-sink" -version = "0.3.23" +version = "0.3.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca0bae1fe9752cf7fd9b0064c674ae63f97b37bc714d745cbde0afb7ec4e6765" +checksum = "39c15cf1a4aa79df40f1bb462fb39676d0ad9e366c2a33b590d7c66f4f81fcf9" [[package]] name = "futures-task" -version = "0.3.23" +version = "0.3.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "842fc63b931f4056a24d59de13fb1272134ce261816e063e634ad0c15cdc5306" +checksum = "2ffb393ac5d9a6eaa9d3fdf37ae2776656b706e200c8e16b1bdb227f5198e6ea" [[package]] name = "futures-util" -version = "0.3.23" +version = "0.3.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0828a5471e340229c11c77ca80017937ce3c58cb788a17e5f1c2d5c485a9577" +checksum = "197676987abd2f9cadff84926f410af1c183608d36641465df73ae8211dc65d6" dependencies = [ "futures-channel", "futures-core", @@ -1918,7 +1961,7 @@ dependencies = [ "glib-sys 0.15.10", "gobject-sys 0.15.10", "libc", - "system-deps 6.0.2", + "system-deps 6.0.3", ] [[package]] @@ -1935,7 +1978,7 @@ dependencies = [ "libc", "pango-sys", "pkg-config", - "system-deps 6.0.2", + "system-deps 6.0.3", ] [[package]] @@ -1960,9 +2003,9 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.7" +version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4eb1a864a501629691edf6c15a593b7a51eebaa1e8468e9ddc623de7c9b58ec6" +checksum = "c05aeb6a22b8f62540c194aac980f2115af067bfe15a0734d7277a768d396b31" dependencies = [ "cfg-if 1.0.0", "libc", @@ -2001,7 +2044,7 @@ dependencies = [ "glib-sys 0.15.10", "gobject-sys 0.15.10", "libc", - "system-deps 6.0.2", + "system-deps 6.0.3", "winapi 0.3.9", ] @@ -2092,7 +2135,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ef4b192f8e65e9cf76cbf4ea71fa8e3be4a0e18ffe3d68b8da6836974cc5bad4" dependencies = [ "libc", - "system-deps 6.0.2", + "system-deps 6.0.3", ] [[package]] @@ -2120,7 +2163,7 @@ checksum = "0d57ce44246becd17153bd035ab4d32cfee096a657fc01f2231c9278378d1e0a" dependencies = [ "glib-sys 0.15.10", "libc", - "system-deps 6.0.2", + "system-deps 6.0.3", ] [[package]] @@ -2294,7 +2337,7 @@ dependencies = [ "gobject-sys 0.15.10", "libc", "pango-sys", - "system-deps 6.0.2", + "system-deps 6.0.3", ] [[package]] @@ -2313,9 +2356,9 @@ dependencies = [ [[package]] name = "h2" -version = "0.3.14" +version = "0.3.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ca32592cf21ac7ccab1825cd87f6c9b3d9022c44d086172ed0966bec8af30be" +checksum = "5f9f29bc9dda355256b2916cf526ab02ce0aeaaaf2bad60d65ef3f12f11dd0f4" dependencies = [ "bytes", "fnv", @@ -2330,22 +2373,13 @@ dependencies = [ "tracing", ] -[[package]] -name = "hashbrown" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7afe4a420e3fe79967a00898cc1f4db7c8a49a9333a29f8a4bd76a253d5cd04" -dependencies = [ - "ahash 0.4.7", -] - [[package]] name = "hashbrown" version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" dependencies = [ - "ahash 0.7.6", + "ahash", ] [[package]] @@ -2358,7 +2392,7 @@ dependencies = [ "confy", "directories-next", "dirs-next", - "env_logger 0.9.0", + "env_logger 0.9.1", "filetime", "futures", "futures-util", @@ -2371,9 +2405,9 @@ dependencies = [ "quinn", "rand 0.8.5", "regex", - "serde 1.0.144", + "serde 1.0.147", "serde_derive", - "serde_json 1.0.85", + "serde_json 1.0.87", "socket2 0.3.19", "sodiumoxide", "tokio", @@ -2428,7 +2462,7 @@ checksum = "75f43d41e26995c17e71ee126451dd3941010b0514a81a9d11f3b341debc2399" dependencies = [ "bytes", "fnv", - "itoa 1.0.3", + "itoa 1.0.4", ] [[package]] @@ -2444,9 +2478,9 @@ dependencies = [ [[package]] name = "httparse" -version = "1.7.1" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "496ce29bb5a52785b44e0f7ca2847ae0bb839c9bd28f69acac9b99d461c0c04c" +checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" [[package]] name = "httpdate" @@ -2463,21 +2497,21 @@ checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" [[package]] name = "hwcodec" version = "0.1.0" -source = "git+https://github.com/21pages/hwcodec#1f03d203eca24dc976c21a47228f3bc31484c2bc" +source = "git+https://github.com/21pages/hwcodec#49ea1868876dd2cee5a339df6cd007c356689625" dependencies = [ "bindgen", "cc", "log", - "serde 1.0.144", + "serde 1.0.147", "serde_derive", - "serde_json 1.0.85", + "serde_json 1.0.87", ] [[package]] name = "hyper" -version = "0.14.20" +version = "0.14.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02c929dc5c39e335a03c405292728118860721b10190d98c2a0f0efd5baafbac" +checksum = "41a2df176f359a22aee9c8657e674f7aa54e9ba48b512a798e5ca36a1f51065c" dependencies = [ "bytes", "futures-channel", @@ -2488,9 +2522,9 @@ dependencies = [ "http-body", "httparse", "httpdate", - "itoa 1.0.3", + "itoa 1.0.4", "pin-project-lite", - "socket2 0.4.6", + "socket2 0.4.7", "tokio", "tower-service", "tracing", @@ -2512,17 +2546,28 @@ dependencies = [ [[package]] name = "iana-time-zone" -version = "0.1.46" +version = "0.1.53" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad2bfd338099682614d3ee3fe0cd72e0b6a41ca6a87f6a74a3bd593c91650501" +checksum = "64c122667b287044802d6ce17ee2ddf13207ed924c712de9a66a5814d5b64765" dependencies = [ "android_system_properties", "core-foundation-sys 0.8.3", + "iana-time-zone-haiku", "js-sys", "wasm-bindgen", "winapi 0.3.9", ] +[[package]] +name = "iana-time-zone-haiku" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0703ae284fc167426161c2e3f1da3ea71d94b21bedbcc9494e92b28e334e3dca" +dependencies = [ + "cxx", + "cxx-build", +] + [[package]] name = "ident_case" version = "1.0.1" @@ -2531,11 +2576,10 @@ checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" [[package]] name = "idna" -version = "0.2.3" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "418a0a6fab821475f634efe3ccc45c013f742efe03d853e8d3355d5cb850ecf8" +checksum = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6" dependencies = [ - "matches", "unicode-bidi", "unicode-normalization", ] @@ -2559,25 +2603,25 @@ dependencies = [ [[package]] name = "impersonate_system" version = "0.1.0" -source = "git+https://github.com/21pages/impersonate-system#c48f37a8fd17413b2a4ba655c3873bdc5c8d25aa" +source = "git+https://github.com/21pages/impersonate-system#84b401893d5b6628c8b33b295328d13fbbe2674b" dependencies = [ "cc", ] [[package]] name = "include_dir" -version = "0.7.2" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "482a2e29200b7eed25d7fdbd14423326760b7f6658d21a4cf12d55a50713c69f" +checksum = "18762faeff7122e89e0857b02f7ce6fcc0d101d5e9ad2ad7846cc01d61b7f19e" dependencies = [ "include_dir_macros", ] [[package]] name = "include_dir_macros" -version = "0.7.2" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e074c19deab2501407c91ba1860fa3d6820bfde307db6d8cb851b55a10be89b" +checksum = "b139284b5cf57ecfa712bcc66950bb635b31aff41c188e8a4cfc758eca374a3f" dependencies = [ "proc-macro2", "quote", @@ -2590,7 +2634,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "10a35a97730320ffe8e2d410b5d3b69279b98d2c14bdb8b70ea89ecf7888d41e" dependencies = [ "autocfg 1.1.0", - "hashbrown 0.12.3", + "hashbrown", ] [[package]] @@ -2657,9 +2701,9 @@ checksum = "8324a32baf01e2ae060e9de58ed0bc2320c9a2833491ee36cd3b4c414de4db8c" [[package]] name = "itoa" -version = "1.0.3" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c8af84674fe1f223a982c933a0ee1086ac4d4052aa0fb8060c12c6ad838e754" +checksum = "4217ad341ebadf8d8e724e264f13e593e0648f5b3e94b3896a5df283be015ecc" [[package]] name = "jni" @@ -2683,9 +2727,9 @@ checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" [[package]] name = "jobserver" -version = "0.1.24" +version = "0.1.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af25a77299a7f711a01975c35a6a424eb6862092cc2d6c72c4ed6cbc56dfc1fa" +checksum = "068b1ee6743e4d11fb9c6a1e6064b3693a1b600e7f5f5988047d98b3dc9fb90b" dependencies = [ "libc", ] @@ -2698,9 +2742,9 @@ checksum = "229d53d58899083193af11e15917b5640cd40b29ff475a1fe4ef725deb02d0f2" [[package]] name = "js-sys" -version = "0.3.59" +version = "0.3.60" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "258451ab10b34f8af53416d1fdab72c22e805f0c92a1136d59470ec0b11138b2" +checksum = "49409df3e3bf0856b916e2ceaca09ee28e6871cf7d9ce97a692cacfdb2a25a47" dependencies = [ "wasm-bindgen", ] @@ -2753,9 +2797,9 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.132" +version = "0.2.137" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8371e4e5341c3a96db127eb2465ac681ced4c433e01dd0e938adbef26ba93ba5" +checksum = "fc7fcc620a3bff7cdd7a365be3376c97191aeaccc2a603e600951e452615bf89" [[package]] name = "libdbus-sys" @@ -2845,6 +2889,15 @@ dependencies = [ "walkdir", ] +[[package]] +name = "link-cplusplus" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9272ab7b96c9046fbc5bc56c06c117cb639fe2d509df0c421cad82d2915cf369" +dependencies = [ + "cc", +] + [[package]] name = "linked-hash-map" version = "0.5.6" @@ -2853,9 +2906,9 @@ checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" [[package]] name = "lock_api" -version = "0.4.7" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "327fa5b6a6940e4699ec49a9beae1ea4845c6bab9314e4f84ac68742139d8c53" +checksum = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df" dependencies = [ "autocfg 1.1.0", "scopeguard", @@ -2872,9 +2925,9 @@ dependencies = [ [[package]] name = "mac_address" -version = "1.1.3" +version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df1d1bc1084549d60725ccc53a2bfa07f67fe4689fda07b05a36531f2988104a" +checksum = "b238e3235c8382b7653c6408ed1b08dd379bdb9fdf990fb0bbae3db2cc0ae963" dependencies = [ "nix 0.23.1", "winapi 0.3.9", @@ -2916,12 +2969,6 @@ dependencies = [ "libc", ] -[[package]] -name = "matches" -version = "0.1.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3e378b66a060d48947b590737b30a1be76706c8dd7b8ba0f2fe3989c68a853f" - [[package]] name = "md5" version = "0.7.0" @@ -2991,9 +3038,9 @@ dependencies = [ [[package]] name = "miniz_oxide" -version = "0.5.3" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f5c75688da582b8ffc1f1799e9db273f32133c49e048f614d22ec3256773ccc" +checksum = "96590ba8f175222643a85693f33d26e9c8a015f599c216509b1a6894af675d34" dependencies = [ "adler", ] @@ -3019,14 +3066,14 @@ dependencies = [ [[package]] name = "mio" -version = "0.8.4" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57ee1c23c7c63b0c9250c339ffdc69255f110b298b901b9f6c82547b7b87caaf" +checksum = "e5d732bc30207a6423068df043e3d02e0735b155ad7ce1a6f76fe2baa5b158de" dependencies = [ "libc", "log", "wasi 0.11.0+wasi-snapshot-preview1", - "windows-sys 0.36.1", + "windows-sys 0.42.0", ] [[package]] @@ -3201,9 +3248,9 @@ dependencies = [ [[package]] name = "net2" -version = "0.2.37" +version = "0.2.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "391630d12b68002ae1e25e8f974306474966550ad82dac6886fb8910c19568ae" +checksum = "74d0df99cfcd2530b2e694f6e17e7f37b8e26bb23983ac530c0c97408837c631" dependencies = [ "cfg-if 0.1.10", "libc", @@ -3452,9 +3499,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.13.1" +version = "1.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "074864da206b4973b84eb91683020dbefd6a8c3f0f38e054d93954e891935e4e" +checksum = "86f0b0d4bf799edbc74508c1e8bf170ff5f41238e5f8225603ca7caaae2b7860" [[package]] name = "openssl-probe" @@ -3464,12 +3511,12 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" [[package]] name = "ordered-multimap" -version = "0.3.1" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c672c7ad9ec066e428c00eb917124a06f08db19e2584de982cc34b1f4c12485" +checksum = "ccd746e37177e1711c20dd619a1620f34f5c8b569c53590a72dedd5344d8924a" dependencies = [ "dlv-list", - "hashbrown 0.9.1", + "hashbrown", ] [[package]] @@ -3484,9 +3531,9 @@ dependencies = [ [[package]] name = "os_str_bytes" -version = "6.3.0" +version = "6.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ff7415e9ae3fff1225851df9e0d9e4e5479f947619774677a63572e55e80eff" +checksum = "3baf96e39c5359d2eb0dd6ccb42c62b91d9678aa68160d261b9e0ccbf9e9dea9" [[package]] name = "padlock" @@ -3516,7 +3563,7 @@ dependencies = [ "glib-sys 0.15.10", "gobject-sys 0.15.10", "libc", - "system-deps 6.0.2", + "system-deps 6.0.3", ] [[package]] @@ -3558,7 +3605,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" dependencies = [ "lock_api", - "parking_lot_core 0.9.3", + "parking_lot_core 0.9.4", ] [[package]] @@ -3577,22 +3624,22 @@ dependencies = [ [[package]] name = "parking_lot_core" -version = "0.9.3" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09a279cbf25cb0757810394fbc1e359949b59e348145c643a939a525692e6929" +checksum = "4dc9e0dc2adc1c69d09143aff38d3d30c5c3f0df0dad82e6d25547af174ebec0" dependencies = [ "cfg-if 1.0.0", "libc", "redox_syscall", "smallvec", - "windows-sys 0.36.1", + "windows-sys 0.42.0", ] [[package]] name = "paste" -version = "1.0.8" +version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9423e2b32f7a043629287a536f21951e8c6a82482d0acb1eeebfc90bc2225b22" +checksum = "b1de2e551fb905ac83f73f7aedf2f0cb4a0da7e35efa24a202a936269f1f18e1" [[package]] name = "pathdiff" @@ -3608,15 +3655,15 @@ checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099" [[package]] name = "percent-encoding" -version = "2.1.0" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e" +checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e" [[package]] name = "pest" -version = "2.3.0" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b0560d531d1febc25a3c9398a62a71256c0178f2e3443baedd9ad4bb8c9deb4" +checksum = "dbc7bc69c062e492337d74d59b120c274fd3d261b6bf6d3207d499b4b379c41a" dependencies = [ "thiserror", "ucd-trie", @@ -3694,9 +3741,9 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" [[package]] name = "pkg-config" -version = "0.3.25" +version = "0.3.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1df8c4ec4b0627e53bdf214615ad287367e482558cf84b109250b37464dc03ae" +checksum = "6ac9a59f73473f1b8d852421e59e64809f025994837ef743615c6d0c5b305160" [[package]] name = "png" @@ -3712,9 +3759,9 @@ dependencies = [ [[package]] name = "polling" -version = "2.3.0" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "899b00b9c8ab553c743b3e11e87c5c7d423b2a2de229ba95b24a756344748011" +checksum = "ab4609a838d88b73d8238967b60dd115cc08d38e2bbaf51ee1e4b695f89122e2" dependencies = [ "autocfg 1.1.0", "cfg-if 1.0.0", @@ -3738,9 +3785,9 @@ checksum = "bc5c99d529f0d30937f6f4b8a86d988047327bb88d04d2c4afc356de74722131" [[package]] name = "primal-check" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b264861209b0641a9b7571695029f516698bd3f2bf46eb61fca408675630b8c" +checksum = "9df7f93fd637f083201473dab4fee2db4c429d32e55e3299980ab3957ab916a0" dependencies = [ "num-integer", ] @@ -3791,18 +3838,18 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.43" +version = "1.0.47" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a2ca2c61bc9f3d74d2886294ab7b9853abd9c1ad903a3ac7815c58989bb7bab" +checksum = "5ea3d908b0e36316caf9e9e2c4625cdde190a7e6f440d794667ed17a1855e725" dependencies = [ "unicode-ident", ] [[package]] name = "protobuf" -version = "3.1.0" +version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ee4a7d8b91800c8f167a6268d1a1026607368e1adc84e98fe044aeb905302f7" +checksum = "b55bad9126f378a853655831eb7363b7b01b81d19f8cb1218861086ca4a1a61e" dependencies = [ "bytes", "once_cell", @@ -3812,9 +3859,9 @@ dependencies = [ [[package]] name = "protobuf-codegen" -version = "3.1.0" +version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07b893e5e7d3395545d5244f8c0d33674025bd566b26c03bfda49b82c6dec45e" +checksum = "0dd418ac3c91caa4032d37cb80ff0d44e2ebe637b2fb243b6234bf89cdac4901" dependencies = [ "anyhow", "once_cell", @@ -3827,9 +3874,9 @@ dependencies = [ [[package]] name = "protobuf-parse" -version = "3.1.0" +version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b1447dd751c434cc1b415579837ebd0411ed7d67d465f38010da5d7cd33af4d" +checksum = "9d39b14605eaa1f6a340aec7f320b34064feb26c93aec35d6a9a2272a8ddfa49" dependencies = [ "anyhow", "indexmap", @@ -3838,14 +3885,14 @@ dependencies = [ "protobuf-support", "tempfile", "thiserror", - "which 4.2.5", + "which 4.3.0", ] [[package]] name = "protobuf-support" -version = "3.1.0" +version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ca157fe12fc7ee2e315f2f735e27df41b3d97cdd70ea112824dac1ffb08ee1c" +checksum = "a5d4d7b8601c814cfb36bcebb79f0e61e45e1e93640cf778837833bbed05c372" dependencies = [ "thiserror", ] @@ -3911,7 +3958,7 @@ dependencies = [ "futures-util", "libc", "quinn-proto", - "socket2 0.4.6", + "socket2 0.4.7", "tokio", "tracing", ] @@ -3958,7 +4005,7 @@ checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" dependencies = [ "libc", "rand_chacha 0.3.1", - "rand_core 0.6.3", + "rand_core 0.6.4", ] [[package]] @@ -3978,7 +4025,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" dependencies = [ "ppv-lite86", - "rand_core 0.6.3", + "rand_core 0.6.4", ] [[package]] @@ -3998,9 +4045,9 @@ checksum = "9c33a3c44ca05fa6f1807d8e6743f3824e8509beca625669633be0acbdf509dc" [[package]] name = "rand_core" -version = "0.6.3" +version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ "getrandom", ] @@ -4112,7 +4159,7 @@ dependencies = [ [[package]] name = "rdev" version = "0.5.0-2" -source = "git+https://github.com/asur4s/rdev#ea223720532f32652dab803db43f9ce437f2b019" +source = "git+https://github.com/asur4s/rdev#a5dfea84ddd550cabbd3e0d7160307100edda7b7" dependencies = [ "cocoa", "core-foundation 0.9.3", @@ -4123,6 +4170,7 @@ dependencies = [ "inotify", "lazy_static", "libc", + "mio 0.8.5", "strum 0.24.1", "strum_macros 0.24.3", "widestring 1.0.2", @@ -4141,9 +4189,9 @@ dependencies = [ [[package]] name = "realfft" -version = "3.0.1" +version = "3.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8028eb3fabd68ddf331f744ba9c25a939804e276d820f9b218ab25a4bd7b91b8" +checksum = "30030cf3ea04d9192da88768b8b1b865e08733b5ae3cf1f012041749f4bef28f" dependencies = [ "rustfft", ] @@ -4206,9 +4254,9 @@ dependencies = [ [[package]] name = "reqwest" -version = "0.11.11" +version = "0.11.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b75aa69a3f06bbcc66ede33af2af253c6f7a86b1ca0033f60c580a27074fbf92" +checksum = "431949c384f4e2ae07605ccaa56d1d9d2ecdb5cadd4f9577ccfab29f2e5149fc" dependencies = [ "base64", "bytes", @@ -4222,15 +4270,15 @@ dependencies = [ "hyper-rustls", "ipnet", "js-sys", - "lazy_static", "log", "mime", + "once_cell", "percent-encoding", "pin-project-lite", "rustls", "rustls-pemfile 1.0.1", - "serde 1.0.144", - "serde_json 1.0.85", + "serde 1.0.147", + "serde_json 1.0.87", "serde_urlencoded", "tokio", "tokio-rustls", @@ -4271,9 +4319,9 @@ dependencies = [ [[package]] name = "rpassword" -version = "7.0.0" +version = "7.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26b763cb66df1c928432cc35053f8bd4cec3335d8559fc16010017d16b3c1680" +checksum = "20c9f5d2a0c3e2ea729ab3706d22217177770654c3ef5056b68b69d07332d3f5" dependencies = [ "libc", "winapi 0.3.9", @@ -4303,9 +4351,9 @@ dependencies = [ [[package]] name = "rust-ini" -version = "0.17.0" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63471c4aa97a1cf8332a5f97709a79a4234698de6a1f5087faf66f2dae810e22" +checksum = "f6d5f2436026b4f6e79dc829837d467cc7e9a55ee40e750d716713540715a2df" dependencies = [ "cfg-if 1.0.0", "ordered-multimap", @@ -4346,7 +4394,7 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" dependencies = [ - "semver 1.0.13", + "semver 1.0.14", ] [[package]] @@ -4361,7 +4409,7 @@ dependencies = [ "bytes", "cc", "cfg-if 1.0.0", - "clap 3.2.17", + "clap 3.2.23", "clipboard", "cocoa", "core-foundation 0.9.3", @@ -4399,16 +4447,16 @@ dependencies = [ "rdev", "repng", "reqwest", - "rpassword 7.0.0", + "rpassword 7.1.0", "rubato", "runas", "rust-pulsectl", "samplerate", "sciter-rs", "scrap", - "serde 1.0.144", + "serde 1.0.147", "serde_derive", - "serde_json 1.0.85", + "serde_json 1.0.87", "sha2", "simple_rc", "sys-locale", @@ -4453,9 +4501,9 @@ dependencies = [ [[package]] name = "rustls" -version = "0.20.6" +version = "0.20.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5aab8ee6c7097ed6057f43c187a62418d0c05a4bd5f18b3571db50ee0f9ce033" +checksum = "539a2bfe908f471bfa933876bd1eb6a19cf2176d375f82ef7f99530a40e48c2c" dependencies = [ "log", "ring", @@ -4546,9 +4594,9 @@ dependencies = [ [[package]] name = "scoped-tls" -version = "1.0.0" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea6a9290e3c9cf0f18145ef7ffa62d68ee0bf5fcd651017e586dc7fd5da448c2" +checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" [[package]] name = "scopeguard" @@ -4579,14 +4627,20 @@ dependencies = [ "num_cpus", "quest", "repng", - "serde 1.0.144", - "serde_json 1.0.85", + "serde 1.0.147", + "serde_json 1.0.87", "target_build_utils", "tracing", "webm", "winapi 0.3.9", ] +[[package]] +name = "scratch" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8132065adcfd6e02db789d9285a0deb2f3fcb04002865ab67d5fb103533898" + [[package]] name = "sct" version = "0.7.0" @@ -4631,11 +4685,11 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.13" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93f6841e709003d68bb2deee8c343572bf446003ec20a583e76f7b15cebf3711" +checksum = "e25dfac463d778e353db5be2449d1cce89bd6fd23c9f1ea21310ce6e5a1b29c4" dependencies = [ - "serde 1.0.144", + "serde 1.0.147", ] [[package]] @@ -4655,18 +4709,18 @@ checksum = "34b623917345a631dc9608d5194cc206b3fe6c3554cd1c75b937e55e285254af" [[package]] name = "serde" -version = "1.0.144" +version = "1.0.147" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f747710de3dcd43b88c9168773254e809d8ddbdf9653b84e2554ab219f17860" +checksum = "d193d69bae983fc11a79df82342761dfbf28a99fc8d203dca4c3c1b590948965" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.144" +version = "1.0.147" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94ed3a816fb1d101812f83e789f888322c34e291f894f19590dc310963e87a00" +checksum = "4f1d362ca8fc9c3e3a7484440752472d68a6caa98f1ab81d99b5dfe517cec852" dependencies = [ "proc-macro2", "quote", @@ -4687,13 +4741,13 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.85" +version = "1.0.87" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e55a28e3aaef9d5ce0506d0a14dbba8054ddc7e499ef522dd8b26859ec9d4a44" +checksum = "6ce777b7b150d76b9cf60d28b55f5847135a003f7d7350c6be7a773508ce7d45" dependencies = [ - "itoa 1.0.3", + "itoa 1.0.4", "ryu", - "serde 1.0.144", + "serde 1.0.147", ] [[package]] @@ -4714,9 +4768,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" dependencies = [ "form_urlencoded", - "itoa 1.0.3", + "itoa 1.0.4", "ryu", - "serde 1.0.144", + "serde 1.0.147", ] [[package]] @@ -4727,7 +4781,7 @@ checksum = "578a7433b776b56a35785ed5ce9a7e777ac0598aac5a6dd1b4b18a307c7fc71b" dependencies = [ "indexmap", "ryu", - "serde 1.0.144", + "serde 1.0.147", "yaml-rust", ] @@ -4784,9 +4838,9 @@ dependencies = [ [[package]] name = "signature" -version = "1.6.0" +version = "1.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0ea32af43239f0d353a7dd75a22d94c329c8cdaafdcb4c1c1335aa10c298a4a" +checksum = "74233d3b3b2f6d4b006dc19dee745e73e2a6bfb6f93607cd3b02bd5b00797d7c" [[package]] name = "simple_rc" @@ -4794,7 +4848,7 @@ version = "0.1.0" dependencies = [ "confy", "hbb_common", - "serde 1.0.144", + "serde 1.0.147", "serde_derive", "walkdir", ] @@ -4816,9 +4870,9 @@ dependencies = [ [[package]] name = "smallvec" -version = "1.9.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fd0db749597d91ff862fd1d55ea87f7855a744a8425a64695b6fca237d1dad1" +checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0" [[package]] name = "smithay-client-toolkit" @@ -4852,9 +4906,9 @@ dependencies = [ [[package]] name = "socket2" -version = "0.4.6" +version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10c98bba371b9b22a71a9414e420f92ddeb2369239af08200816169d5e2dd7aa" +checksum = "02e2d2db9033d13a1567121ddd7a095ee144db4e1ca1b1bda3419bc0da294ebd" dependencies = [ "libc", "winapi 0.3.9", @@ -4869,7 +4923,7 @@ dependencies = [ "ed25519", "libc", "libsodium-sys", - "serde 1.0.144", + "serde 1.0.147", ] [[package]] @@ -4977,9 +5031,9 @@ dependencies = [ [[package]] name = "syn" -version = "1.0.99" +version = "1.0.103" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58dbef6ec655055e20b86b15a8cc6d439cca19b667537ac6a1369572d151ab13" +checksum = "a864042229133ada95abf3b54fdc62ef5ccabe9515b64717bcb9a1919e59445d" dependencies = [ "proc-macro2", "quote", @@ -5066,9 +5120,9 @@ dependencies = [ [[package]] name = "system-deps" -version = "6.0.2" +version = "6.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1a45a1c4c9015217e12347f2a411b57ce2c4fc543913b14b6fe40483328e709" +checksum = "2955b1fe31e1fa2fbd1976b71cc69a606d7d4da16f6de3333d0c92d51419aeff" dependencies = [ "cfg-expr", "heck 0.4.0", @@ -5146,9 +5200,9 @@ dependencies = [ [[package]] name = "textwrap" -version = "0.15.0" +version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1141d4d61095b28419e22cb0bbf02755f5e54e0526f97f1e3d1d160e60885fb" +checksum = "222a222a5bfe1bba4a77b45ec488a741b3cb8872e5e499451fd7d0129c9c7c3d" [[package]] name = "tfc" @@ -5163,18 +5217,18 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.32" +version = "1.0.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5f6586b7f764adc0231f4c79be7b920e766bb2f3e51b3661cdb263828f19994" +checksum = "10deb33631e3c9018b9baf9dcbbc4f737320d2b576bac10f6aefa048fa407e3e" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.32" +version = "1.0.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12bafc5b54507e0149cdf1b145a5d80ab80a90bcd9275df43d4fff68460f6c21" +checksum = "982d17546b47146b28f7c22e3d08465f6b8903d0ea13c1660d9d84a6e7adcdbb" dependencies = [ "proc-macro2", "quote", @@ -5218,7 +5272,7 @@ version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c2702e08a7a860f005826c6815dcac101b19b5eb330c27fe4a5928fec1d20ddd" dependencies = [ - "itoa 1.0.3", + "itoa 1.0.4", "libc", "num_threads", "time-macros", @@ -5247,21 +5301,20 @@ checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" [[package]] name = "tokio" -version = "1.21.1" +version = "1.21.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0020c875007ad96677dcc890298f4b942882c5d4eb7cc8f439fc3bf813dc9c95" +checksum = "a9e03c497dc955702ba729190dc4aac6f2a0ce97f913e5b1b5912fc5039d9099" dependencies = [ "autocfg 1.1.0", "bytes", "libc", "memchr", - "mio 0.8.4", + "mio 0.8.5", "num_cpus", - "once_cell", "parking_lot 0.12.1", "pin-project-lite", "signal-hook-registry", - "socket2 0.4.6", + "socket2 0.4.7", "tokio-macros", "winapi 0.3.9", ] @@ -5315,7 +5368,7 @@ dependencies = [ "futures-io", "futures-sink", "futures-util", - "hashbrown 0.12.3", + "hashbrown", "pin-project-lite", "slab", "tokio", @@ -5328,7 +5381,7 @@ version = "0.5.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8d82e1a7758622a465f8cee077614c73484dac5b836c02ff6a40d5d1010324d7" dependencies = [ - "serde 1.0.144", + "serde 1.0.147", ] [[package]] @@ -5339,9 +5392,9 @@ checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" [[package]] name = "tracing" -version = "0.1.36" +version = "0.1.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fce9567bd60a67d08a16488756721ba392f24f29006402881e43b19aac64307" +checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8" dependencies = [ "cfg-if 1.0.0", "pin-project-lite", @@ -5351,9 +5404,9 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.22" +version = "0.1.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11c75893af559bc8e10716548bdef5cb2b983f8e637db9d0e15126b61b484ee2" +checksum = "4017f8f45139870ca7e672686113917c71c7a6e02d4924eda67186083c03081a" dependencies = [ "proc-macro2", "quote", @@ -5362,9 +5415,9 @@ dependencies = [ [[package]] name = "tracing-core" -version = "0.1.29" +version = "0.1.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5aeea4303076558a00714b823f9ad67d58a3bbda1df83d8827d21193156e22f7" +checksum = "24eb03ba0eab1fd845050058ce5e616558e8f8d8fca633e6b163fe25c797213a" dependencies = [ "once_cell", ] @@ -5381,9 +5434,9 @@ dependencies = [ [[package]] name = "tray-item" -version = "0.7.0" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76863575f7842ed64fda361f417a787efa82811b4617267709066969cd4ccf3b" +checksum = "0914b62e00e8f51241806cb9f9c4ea6b10c75d94cae02c89278de6f4b98c7d0f" dependencies = [ "cocoa", "core-graphics 0.22.3", @@ -5420,9 +5473,9 @@ checksum = "dcf81ac59edc17cc8697ff311e8f5ef2d99fcbd9817b34cec66f90b6c3dfd987" [[package]] name = "ucd-trie" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89570599c4fe5585de2b388aab47e99f7fa4e9238a1399f707a02e356058141c" +checksum = "9e79c4d996edb816c91e4308506774452e55e95c3c9de07b6729e17e15a5ef81" [[package]] name = "uds_windows" @@ -5442,36 +5495,36 @@ checksum = "099b7128301d285f79ddd55b9a83d5e6b9e97c92e0ea0daebee7263e932de992" [[package]] name = "unicode-ident" -version = "1.0.3" +version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4f5b37a154999a8f3f98cc23a628d850e154479cd94decf3414696e12e31aaf" +checksum = "6ceab39d59e4c9499d4e5a8ee0e2735b891bb7308ac83dfb4e80cad195c9f6f3" [[package]] name = "unicode-normalization" -version = "0.1.21" +version = "0.1.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "854cbdc4f7bc6ae19c820d44abdc3277ac3e1b2b93db20a636825d9322fb60e6" +checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" dependencies = [ "tinyvec", ] [[package]] name = "unicode-segmentation" -version = "1.9.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e8820f5d777f6224dc4be3632222971ac30164d4a258d595640799554ebfd99" +checksum = "0fdbf052a0783de01e944a6ce7a8cb939e295b1e7be835a1112c3b9a7f047a5a" [[package]] name = "unicode-width" -version = "0.1.9" +version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ed742d4ea2bd1176e236172c8429aaf54486e7ac098db29ffe6529e0ce50973" +checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b" [[package]] name = "unicode-xid" -version = "0.2.3" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "957e51f3646910546462e67d5f7599b9e4fb8acdd304b087a6494730f9eebf04" +checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" [[package]] name = "untrusted" @@ -5481,21 +5534,20 @@ checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" [[package]] name = "url" -version = "2.2.2" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a507c383b2d33b5fc35d1861e77e6b383d158b2da5e14fe51b83dfedf6fd578c" +checksum = "0d68c799ae75762b8c3fe375feb6600ef5602c883c5d21eb51c09f22b83c4643" dependencies = [ "form_urlencoded", "idna", - "matches", "percent-encoding", ] [[package]] name = "uuid" -version = "1.1.2" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd6469f4314d5f1ffec476e05f17cc9a78bc7a27a6a857842170bdf8d6f98d2f" +checksum = "feb41e78f93363bb2df8b0e86a2ca30eed7806ea16ea0c790d757cf93f79be83" dependencies = [ "getrandom", ] @@ -5531,7 +5583,7 @@ dependencies = [ "cc", "hbb_common", "lazy_static", - "serde 1.0.144", + "serde 1.0.147", "serde_derive", "thiserror", ] @@ -5597,9 +5649,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.82" +version = "0.2.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc7652e3f6c4706c8d9cd54832c4a4ccb9b5336e2c3bd154d5cccfbf1c1f5f7d" +checksum = "eaf9f5aceeec8be17c128b2e93e031fb8a4d469bb9c4ae2d7dc1888b26887268" dependencies = [ "cfg-if 1.0.0", "wasm-bindgen-macro", @@ -5607,9 +5659,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.82" +version = "0.2.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "662cd44805586bd52971b9586b1df85cdbbd9112e4ef4d8f41559c334dc6ac3f" +checksum = "4c8ffb332579b0557b52d268b91feab8df3615f265d5270fec2a8c95b17c1142" dependencies = [ "bumpalo", "log", @@ -5622,9 +5674,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-futures" -version = "0.4.32" +version = "0.4.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa76fb221a1f8acddf5b54ace85912606980ad661ac7a503b4570ffd3a624dad" +checksum = "23639446165ca5a5de86ae1d8896b737ae80319560fbaa4c2887b7da6e7ebd7d" dependencies = [ "cfg-if 1.0.0", "js-sys", @@ -5634,9 +5686,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.82" +version = "0.2.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b260f13d3012071dfb1512849c033b1925038373aea48ced3012c09df952c602" +checksum = "052be0f94026e6cbc75cdefc9bae13fd6052cdcaf532fa6c45e7ae33a1e6c810" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -5644,9 +5696,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.82" +version = "0.2.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5be8e654bdd9b79216c2929ab90721aa82faf65c48cdf08bdc4e7f51357b80da" +checksum = "07bc0c051dc5f23e307b13285f9d75df86bfdf816c5721e573dec1f9b8aa193c" dependencies = [ "proc-macro2", "quote", @@ -5657,9 +5709,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.82" +version = "0.2.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6598dd0bd3c7d51095ff6531a5b23e02acdc81804e30d8f07afb77b7215a140a" +checksum = "1c38c045535d93ec4f0b4defec448e4291638ee608530863b1e2ba115d4fff7f" [[package]] name = "wayland-client" @@ -5736,9 +5788,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.59" +version = "0.3.60" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed055ab27f941423197eb86b2035720b1a3ce40504df082cac2ecc6ed73335a1" +checksum = "bcda906d8be16e728fd5adc5b729afad4e444e106ab28cd1c7256e54fa61510f" dependencies = [ "js-sys", "wasm-bindgen", @@ -5774,9 +5826,9 @@ dependencies = [ [[package]] name = "webpki-roots" -version = "0.22.4" +version = "0.22.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1c760f0d366a6c24a02ed7816e23e691f5d92291f94d15e836006fd11b04daf" +checksum = "368bfe657969fb01238bb756d351dcade285e0f6fcbd36dcb23359a5169975be" dependencies = [ "webpki", ] @@ -5808,21 +5860,22 @@ dependencies = [ [[package]] name = "which" -version = "4.2.5" +version = "4.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c4fb54e6113b6a8772ee41c3404fb0301ac79604489467e0a9ce1f3e97c24ae" +checksum = "1c831fbbee9e129a8cf93e7747a82da9d95ba8e16621cae60ec2cdc849bacb7b" dependencies = [ "either", - "lazy_static", "libc", + "once_cell", ] [[package]] name = "whoami" -version = "1.2.1" +version = "1.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "524b58fa5a20a2fb3014dd6358b70e6579692a56ef6fce928834e488f42f65e8" +checksum = "d6631b6a2fd59b1841b622e8f1a7ad241ef0a46f2d580464ce8140ac94cbd571" dependencies = [ + "bumpalo", "wasm-bindgen", "web-sys", ] @@ -5942,6 +5995,27 @@ dependencies = [ "windows_x86_64_msvc 0.36.1", ] +[[package]] +name = "windows-sys" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7" +dependencies = [ + "windows_aarch64_gnullvm", + "windows_aarch64_msvc 0.42.0", + "windows_i686_gnu 0.42.0", + "windows_i686_msvc 0.42.0", + "windows_x86_64_gnu 0.42.0", + "windows_x86_64_gnullvm", + "windows_x86_64_msvc 0.42.0", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41d2aa71f6f0cbe00ae5167d90ef3cfe66527d6f613ca78ac8024c3ccab9a19e" + [[package]] name = "windows_aarch64_msvc" version = "0.28.0" @@ -5960,6 +6034,12 @@ version = "0.36.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9bb8c3fd39ade2d67e9874ac4f3db21f0d710bee00fe7cab16949ec184eeaa47" +[[package]] +name = "windows_aarch64_msvc" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd0f252f5a35cac83d6311b2e795981f5ee6e67eb1f9a7f64eb4500fbc4dcdb4" + [[package]] name = "windows_i686_gnu" version = "0.28.0" @@ -5978,6 +6058,12 @@ version = "0.36.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "180e6ccf01daf4c426b846dfc66db1fc518f074baa793aa7d9b9aaeffad6a3b6" +[[package]] +name = "windows_i686_gnu" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fbeae19f6716841636c28d695375df17562ca208b2b7d0dc47635a50ae6c5de7" + [[package]] name = "windows_i686_msvc" version = "0.28.0" @@ -5996,6 +6082,12 @@ version = "0.36.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e2e7917148b2812d1eeafaeb22a97e4813dfa60a3f8f78ebe204bcc88f12f024" +[[package]] +name = "windows_i686_msvc" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84c12f65daa39dd2babe6e442988fc329d6243fdce47d7d2d155b8d874862246" + [[package]] name = "windows_x86_64_gnu" version = "0.28.0" @@ -6014,6 +6106,18 @@ version = "0.36.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4dcd171b8776c41b97521e5da127a2d86ad280114807d0b2ab1e462bc764d9e1" +[[package]] +name = "windows_x86_64_gnu" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf7b1b21b5362cbc318f686150e5bcea75ecedc74dd157d874d754a2ca44b0ed" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09d525d2ba30eeb3297665bd434a54297e4170c7f1a44cad4ef58095b4cd2028" + [[package]] name = "windows_x86_64_msvc" version = "0.28.0" @@ -6032,6 +6136,12 @@ version = "0.36.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c811ca4a8c853ef420abd8592ba53ddbbac90410fab6903b3e79972a631f7680" +[[package]] +name = "windows_x86_64_msvc" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f40009d85759725a34da6d89a94e63d7bdc50a862acf0dbc7c8e488f1edcb6f5" + [[package]] name = "winit" version = "0.26.1" @@ -6048,7 +6158,7 @@ dependencies = [ "lazy_static", "libc", "log", - "mio 0.8.4", + "mio 0.8.5", "ndk 0.5.0", "ndk-glue 0.5.2", "ndk-sys 0.2.2", @@ -6074,15 +6184,6 @@ dependencies = [ "winapi 0.3.9", ] -[[package]] -name = "winreg" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d107f8c6e916235c4c01cabb3e8acf7bea8ef6a63ca2e7fa0527c049badfc48c" -dependencies = [ - "winapi 0.3.9", -] - [[package]] name = "winreg" version = "0.10.1" @@ -6107,7 +6208,7 @@ version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d7f97e69b28b256ccfb02472c25057132e234aa8368fea3bb0268def564ce1f2" dependencies = [ - "clap 3.2.17", + "clap 3.2.23", ] [[package]] @@ -6197,9 +6298,9 @@ dependencies = [ [[package]] name = "zbus" -version = "2.3.2" +version = "3.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d8f1a037b2c4a67d9654dc7bdfa8ff2e80555bbefdd3c1833c1d1b27c963a6b" +checksum = "41ce2de393c874ba871292e881bf3c13a0d5eb38170ebab2e50b4c410eaa222b" dependencies = [ "async-broadcast", "async-channel", @@ -6218,12 +6319,11 @@ dependencies = [ "futures-sink", "futures-util", "hex", - "lazy_static", - "nix 0.23.1", + "nix 0.24.2", "once_cell", "ordered-stream", "rand 0.8.5", - "serde 1.0.144", + "serde 1.0.147", "serde_repr", "sha1", "static_assertions", @@ -6237,9 +6337,9 @@ dependencies = [ [[package]] name = "zbus_macros" -version = "2.3.2" +version = "3.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f8fb5186d1c87ae88cf234974c240671238b4a679158ad3b94ec465237349a6" +checksum = "a13d08f5dc6cf725b693cb6ceacd43cd430ec0664a879188f29e7d7dcd98f96d" dependencies = [ "proc-macro-crate 1.2.1", "proc-macro2", @@ -6254,7 +6354,7 @@ version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "41a408fd8a352695690f53906dc7fd036be924ec51ea5e05666ff42685ed0af5" dependencies = [ - "serde 1.0.144", + "serde 1.0.147", "static_assertions", "zvariant", ] @@ -6290,23 +6390,23 @@ dependencies = [ [[package]] name = "zvariant" -version = "3.6.0" +version = "3.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bd68e4e6432ef19df47d7e90e2e72b5e7e3d778e0ae3baddf12b951265cc758" +checksum = "b794fb7f59af4105697b0449ba31731ee5dbb3e773a17dbdf3d36206ea1b1644" dependencies = [ "byteorder", "enumflags2", "libc", - "serde 1.0.144", + "serde 1.0.147", "static_assertions", "zvariant_derive", ] [[package]] name = "zvariant_derive" -version = "3.6.0" +version = "3.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08e977eaa3af652f63d479ce50d924254ad76722a6289ec1a1eac3231ca30430" +checksum = "dd58d4b6c8e26d3dd2149c8c40c6613ef6451b9885ff1296d1ac86c388351a54" dependencies = [ "proc-macro-crate 1.2.1", "proc-macro2", diff --git a/libs/enigo/src/win/win_impl.rs b/libs/enigo/src/win/win_impl.rs index aa3438c47..e7512399e 100644 --- a/libs/enigo/src/win/win_impl.rs +++ b/libs/enigo/src/win/win_impl.rs @@ -34,7 +34,7 @@ fn mouse_event(flags: u32, data: u32, dx: i32, dy: i32) -> DWORD { dwExtraInfo: ENIGO_INPUT_EXTRA_VALUE, }; let src_ptr = (&m as *const _) as *const u8; - std::ptr::copy_nonoverlapping(src_ptr, dst_ptr, std::mem::size_of::()); + std::ptr::copy_nonoverlapping(src_ptr, dst_ptr, size_of::()); } unsafe { SendInput(1, &mut input as LPINPUT, size_of::() as c_int) } } @@ -52,18 +52,20 @@ fn keybd_event(flags: u32, vk: u16, scan: u16) -> DWORD { scan = MapVirtualKeyExW(vk as _, 0, LAYOUT) as _; } } - let mut input = INPUT { - type_: INPUT_KEYBOARD, - u: unsafe { - transmute_copy(&KEYBDINPUT { - wVk: vk, - wScan: scan, - dwFlags: flags, - time: 0, - dwExtraInfo: ENIGO_INPUT_EXTRA_VALUE, - }) - }, - }; + let mut input: INPUT = unsafe { std::mem::MaybeUninit::zeroed().assume_init() }; + input.type_ = INPUT_KEYBOARD; + unsafe { + let dst_ptr = (&mut input.u as *mut _) as *mut u8; + let k = KEYBDINPUT { + wVk: vk, + wScan: scan, + dwFlags: flags, + time: 0, + dwExtraInfo: ENIGO_INPUT_EXTRA_VALUE, + }; + let src_ptr = (&k as *const _) as *const u8; + std::ptr::copy_nonoverlapping(src_ptr, dst_ptr, size_of::()); + } unsafe { SendInput(1, &mut input as LPINPUT, size_of::() as c_int) } } From 17123ce9ee074b8c680b6093c0afd7089de69fd1 Mon Sep 17 00:00:00 2001 From: rustdesk Date: Mon, 31 Oct 2022 23:59:52 +0800 Subject: [PATCH 18/27] revert Cargo.lock for CI --- Cargo.lock | 798 +++++++++++++++++++++++------------------------------ 1 file changed, 349 insertions(+), 449 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 7daf9862c..0bc360fe7 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -23,6 +23,12 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aae1277d39aeec15cb388266ecc24b11c80469deae6067e17a1a7aa9e5c1f234" +[[package]] +name = "ahash" +version = "0.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "739f4a8db6605981345c5654f3a85b056ce52f37a39d34da03f25bf2151ea16e" + [[package]] name = "ahash" version = "0.7.6" @@ -36,9 +42,9 @@ dependencies = [ [[package]] name = "aho-corasick" -version = "0.7.19" +version = "0.7.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4f55bd91a0978cbfd91c457a164bab8b4001c833b7f323132c0a4e1922dd44e" +checksum = "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f" dependencies = [ "memchr", ] @@ -114,16 +120,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b5e9dd62f37dea550caf48c77591dc50bd1a378ce08855be1a0c42a97b7550fb" dependencies = [ "android_log-sys", - "env_logger 0.9.1", + "env_logger 0.9.0", "log", "once_cell", ] [[package]] name = "android_system_properties" -version = "0.1.5" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" +checksum = "d7ed72e1635e121ca3e79420540282af22da58be50de153d36f81ddc6b83aa9e" dependencies = [ "libc", ] @@ -139,9 +145,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.66" +version = "1.0.62" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "216261ddc8289130e551ddcd5ce8a064710c0d064a4d2895c67151c92b5443f6" +checksum = "1485d4d2cc45e7b201ee3767015c96faa5904387c9d87c6efdd0fb511f12d305" [[package]] name = "arboard" @@ -200,32 +206,31 @@ dependencies = [ [[package]] name = "async-io" -version = "1.10.0" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8121296a9f05be7f34aa4196b1747243b3b62e048bb7906f644f3fbfc490cf7" +checksum = "0ab006897723d9352f63e2b13047177c3982d8d79709d713ce7747a8f19fd1b0" dependencies = [ - "async-lock", "autocfg 1.1.0", "concurrent-queue", "futures-lite", "libc", "log", + "once_cell", "parking", "polling", "slab", - "socket2 0.4.7", + "socket2 0.4.6", "waker-fn", "winapi 0.3.9", ] [[package]] name = "async-lock" -version = "2.6.0" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8101efe8695a6c17e02911402145357e718ac92d3ff88ae8419e84b1707b685" +checksum = "e97a171d191782fba31bb902b14ad94e24a68145032b7eedf871ab0bc0d077b6" dependencies = [ "event-listener", - "futures-lite", ] [[package]] @@ -265,9 +270,9 @@ checksum = "7a40729d2133846d9ed0ea60a8b9541bccddab49cd30f0715a1da672fe9a2524" [[package]] name = "async-trait" -version = "0.1.58" +version = "0.1.57" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e805d94e6b5001b651426cf4cd446b1ab5f319d27bab5c644f61de0a804360c" +checksum = "76464446b8bc32758d7e88ee1a804d9914cd9b1cb264c029899680b0be29826f" dependencies = [ "proc-macro2", "quote", @@ -295,7 +300,7 @@ dependencies = [ "glib-sys 0.15.10", "gobject-sys 0.15.10", "libc", - "system-deps 6.0.3", + "system-deps 6.0.2", ] [[package]] @@ -349,16 +354,16 @@ dependencies = [ "cc", "cfg-if 1.0.0", "libc", - "miniz_oxide 0.5.4", + "miniz_oxide 0.5.3", "object", "rustc-demangle", ] [[package]] name = "base64" -version = "0.13.1" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" +checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd" [[package]] name = "bindgen" @@ -370,7 +375,7 @@ dependencies = [ "cexpr", "clang-sys", "clap 2.34.0", - "env_logger 0.9.1", + "env_logger 0.9.0", "lazy_static", "lazycell", "log", @@ -380,7 +385,7 @@ dependencies = [ "regex", "rustc-hash", "shlex", - "which 4.3.0", + "which 4.2.5", ] [[package]] @@ -409,9 +414,9 @@ checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a" [[package]] name = "block-buffer" -version = "0.10.3" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69cce20737498f97b993470a6e536b8523f0af7892a4f928cceb1ac5e52ebe7e" +checksum = "0bf7fe51849ea569fd452f37822f606a5cabb684dc918707a0193fd4664ff324" dependencies = [ "generic-array", ] @@ -453,15 +458,15 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.11.1" +version = "3.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "572f695136211188308f16ad2ca5c851a712c464060ae6974944458eb83880ba" +checksum = "c1ad822118d20d2c234f427000d5acc36eabe1e29a348c89b63dd60b13f28e5d" [[package]] name = "bytemuck" -version = "1.12.2" +version = "1.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5aec14f5d4e6e3f927cd0c81f72e5710d95ee9019fbeb4b3021193867491bfd8" +checksum = "2f5715e491b5a1598fc2bef5a606847b5dc1d48ea625bd3c02c00de8285591da" [[package]] name = "byteorder" @@ -475,7 +480,7 @@ version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec8a7b6a70fde80372154c65702f00a0f56f3e1c36abbc6c440484be248856db" dependencies = [ - "serde 1.0.147", + "serde 1.0.144", ] [[package]] @@ -505,7 +510,7 @@ checksum = "3c55d429bef56ac9172d25fecb85dc8068307d17acd74b377866b7a1ef25d3c8" dependencies = [ "glib-sys 0.15.10", "libc", - "system-deps 6.0.3", + "system-deps 6.0.2", ] [[package]] @@ -524,7 +529,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.144", ] [[package]] @@ -533,7 +538,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.144", ] [[package]] @@ -544,9 +549,9 @@ checksum = "4acbb09d9ee8e23699b9634375c72795d095bf268439da88562cf9b501f181fa" dependencies = [ "camino", "cargo-platform", - "semver 1.0.14", - "serde 1.0.147", - "serde_json 1.0.87", + "semver 1.0.13", + "serde 1.0.144", + "serde_json 1.0.85", ] [[package]] @@ -555,14 +560,14 @@ version = "0.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5b6d248e3ca02f3fbfabcb9284464c596baec223a26d91bbf44a5a62ddb0d900" dependencies = [ - "clap 3.2.23", + "clap 3.2.17", "heck 0.4.0", "indexmap", "log", "proc-macro2", "quote", - "serde 1.0.147", - "serde_json 1.0.87", + "serde 1.0.144", + "serde_json 1.0.85", "syn", "tempfile", "toml", @@ -570,9 +575,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.0.74" +version = "1.0.73" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "581f5dba903aac52ea3feb5ec4810848460ee833876f1f9b0fdeab1f19091574" +checksum = "2fff2a6927b3bb87f9595d67196a70493f627687a71d87a0d692242c33f58c11" dependencies = [ "jobserver", ] @@ -594,9 +599,9 @@ dependencies = [ [[package]] name = "cfg-expr" -version = "0.11.0" +version = "0.10.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0357a6402b295ca3a86bc148e84df46c02e41f41fef186bda662557ef6328aa" +checksum = "0aacacf4d96c24b2ad6eb8ee6df040e4f27b0d0b39a5710c30091baa830485db" dependencies = [ "smallvec", ] @@ -630,9 +635,9 @@ dependencies = [ [[package]] name = "clang-sys" -version = "1.4.0" +version = "1.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa2e27ae6ab525c3d369ded447057bca5438d86dc3a68f6faafb8269ba82ebf3" +checksum = "5a050e2153c5be08febd6734e29298e844fdb0fa21aeddd63b4eb7baa106c69b" dependencies = [ "glob", "libc", @@ -656,9 +661,9 @@ dependencies = [ [[package]] name = "clap" -version = "3.2.23" +version = "3.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71655c45cb9845d3270c9d6df84ebe72b4dad3c2ba3f7023ad47c144e4e473a5" +checksum = "29e724a68d9319343bb3328c9cc2dfde263f4b3142ee1059a9980580171c954b" dependencies = [ "atty", "bitflags", @@ -668,14 +673,14 @@ dependencies = [ "once_cell", "strsim 0.10.0", "termcolor", - "textwrap 0.16.0", + "textwrap 0.15.0", ] [[package]] name = "clap_derive" -version = "3.2.18" +version = "3.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea0c8bce528c4be4da13ea6fead8965e95b6073585a2f05204bd8f4119f82a65" +checksum = "13547f7012c01ab4a0e8f8967730ada8f9fdf419e8b6c792788f39cf4e46eefa" dependencies = [ "heck 0.4.0", "proc-macro-error", @@ -700,7 +705,7 @@ dependencies = [ "cc", "hbb_common", "lazy_static", - "serde 1.0.147", + "serde 1.0.144", "serde_derive", "thiserror", ] @@ -727,9 +732,9 @@ dependencies = [ [[package]] name = "cmake" -version = "0.1.49" +version = "0.1.48" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db34956e100b30725f2eb215f90d4871051239535632f84fea3bc92722c66b7c" +checksum = "e8ad8cef104ac57b68b89df3208164d228503abbdce70f6880ffa3d970e7443a" dependencies = [ "cc", ] @@ -765,16 +770,6 @@ dependencies = [ "objc", ] -[[package]] -name = "codespan-reporting" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e" -dependencies = [ - "termcolor", - "unicode-width", -] - [[package]] name = "color_quant" version = "1.1.0" @@ -806,7 +801,7 @@ version = "0.4.0" source = "git+https://github.com/open-trade/confy#630cc28a396cb7d01eefdd9f3824486fe4d8554b" dependencies = [ "directories-next", - "serde 1.0.147", + "serde 1.0.144", "thiserror", "toml", ] @@ -945,9 +940,9 @@ dependencies = [ [[package]] name = "cpufeatures" -version = "0.2.5" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28d997bd5e24a5928dd43e46dc529867e207907fe0b239c3477d924f7f2ca320" +checksum = "dc948ebb96241bb40ab73effeb80d9f93afaad49359d159a5e61be51619fe813" dependencies = [ "libc", ] @@ -984,14 +979,15 @@ dependencies = [ [[package]] name = "crossbeam-epoch" -version = "0.9.11" +version = "0.9.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f916dfc5d356b0ed9dae65f1db9fc9770aa2851d2662b988ccf4fe3516e86348" +checksum = "045ebe27666471bb549370b4b0b3e51b07f56325befa4284db65fc89c02511b1" dependencies = [ "autocfg 1.1.0", "cfg-if 1.0.0", "crossbeam-utils", "memoffset", + "once_cell", "scopeguard", ] @@ -1007,11 +1003,12 @@ dependencies = [ [[package]] name = "crossbeam-utils" -version = "0.8.12" +version = "0.8.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edbafec5fa1f196ca66527c1b12c2ec4745ca14b50f1ad8f9f6f720b55d11fac" +checksum = "51887d4adc7b564537b15adcfb307936f8075dfcd5f00dde9a9f1d29383682bc" dependencies = [ "cfg-if 1.0.0", + "once_cell", ] [[package]] @@ -1050,55 +1047,11 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b365fabc795046672053e29c954733ec3b05e4be654ab130fe8f1f94d7051f35" -[[package]] -name = "cxx" -version = "1.0.80" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b7d4e43b25d3c994662706a1d4fcfc32aaa6afd287502c111b237093bb23f3a" -dependencies = [ - "cc", - "cxxbridge-flags", - "cxxbridge-macro", - "link-cplusplus", -] - -[[package]] -name = "cxx-build" -version = "1.0.80" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84f8829ddc213e2c1368e51a2564c552b65a8cb6a28f31e576270ac81d5e5827" -dependencies = [ - "cc", - "codespan-reporting", - "once_cell", - "proc-macro2", - "quote", - "scratch", - "syn", -] - -[[package]] -name = "cxxbridge-flags" -version = "1.0.80" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e72537424b474af1460806647c41d4b6d35d09ef7fe031c5c2fa5766047cc56a" - -[[package]] -name = "cxxbridge-macro" -version = "1.0.80" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "309e4fb93eed90e1e14bea0da16b209f81813ba9fc7830c20ed151dd7bc0a4d7" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - [[package]] name = "dark-light" -version = "0.2.3" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "413487ef345ab5cdfbf23e66070741217a701bce70f2f397a54221b4f2b6056a" +checksum = "5b83576e2eee2d9cdaa8d08812ae59cbfe1b5ac7ac5ac4b8400303c6148a88c1" dependencies = [ "dconf_rs", "detect-desktop-environment", @@ -1106,7 +1059,7 @@ dependencies = [ "objc", "rust-ini", "web-sys", - "winreg 0.10.1", + "winreg 0.8.0", "zbus", "zvariant", ] @@ -1408,9 +1361,12 @@ dependencies = [ [[package]] name = "dlv-list" -version = "0.3.0" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0688c2a7f92e427f44895cd63841bff7b29f8d7a1648b9e7e07a4a365b2e1257" +checksum = "68df3f2b690c1b86e65ef7830956aededf3cb0a16f898f79b9a6f421a7b6211b" +dependencies = [ + "rand 0.8.5", +] [[package]] name = "docopt" @@ -1420,7 +1376,7 @@ checksum = "7f3f119846c823f9eafcf953a8f6ffb6ed69bf6240883261a7f13b634579a51f" dependencies = [ "lazy_static", "regex", - "serde 1.0.147", + "serde 1.0.144", "strsim 0.10.0", ] @@ -1484,7 +1440,7 @@ dependencies = [ "objc", "pkg-config", "rdev", - "serde 1.0.147", + "serde 1.0.144", "serde_derive", "tfc", "unicode-segmentation", @@ -1530,7 +1486,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e75d4cd21b95383444831539909fbb14b9dc3fdceb2a6f5d36577329a1f55ccb" dependencies = [ "enumflags2_derive", - "serde 1.0.147", + "serde 1.0.144", ] [[package]] @@ -1556,9 +1512,9 @@ dependencies = [ [[package]] name = "env_logger" -version = "0.9.1" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c90bf5f19754d10198ccb95b70664fc925bd1fc090a0fd9a6ebc54acc8cd6272" +checksum = "0b2cf0344971ee6c64c31be0d530793fba457d322dfec2810c453d0ef228f9c3" dependencies = [ "atty", "humantime", @@ -1668,14 +1624,14 @@ dependencies = [ [[package]] name = "filetime" -version = "0.2.18" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b9663d381d07ae25dc88dbdf27df458faa83a9b25336bcac83d5e452b5fc9d3" +checksum = "e94a7bbaa59354bc20dd75b67f23e2797b4490e9d6928203fb105c79e448c86c" dependencies = [ "cfg-if 1.0.0", "libc", "redox_syscall", - "windows-sys 0.42.0", + "windows-sys 0.36.1", ] [[package]] @@ -1685,7 +1641,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f82b0f4c27ad9f8bfd1f3208d882da2b09c301bc1c828fd3a00d0216d2fbbff6" dependencies = [ "crc32fast", - "miniz_oxide 0.5.4", + "miniz_oxide 0.5.3", ] [[package]] @@ -1731,13 +1687,13 @@ dependencies = [ "cbindgen", "convert_case", "enum_dispatch", - "env_logger 0.9.1", + "env_logger 0.9.0", "lazy_static", "log", "pathdiff", "quote", "regex", - "serde 1.0.147", + "serde 1.0.144", "serde_yaml", "structopt", "syn", @@ -1774,10 +1730,11 @@ checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" [[package]] name = "form_urlencoded" -version = "1.1.0" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9c384f161156f5260c24a097c56119f9be8c798586aecc13afbcbe7b7e26bf8" +checksum = "5fc25a87fa4fd2094bffb06925852034d90a17f0d1e05197d4956d3555752191" dependencies = [ + "matches", "percent-encoding", ] @@ -1811,9 +1768,9 @@ checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" [[package]] name = "futures" -version = "0.3.25" +version = "0.3.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38390104763dc37a5145a53c29c63c1290b5d316d6086ec32c293f6736051bb0" +checksum = "ab30e97ab6aacfe635fad58f22c2bb06c8b685f7421eb1e064a729e2a5f481fa" dependencies = [ "futures-channel", "futures-core", @@ -1826,9 +1783,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.25" +version = "0.3.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52ba265a92256105f45b719605a571ffe2d1f0fea3807304b522c1d778f79eed" +checksum = "2bfc52cbddcfd745bf1740338492bb0bd83d76c67b445f91c5fb29fae29ecaa1" dependencies = [ "futures-core", "futures-sink", @@ -1836,15 +1793,15 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.25" +version = "0.3.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04909a7a7e4633ae6c4a9ab280aeb86da1236243a77b694a49eacd659a4bd3ac" +checksum = "d2acedae88d38235936c3922476b10fced7b2b68136f5e3c03c2d5be348a1115" [[package]] name = "futures-executor" -version = "0.3.25" +version = "0.3.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7acc85df6714c176ab5edf386123fafe217be88c0840ec11f199441134a074e2" +checksum = "1d11aa21b5b587a64682c0094c2bdd4df0076c5324961a40cc3abd7f37930528" dependencies = [ "futures-core", "futures-task", @@ -1853,9 +1810,9 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.25" +version = "0.3.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00f5fb52a06bdcadeb54e8d3671f8888a39697dcb0b81b23b55174030427f4eb" +checksum = "93a66fc6d035a26a3ae255a6d2bca35eda63ae4c5512bef54449113f7a1228e5" [[package]] name = "futures-lite" @@ -1874,9 +1831,9 @@ dependencies = [ [[package]] name = "futures-macro" -version = "0.3.25" +version = "0.3.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bdfb8ce053d86b91919aad980c220b1fb8401a9394410e1c289ed7e66b61835d" +checksum = "0db9cce532b0eae2ccf2766ab246f114b56b9cf6d445e00c2549fbc100ca045d" dependencies = [ "proc-macro2", "quote", @@ -1885,21 +1842,21 @@ dependencies = [ [[package]] name = "futures-sink" -version = "0.3.25" +version = "0.3.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39c15cf1a4aa79df40f1bb462fb39676d0ad9e366c2a33b590d7c66f4f81fcf9" +checksum = "ca0bae1fe9752cf7fd9b0064c674ae63f97b37bc714d745cbde0afb7ec4e6765" [[package]] name = "futures-task" -version = "0.3.25" +version = "0.3.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ffb393ac5d9a6eaa9d3fdf37ae2776656b706e200c8e16b1bdb227f5198e6ea" +checksum = "842fc63b931f4056a24d59de13fb1272134ce261816e063e634ad0c15cdc5306" [[package]] name = "futures-util" -version = "0.3.25" +version = "0.3.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "197676987abd2f9cadff84926f410af1c183608d36641465df73ae8211dc65d6" +checksum = "f0828a5471e340229c11c77ca80017937ce3c58cb788a17e5f1c2d5c485a9577" dependencies = [ "futures-channel", "futures-core", @@ -1961,7 +1918,7 @@ dependencies = [ "glib-sys 0.15.10", "gobject-sys 0.15.10", "libc", - "system-deps 6.0.3", + "system-deps 6.0.2", ] [[package]] @@ -1978,7 +1935,7 @@ dependencies = [ "libc", "pango-sys", "pkg-config", - "system-deps 6.0.3", + "system-deps 6.0.2", ] [[package]] @@ -2003,9 +1960,9 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.8" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c05aeb6a22b8f62540c194aac980f2115af067bfe15a0734d7277a768d396b31" +checksum = "4eb1a864a501629691edf6c15a593b7a51eebaa1e8468e9ddc623de7c9b58ec6" dependencies = [ "cfg-if 1.0.0", "libc", @@ -2044,7 +2001,7 @@ dependencies = [ "glib-sys 0.15.10", "gobject-sys 0.15.10", "libc", - "system-deps 6.0.3", + "system-deps 6.0.2", "winapi 0.3.9", ] @@ -2135,7 +2092,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ef4b192f8e65e9cf76cbf4ea71fa8e3be4a0e18ffe3d68b8da6836974cc5bad4" dependencies = [ "libc", - "system-deps 6.0.3", + "system-deps 6.0.2", ] [[package]] @@ -2163,7 +2120,7 @@ checksum = "0d57ce44246becd17153bd035ab4d32cfee096a657fc01f2231c9278378d1e0a" dependencies = [ "glib-sys 0.15.10", "libc", - "system-deps 6.0.3", + "system-deps 6.0.2", ] [[package]] @@ -2337,7 +2294,7 @@ dependencies = [ "gobject-sys 0.15.10", "libc", "pango-sys", - "system-deps 6.0.3", + "system-deps 6.0.2", ] [[package]] @@ -2356,9 +2313,9 @@ dependencies = [ [[package]] name = "h2" -version = "0.3.15" +version = "0.3.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f9f29bc9dda355256b2916cf526ab02ce0aeaaaf2bad60d65ef3f12f11dd0f4" +checksum = "5ca32592cf21ac7ccab1825cd87f6c9b3d9022c44d086172ed0966bec8af30be" dependencies = [ "bytes", "fnv", @@ -2373,13 +2330,22 @@ dependencies = [ "tracing", ] +[[package]] +name = "hashbrown" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7afe4a420e3fe79967a00898cc1f4db7c8a49a9333a29f8a4bd76a253d5cd04" +dependencies = [ + "ahash 0.4.7", +] + [[package]] name = "hashbrown" version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" dependencies = [ - "ahash", + "ahash 0.7.6", ] [[package]] @@ -2392,7 +2358,7 @@ dependencies = [ "confy", "directories-next", "dirs-next", - "env_logger 0.9.1", + "env_logger 0.9.0", "filetime", "futures", "futures-util", @@ -2405,9 +2371,9 @@ dependencies = [ "quinn", "rand 0.8.5", "regex", - "serde 1.0.147", + "serde 1.0.144", "serde_derive", - "serde_json 1.0.87", + "serde_json 1.0.85", "socket2 0.3.19", "sodiumoxide", "tokio", @@ -2462,7 +2428,7 @@ checksum = "75f43d41e26995c17e71ee126451dd3941010b0514a81a9d11f3b341debc2399" dependencies = [ "bytes", "fnv", - "itoa 1.0.4", + "itoa 1.0.3", ] [[package]] @@ -2478,9 +2444,9 @@ dependencies = [ [[package]] name = "httparse" -version = "1.8.0" +version = "1.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" +checksum = "496ce29bb5a52785b44e0f7ca2847ae0bb839c9bd28f69acac9b99d461c0c04c" [[package]] name = "httpdate" @@ -2497,21 +2463,21 @@ checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" [[package]] name = "hwcodec" version = "0.1.0" -source = "git+https://github.com/21pages/hwcodec#49ea1868876dd2cee5a339df6cd007c356689625" +source = "git+https://github.com/21pages/hwcodec#1f03d203eca24dc976c21a47228f3bc31484c2bc" dependencies = [ "bindgen", "cc", "log", - "serde 1.0.147", + "serde 1.0.144", "serde_derive", - "serde_json 1.0.87", + "serde_json 1.0.85", ] [[package]] name = "hyper" -version = "0.14.21" +version = "0.14.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41a2df176f359a22aee9c8657e674f7aa54e9ba48b512a798e5ca36a1f51065c" +checksum = "02c929dc5c39e335a03c405292728118860721b10190d98c2a0f0efd5baafbac" dependencies = [ "bytes", "futures-channel", @@ -2522,9 +2488,9 @@ dependencies = [ "http-body", "httparse", "httpdate", - "itoa 1.0.4", + "itoa 1.0.3", "pin-project-lite", - "socket2 0.4.7", + "socket2 0.4.6", "tokio", "tower-service", "tracing", @@ -2546,28 +2512,17 @@ dependencies = [ [[package]] name = "iana-time-zone" -version = "0.1.53" +version = "0.1.46" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64c122667b287044802d6ce17ee2ddf13207ed924c712de9a66a5814d5b64765" +checksum = "ad2bfd338099682614d3ee3fe0cd72e0b6a41ca6a87f6a74a3bd593c91650501" dependencies = [ "android_system_properties", "core-foundation-sys 0.8.3", - "iana-time-zone-haiku", "js-sys", "wasm-bindgen", "winapi 0.3.9", ] -[[package]] -name = "iana-time-zone-haiku" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0703ae284fc167426161c2e3f1da3ea71d94b21bedbcc9494e92b28e334e3dca" -dependencies = [ - "cxx", - "cxx-build", -] - [[package]] name = "ident_case" version = "1.0.1" @@ -2576,10 +2531,11 @@ checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" [[package]] name = "idna" -version = "0.3.0" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6" +checksum = "418a0a6fab821475f634efe3ccc45c013f742efe03d853e8d3355d5cb850ecf8" dependencies = [ + "matches", "unicode-bidi", "unicode-normalization", ] @@ -2603,25 +2559,25 @@ dependencies = [ [[package]] name = "impersonate_system" version = "0.1.0" -source = "git+https://github.com/21pages/impersonate-system#84b401893d5b6628c8b33b295328d13fbbe2674b" +source = "git+https://github.com/21pages/impersonate-system#c48f37a8fd17413b2a4ba655c3873bdc5c8d25aa" dependencies = [ "cc", ] [[package]] name = "include_dir" -version = "0.7.3" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18762faeff7122e89e0857b02f7ce6fcc0d101d5e9ad2ad7846cc01d61b7f19e" +checksum = "482a2e29200b7eed25d7fdbd14423326760b7f6658d21a4cf12d55a50713c69f" dependencies = [ "include_dir_macros", ] [[package]] name = "include_dir_macros" -version = "0.7.3" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b139284b5cf57ecfa712bcc66950bb635b31aff41c188e8a4cfc758eca374a3f" +checksum = "5e074c19deab2501407c91ba1860fa3d6820bfde307db6d8cb851b55a10be89b" dependencies = [ "proc-macro2", "quote", @@ -2634,7 +2590,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "10a35a97730320ffe8e2d410b5d3b69279b98d2c14bdb8b70ea89ecf7888d41e" dependencies = [ "autocfg 1.1.0", - "hashbrown", + "hashbrown 0.12.3", ] [[package]] @@ -2701,9 +2657,9 @@ checksum = "8324a32baf01e2ae060e9de58ed0bc2320c9a2833491ee36cd3b4c414de4db8c" [[package]] name = "itoa" -version = "1.0.4" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4217ad341ebadf8d8e724e264f13e593e0648f5b3e94b3896a5df283be015ecc" +checksum = "6c8af84674fe1f223a982c933a0ee1086ac4d4052aa0fb8060c12c6ad838e754" [[package]] name = "jni" @@ -2727,9 +2683,9 @@ checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" [[package]] name = "jobserver" -version = "0.1.25" +version = "0.1.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "068b1ee6743e4d11fb9c6a1e6064b3693a1b600e7f5f5988047d98b3dc9fb90b" +checksum = "af25a77299a7f711a01975c35a6a424eb6862092cc2d6c72c4ed6cbc56dfc1fa" dependencies = [ "libc", ] @@ -2742,9 +2698,9 @@ checksum = "229d53d58899083193af11e15917b5640cd40b29ff475a1fe4ef725deb02d0f2" [[package]] name = "js-sys" -version = "0.3.60" +version = "0.3.59" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49409df3e3bf0856b916e2ceaca09ee28e6871cf7d9ce97a692cacfdb2a25a47" +checksum = "258451ab10b34f8af53416d1fdab72c22e805f0c92a1136d59470ec0b11138b2" dependencies = [ "wasm-bindgen", ] @@ -2797,9 +2753,9 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.137" +version = "0.2.132" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc7fcc620a3bff7cdd7a365be3376c97191aeaccc2a603e600951e452615bf89" +checksum = "8371e4e5341c3a96db127eb2465ac681ced4c433e01dd0e938adbef26ba93ba5" [[package]] name = "libdbus-sys" @@ -2889,15 +2845,6 @@ dependencies = [ "walkdir", ] -[[package]] -name = "link-cplusplus" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9272ab7b96c9046fbc5bc56c06c117cb639fe2d509df0c421cad82d2915cf369" -dependencies = [ - "cc", -] - [[package]] name = "linked-hash-map" version = "0.5.6" @@ -2906,9 +2853,9 @@ checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" [[package]] name = "lock_api" -version = "0.4.9" +version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df" +checksum = "327fa5b6a6940e4699ec49a9beae1ea4845c6bab9314e4f84ac68742139d8c53" dependencies = [ "autocfg 1.1.0", "scopeguard", @@ -2925,9 +2872,9 @@ dependencies = [ [[package]] name = "mac_address" -version = "1.1.4" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b238e3235c8382b7653c6408ed1b08dd379bdb9fdf990fb0bbae3db2cc0ae963" +checksum = "df1d1bc1084549d60725ccc53a2bfa07f67fe4689fda07b05a36531f2988104a" dependencies = [ "nix 0.23.1", "winapi 0.3.9", @@ -2969,6 +2916,12 @@ dependencies = [ "libc", ] +[[package]] +name = "matches" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3e378b66a060d48947b590737b30a1be76706c8dd7b8ba0f2fe3989c68a853f" + [[package]] name = "md5" version = "0.7.0" @@ -3038,9 +2991,9 @@ dependencies = [ [[package]] name = "miniz_oxide" -version = "0.5.4" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96590ba8f175222643a85693f33d26e9c8a015f599c216509b1a6894af675d34" +checksum = "6f5c75688da582b8ffc1f1799e9db273f32133c49e048f614d22ec3256773ccc" dependencies = [ "adler", ] @@ -3066,14 +3019,14 @@ dependencies = [ [[package]] name = "mio" -version = "0.8.5" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5d732bc30207a6423068df043e3d02e0735b155ad7ce1a6f76fe2baa5b158de" +checksum = "57ee1c23c7c63b0c9250c339ffdc69255f110b298b901b9f6c82547b7b87caaf" dependencies = [ "libc", "log", "wasi 0.11.0+wasi-snapshot-preview1", - "windows-sys 0.42.0", + "windows-sys 0.36.1", ] [[package]] @@ -3248,9 +3201,9 @@ dependencies = [ [[package]] name = "net2" -version = "0.2.38" +version = "0.2.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74d0df99cfcd2530b2e694f6e17e7f37b8e26bb23983ac530c0c97408837c631" +checksum = "391630d12b68002ae1e25e8f974306474966550ad82dac6886fb8910c19568ae" dependencies = [ "cfg-if 0.1.10", "libc", @@ -3499,9 +3452,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.16.0" +version = "1.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86f0b0d4bf799edbc74508c1e8bf170ff5f41238e5f8225603ca7caaae2b7860" +checksum = "074864da206b4973b84eb91683020dbefd6a8c3f0f38e054d93954e891935e4e" [[package]] name = "openssl-probe" @@ -3511,12 +3464,12 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" [[package]] name = "ordered-multimap" -version = "0.4.3" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccd746e37177e1711c20dd619a1620f34f5c8b569c53590a72dedd5344d8924a" +checksum = "1c672c7ad9ec066e428c00eb917124a06f08db19e2584de982cc34b1f4c12485" dependencies = [ "dlv-list", - "hashbrown", + "hashbrown 0.9.1", ] [[package]] @@ -3531,9 +3484,9 @@ dependencies = [ [[package]] name = "os_str_bytes" -version = "6.3.1" +version = "6.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3baf96e39c5359d2eb0dd6ccb42c62b91d9678aa68160d261b9e0ccbf9e9dea9" +checksum = "9ff7415e9ae3fff1225851df9e0d9e4e5479f947619774677a63572e55e80eff" [[package]] name = "padlock" @@ -3563,7 +3516,7 @@ dependencies = [ "glib-sys 0.15.10", "gobject-sys 0.15.10", "libc", - "system-deps 6.0.3", + "system-deps 6.0.2", ] [[package]] @@ -3605,7 +3558,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.3", ] [[package]] @@ -3624,22 +3577,22 @@ dependencies = [ [[package]] name = "parking_lot_core" -version = "0.9.4" +version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4dc9e0dc2adc1c69d09143aff38d3d30c5c3f0df0dad82e6d25547af174ebec0" +checksum = "09a279cbf25cb0757810394fbc1e359949b59e348145c643a939a525692e6929" dependencies = [ "cfg-if 1.0.0", "libc", "redox_syscall", "smallvec", - "windows-sys 0.42.0", + "windows-sys 0.36.1", ] [[package]] name = "paste" -version = "1.0.9" +version = "1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1de2e551fb905ac83f73f7aedf2f0cb4a0da7e35efa24a202a936269f1f18e1" +checksum = "9423e2b32f7a043629287a536f21951e8c6a82482d0acb1eeebfc90bc2225b22" [[package]] name = "pathdiff" @@ -3655,15 +3608,15 @@ checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099" [[package]] name = "percent-encoding" -version = "2.2.0" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e" +checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e" [[package]] name = "pest" -version = "2.4.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbc7bc69c062e492337d74d59b120c274fd3d261b6bf6d3207d499b4b379c41a" +checksum = "4b0560d531d1febc25a3c9398a62a71256c0178f2e3443baedd9ad4bb8c9deb4" dependencies = [ "thiserror", "ucd-trie", @@ -3741,9 +3694,9 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" [[package]] name = "pkg-config" -version = "0.3.26" +version = "0.3.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ac9a59f73473f1b8d852421e59e64809f025994837ef743615c6d0c5b305160" +checksum = "1df8c4ec4b0627e53bdf214615ad287367e482558cf84b109250b37464dc03ae" [[package]] name = "png" @@ -3759,9 +3712,9 @@ dependencies = [ [[package]] name = "polling" -version = "2.4.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab4609a838d88b73d8238967b60dd115cc08d38e2bbaf51ee1e4b695f89122e2" +checksum = "899b00b9c8ab553c743b3e11e87c5c7d423b2a2de229ba95b24a756344748011" dependencies = [ "autocfg 1.1.0", "cfg-if 1.0.0", @@ -3785,9 +3738,9 @@ checksum = "bc5c99d529f0d30937f6f4b8a86d988047327bb88d04d2c4afc356de74722131" [[package]] name = "primal-check" -version = "0.3.3" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9df7f93fd637f083201473dab4fee2db4c429d32e55e3299980ab3957ab916a0" +checksum = "8b264861209b0641a9b7571695029f516698bd3f2bf46eb61fca408675630b8c" dependencies = [ "num-integer", ] @@ -3838,18 +3791,18 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.47" +version = "1.0.43" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ea3d908b0e36316caf9e9e2c4625cdde190a7e6f440d794667ed17a1855e725" +checksum = "0a2ca2c61bc9f3d74d2886294ab7b9853abd9c1ad903a3ac7815c58989bb7bab" dependencies = [ "unicode-ident", ] [[package]] name = "protobuf" -version = "3.2.0" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b55bad9126f378a853655831eb7363b7b01b81d19f8cb1218861086ca4a1a61e" +checksum = "4ee4a7d8b91800c8f167a6268d1a1026607368e1adc84e98fe044aeb905302f7" dependencies = [ "bytes", "once_cell", @@ -3859,9 +3812,9 @@ dependencies = [ [[package]] name = "protobuf-codegen" -version = "3.2.0" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0dd418ac3c91caa4032d37cb80ff0d44e2ebe637b2fb243b6234bf89cdac4901" +checksum = "07b893e5e7d3395545d5244f8c0d33674025bd566b26c03bfda49b82c6dec45e" dependencies = [ "anyhow", "once_cell", @@ -3874,9 +3827,9 @@ dependencies = [ [[package]] name = "protobuf-parse" -version = "3.2.0" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d39b14605eaa1f6a340aec7f320b34064feb26c93aec35d6a9a2272a8ddfa49" +checksum = "9b1447dd751c434cc1b415579837ebd0411ed7d67d465f38010da5d7cd33af4d" dependencies = [ "anyhow", "indexmap", @@ -3885,14 +3838,14 @@ dependencies = [ "protobuf-support", "tempfile", "thiserror", - "which 4.3.0", + "which 4.2.5", ] [[package]] name = "protobuf-support" -version = "3.2.0" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5d4d7b8601c814cfb36bcebb79f0e61e45e1e93640cf778837833bbed05c372" +checksum = "8ca157fe12fc7ee2e315f2f735e27df41b3d97cdd70ea112824dac1ffb08ee1c" dependencies = [ "thiserror", ] @@ -3958,7 +3911,7 @@ dependencies = [ "futures-util", "libc", "quinn-proto", - "socket2 0.4.7", + "socket2 0.4.6", "tokio", "tracing", ] @@ -4005,7 +3958,7 @@ checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" dependencies = [ "libc", "rand_chacha 0.3.1", - "rand_core 0.6.4", + "rand_core 0.6.3", ] [[package]] @@ -4025,7 +3978,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" dependencies = [ "ppv-lite86", - "rand_core 0.6.4", + "rand_core 0.6.3", ] [[package]] @@ -4045,9 +3998,9 @@ checksum = "9c33a3c44ca05fa6f1807d8e6743f3824e8509beca625669633be0acbdf509dc" [[package]] name = "rand_core" -version = "0.6.4" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +checksum = "d34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7" dependencies = [ "getrandom", ] @@ -4159,7 +4112,7 @@ dependencies = [ [[package]] name = "rdev" version = "0.5.0-2" -source = "git+https://github.com/asur4s/rdev#a5dfea84ddd550cabbd3e0d7160307100edda7b7" +source = "git+https://github.com/asur4s/rdev#ea223720532f32652dab803db43f9ce437f2b019" dependencies = [ "cocoa", "core-foundation 0.9.3", @@ -4170,7 +4123,6 @@ dependencies = [ "inotify", "lazy_static", "libc", - "mio 0.8.5", "strum 0.24.1", "strum_macros 0.24.3", "widestring 1.0.2", @@ -4189,9 +4141,9 @@ dependencies = [ [[package]] name = "realfft" -version = "3.0.2" +version = "3.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30030cf3ea04d9192da88768b8b1b865e08733b5ae3cf1f012041749f4bef28f" +checksum = "8028eb3fabd68ddf331f744ba9c25a939804e276d820f9b218ab25a4bd7b91b8" dependencies = [ "rustfft", ] @@ -4254,9 +4206,9 @@ dependencies = [ [[package]] name = "reqwest" -version = "0.11.12" +version = "0.11.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "431949c384f4e2ae07605ccaa56d1d9d2ecdb5cadd4f9577ccfab29f2e5149fc" +checksum = "b75aa69a3f06bbcc66ede33af2af253c6f7a86b1ca0033f60c580a27074fbf92" dependencies = [ "base64", "bytes", @@ -4270,15 +4222,15 @@ dependencies = [ "hyper-rustls", "ipnet", "js-sys", + "lazy_static", "log", "mime", - "once_cell", "percent-encoding", "pin-project-lite", "rustls", "rustls-pemfile 1.0.1", - "serde 1.0.147", - "serde_json 1.0.87", + "serde 1.0.144", + "serde_json 1.0.85", "serde_urlencoded", "tokio", "tokio-rustls", @@ -4319,9 +4271,9 @@ dependencies = [ [[package]] name = "rpassword" -version = "7.1.0" +version = "7.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20c9f5d2a0c3e2ea729ab3706d22217177770654c3ef5056b68b69d07332d3f5" +checksum = "26b763cb66df1c928432cc35053f8bd4cec3335d8559fc16010017d16b3c1680" dependencies = [ "libc", "winapi 0.3.9", @@ -4351,9 +4303,9 @@ dependencies = [ [[package]] name = "rust-ini" -version = "0.18.0" +version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6d5f2436026b4f6e79dc829837d467cc7e9a55ee40e750d716713540715a2df" +checksum = "63471c4aa97a1cf8332a5f97709a79a4234698de6a1f5087faf66f2dae810e22" dependencies = [ "cfg-if 1.0.0", "ordered-multimap", @@ -4394,7 +4346,7 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" dependencies = [ - "semver 1.0.14", + "semver 1.0.13", ] [[package]] @@ -4409,7 +4361,7 @@ dependencies = [ "bytes", "cc", "cfg-if 1.0.0", - "clap 3.2.23", + "clap 3.2.17", "clipboard", "cocoa", "core-foundation 0.9.3", @@ -4447,16 +4399,16 @@ dependencies = [ "rdev", "repng", "reqwest", - "rpassword 7.1.0", + "rpassword 7.0.0", "rubato", "runas", "rust-pulsectl", "samplerate", "sciter-rs", "scrap", - "serde 1.0.147", + "serde 1.0.144", "serde_derive", - "serde_json 1.0.87", + "serde_json 1.0.85", "sha2", "simple_rc", "sys-locale", @@ -4501,9 +4453,9 @@ dependencies = [ [[package]] name = "rustls" -version = "0.20.7" +version = "0.20.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "539a2bfe908f471bfa933876bd1eb6a19cf2176d375f82ef7f99530a40e48c2c" +checksum = "5aab8ee6c7097ed6057f43c187a62418d0c05a4bd5f18b3571db50ee0f9ce033" dependencies = [ "log", "ring", @@ -4594,9 +4546,9 @@ dependencies = [ [[package]] name = "scoped-tls" -version = "1.0.1" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" +checksum = "ea6a9290e3c9cf0f18145ef7ffa62d68ee0bf5fcd651017e586dc7fd5da448c2" [[package]] name = "scopeguard" @@ -4627,20 +4579,14 @@ dependencies = [ "num_cpus", "quest", "repng", - "serde 1.0.147", - "serde_json 1.0.87", + "serde 1.0.144", + "serde_json 1.0.85", "target_build_utils", "tracing", "webm", "winapi 0.3.9", ] -[[package]] -name = "scratch" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8132065adcfd6e02db789d9285a0deb2f3fcb04002865ab67d5fb103533898" - [[package]] name = "sct" version = "0.7.0" @@ -4685,11 +4631,11 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.14" +version = "1.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e25dfac463d778e353db5be2449d1cce89bd6fd23c9f1ea21310ce6e5a1b29c4" +checksum = "93f6841e709003d68bb2deee8c343572bf446003ec20a583e76f7b15cebf3711" dependencies = [ - "serde 1.0.147", + "serde 1.0.144", ] [[package]] @@ -4709,18 +4655,18 @@ checksum = "34b623917345a631dc9608d5194cc206b3fe6c3554cd1c75b937e55e285254af" [[package]] name = "serde" -version = "1.0.147" +version = "1.0.144" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d193d69bae983fc11a79df82342761dfbf28a99fc8d203dca4c3c1b590948965" +checksum = "0f747710de3dcd43b88c9168773254e809d8ddbdf9653b84e2554ab219f17860" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.147" +version = "1.0.144" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f1d362ca8fc9c3e3a7484440752472d68a6caa98f1ab81d99b5dfe517cec852" +checksum = "94ed3a816fb1d101812f83e789f888322c34e291f894f19590dc310963e87a00" dependencies = [ "proc-macro2", "quote", @@ -4741,13 +4687,13 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.87" +version = "1.0.85" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ce777b7b150d76b9cf60d28b55f5847135a003f7d7350c6be7a773508ce7d45" +checksum = "e55a28e3aaef9d5ce0506d0a14dbba8054ddc7e499ef522dd8b26859ec9d4a44" dependencies = [ - "itoa 1.0.4", + "itoa 1.0.3", "ryu", - "serde 1.0.147", + "serde 1.0.144", ] [[package]] @@ -4768,9 +4714,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" dependencies = [ "form_urlencoded", - "itoa 1.0.4", + "itoa 1.0.3", "ryu", - "serde 1.0.147", + "serde 1.0.144", ] [[package]] @@ -4781,7 +4727,7 @@ checksum = "578a7433b776b56a35785ed5ce9a7e777ac0598aac5a6dd1b4b18a307c7fc71b" dependencies = [ "indexmap", "ryu", - "serde 1.0.147", + "serde 1.0.144", "yaml-rust", ] @@ -4838,9 +4784,9 @@ dependencies = [ [[package]] name = "signature" -version = "1.6.4" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74233d3b3b2f6d4b006dc19dee745e73e2a6bfb6f93607cd3b02bd5b00797d7c" +checksum = "f0ea32af43239f0d353a7dd75a22d94c329c8cdaafdcb4c1c1335aa10c298a4a" [[package]] name = "simple_rc" @@ -4848,7 +4794,7 @@ version = "0.1.0" dependencies = [ "confy", "hbb_common", - "serde 1.0.147", + "serde 1.0.144", "serde_derive", "walkdir", ] @@ -4870,9 +4816,9 @@ dependencies = [ [[package]] name = "smallvec" -version = "1.10.0" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0" +checksum = "2fd0db749597d91ff862fd1d55ea87f7855a744a8425a64695b6fca237d1dad1" [[package]] name = "smithay-client-toolkit" @@ -4906,9 +4852,9 @@ dependencies = [ [[package]] name = "socket2" -version = "0.4.7" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02e2d2db9033d13a1567121ddd7a095ee144db4e1ca1b1bda3419bc0da294ebd" +checksum = "10c98bba371b9b22a71a9414e420f92ddeb2369239af08200816169d5e2dd7aa" dependencies = [ "libc", "winapi 0.3.9", @@ -4923,7 +4869,7 @@ dependencies = [ "ed25519", "libc", "libsodium-sys", - "serde 1.0.147", + "serde 1.0.144", ] [[package]] @@ -5031,9 +4977,9 @@ dependencies = [ [[package]] name = "syn" -version = "1.0.103" +version = "1.0.99" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a864042229133ada95abf3b54fdc62ef5ccabe9515b64717bcb9a1919e59445d" +checksum = "58dbef6ec655055e20b86b15a8cc6d439cca19b667537ac6a1369572d151ab13" dependencies = [ "proc-macro2", "quote", @@ -5120,9 +5066,9 @@ dependencies = [ [[package]] name = "system-deps" -version = "6.0.3" +version = "6.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2955b1fe31e1fa2fbd1976b71cc69a606d7d4da16f6de3333d0c92d51419aeff" +checksum = "a1a45a1c4c9015217e12347f2a411b57ce2c4fc543913b14b6fe40483328e709" dependencies = [ "cfg-expr", "heck 0.4.0", @@ -5200,9 +5146,9 @@ dependencies = [ [[package]] name = "textwrap" -version = "0.16.0" +version = "0.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "222a222a5bfe1bba4a77b45ec488a741b3cb8872e5e499451fd7d0129c9c7c3d" +checksum = "b1141d4d61095b28419e22cb0bbf02755f5e54e0526f97f1e3d1d160e60885fb" [[package]] name = "tfc" @@ -5217,18 +5163,18 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.37" +version = "1.0.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10deb33631e3c9018b9baf9dcbbc4f737320d2b576bac10f6aefa048fa407e3e" +checksum = "f5f6586b7f764adc0231f4c79be7b920e766bb2f3e51b3661cdb263828f19994" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.37" +version = "1.0.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "982d17546b47146b28f7c22e3d08465f6b8903d0ea13c1660d9d84a6e7adcdbb" +checksum = "12bafc5b54507e0149cdf1b145a5d80ab80a90bcd9275df43d4fff68460f6c21" dependencies = [ "proc-macro2", "quote", @@ -5272,7 +5218,7 @@ version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c2702e08a7a860f005826c6815dcac101b19b5eb330c27fe4a5928fec1d20ddd" dependencies = [ - "itoa 1.0.4", + "itoa 1.0.3", "libc", "num_threads", "time-macros", @@ -5301,20 +5247,21 @@ checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" [[package]] name = "tokio" -version = "1.21.2" +version = "1.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9e03c497dc955702ba729190dc4aac6f2a0ce97f913e5b1b5912fc5039d9099" +checksum = "0020c875007ad96677dcc890298f4b942882c5d4eb7cc8f439fc3bf813dc9c95" dependencies = [ "autocfg 1.1.0", "bytes", "libc", "memchr", - "mio 0.8.5", + "mio 0.8.4", "num_cpus", + "once_cell", "parking_lot 0.12.1", "pin-project-lite", "signal-hook-registry", - "socket2 0.4.7", + "socket2 0.4.6", "tokio-macros", "winapi 0.3.9", ] @@ -5368,7 +5315,7 @@ dependencies = [ "futures-io", "futures-sink", "futures-util", - "hashbrown", + "hashbrown 0.12.3", "pin-project-lite", "slab", "tokio", @@ -5381,7 +5328,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.144", ] [[package]] @@ -5392,9 +5339,9 @@ checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" [[package]] name = "tracing" -version = "0.1.37" +version = "0.1.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8" +checksum = "2fce9567bd60a67d08a16488756721ba392f24f29006402881e43b19aac64307" dependencies = [ "cfg-if 1.0.0", "pin-project-lite", @@ -5404,9 +5351,9 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.23" +version = "0.1.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4017f8f45139870ca7e672686113917c71c7a6e02d4924eda67186083c03081a" +checksum = "11c75893af559bc8e10716548bdef5cb2b983f8e637db9d0e15126b61b484ee2" dependencies = [ "proc-macro2", "quote", @@ -5415,9 +5362,9 @@ dependencies = [ [[package]] name = "tracing-core" -version = "0.1.30" +version = "0.1.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24eb03ba0eab1fd845050058ce5e616558e8f8d8fca633e6b163fe25c797213a" +checksum = "5aeea4303076558a00714b823f9ad67d58a3bbda1df83d8827d21193156e22f7" dependencies = [ "once_cell", ] @@ -5434,9 +5381,9 @@ dependencies = [ [[package]] name = "tray-item" -version = "0.7.1" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0914b62e00e8f51241806cb9f9c4ea6b10c75d94cae02c89278de6f4b98c7d0f" +checksum = "76863575f7842ed64fda361f417a787efa82811b4617267709066969cd4ccf3b" dependencies = [ "cocoa", "core-graphics 0.22.3", @@ -5473,9 +5420,9 @@ checksum = "dcf81ac59edc17cc8697ff311e8f5ef2d99fcbd9817b34cec66f90b6c3dfd987" [[package]] name = "ucd-trie" -version = "0.1.5" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e79c4d996edb816c91e4308506774452e55e95c3c9de07b6729e17e15a5ef81" +checksum = "89570599c4fe5585de2b388aab47e99f7fa4e9238a1399f707a02e356058141c" [[package]] name = "uds_windows" @@ -5495,36 +5442,36 @@ checksum = "099b7128301d285f79ddd55b9a83d5e6b9e97c92e0ea0daebee7263e932de992" [[package]] name = "unicode-ident" -version = "1.0.5" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ceab39d59e4c9499d4e5a8ee0e2735b891bb7308ac83dfb4e80cad195c9f6f3" +checksum = "c4f5b37a154999a8f3f98cc23a628d850e154479cd94decf3414696e12e31aaf" [[package]] name = "unicode-normalization" -version = "0.1.22" +version = "0.1.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" +checksum = "854cbdc4f7bc6ae19c820d44abdc3277ac3e1b2b93db20a636825d9322fb60e6" dependencies = [ "tinyvec", ] [[package]] name = "unicode-segmentation" -version = "1.10.0" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fdbf052a0783de01e944a6ce7a8cb939e295b1e7be835a1112c3b9a7f047a5a" +checksum = "7e8820f5d777f6224dc4be3632222971ac30164d4a258d595640799554ebfd99" [[package]] name = "unicode-width" -version = "0.1.10" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b" +checksum = "3ed742d4ea2bd1176e236172c8429aaf54486e7ac098db29ffe6529e0ce50973" [[package]] name = "unicode-xid" -version = "0.2.4" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" +checksum = "957e51f3646910546462e67d5f7599b9e4fb8acdd304b087a6494730f9eebf04" [[package]] name = "untrusted" @@ -5534,20 +5481,21 @@ checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" [[package]] name = "url" -version = "2.3.1" +version = "2.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d68c799ae75762b8c3fe375feb6600ef5602c883c5d21eb51c09f22b83c4643" +checksum = "a507c383b2d33b5fc35d1861e77e6b383d158b2da5e14fe51b83dfedf6fd578c" dependencies = [ "form_urlencoded", "idna", + "matches", "percent-encoding", ] [[package]] name = "uuid" -version = "1.2.1" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "feb41e78f93363bb2df8b0e86a2ca30eed7806ea16ea0c790d757cf93f79be83" +checksum = "dd6469f4314d5f1ffec476e05f17cc9a78bc7a27a6a857842170bdf8d6f98d2f" dependencies = [ "getrandom", ] @@ -5583,7 +5531,7 @@ dependencies = [ "cc", "hbb_common", "lazy_static", - "serde 1.0.147", + "serde 1.0.144", "serde_derive", "thiserror", ] @@ -5649,9 +5597,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.83" +version = "0.2.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eaf9f5aceeec8be17c128b2e93e031fb8a4d469bb9c4ae2d7dc1888b26887268" +checksum = "fc7652e3f6c4706c8d9cd54832c4a4ccb9b5336e2c3bd154d5cccfbf1c1f5f7d" dependencies = [ "cfg-if 1.0.0", "wasm-bindgen-macro", @@ -5659,9 +5607,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.83" +version = "0.2.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c8ffb332579b0557b52d268b91feab8df3615f265d5270fec2a8c95b17c1142" +checksum = "662cd44805586bd52971b9586b1df85cdbbd9112e4ef4d8f41559c334dc6ac3f" dependencies = [ "bumpalo", "log", @@ -5674,9 +5622,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-futures" -version = "0.4.33" +version = "0.4.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23639446165ca5a5de86ae1d8896b737ae80319560fbaa4c2887b7da6e7ebd7d" +checksum = "fa76fb221a1f8acddf5b54ace85912606980ad661ac7a503b4570ffd3a624dad" dependencies = [ "cfg-if 1.0.0", "js-sys", @@ -5686,9 +5634,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.83" +version = "0.2.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "052be0f94026e6cbc75cdefc9bae13fd6052cdcaf532fa6c45e7ae33a1e6c810" +checksum = "b260f13d3012071dfb1512849c033b1925038373aea48ced3012c09df952c602" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -5696,9 +5644,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.83" +version = "0.2.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07bc0c051dc5f23e307b13285f9d75df86bfdf816c5721e573dec1f9b8aa193c" +checksum = "5be8e654bdd9b79216c2929ab90721aa82faf65c48cdf08bdc4e7f51357b80da" dependencies = [ "proc-macro2", "quote", @@ -5709,9 +5657,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.83" +version = "0.2.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c38c045535d93ec4f0b4defec448e4291638ee608530863b1e2ba115d4fff7f" +checksum = "6598dd0bd3c7d51095ff6531a5b23e02acdc81804e30d8f07afb77b7215a140a" [[package]] name = "wayland-client" @@ -5788,9 +5736,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.60" +version = "0.3.59" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcda906d8be16e728fd5adc5b729afad4e444e106ab28cd1c7256e54fa61510f" +checksum = "ed055ab27f941423197eb86b2035720b1a3ce40504df082cac2ecc6ed73335a1" dependencies = [ "js-sys", "wasm-bindgen", @@ -5826,9 +5774,9 @@ dependencies = [ [[package]] name = "webpki-roots" -version = "0.22.5" +version = "0.22.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "368bfe657969fb01238bb756d351dcade285e0f6fcbd36dcb23359a5169975be" +checksum = "f1c760f0d366a6c24a02ed7816e23e691f5d92291f94d15e836006fd11b04daf" dependencies = [ "webpki", ] @@ -5860,22 +5808,21 @@ dependencies = [ [[package]] name = "which" -version = "4.3.0" +version = "4.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c831fbbee9e129a8cf93e7747a82da9d95ba8e16621cae60ec2cdc849bacb7b" +checksum = "5c4fb54e6113b6a8772ee41c3404fb0301ac79604489467e0a9ce1f3e97c24ae" dependencies = [ "either", + "lazy_static", "libc", - "once_cell", ] [[package]] name = "whoami" -version = "1.2.3" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6631b6a2fd59b1841b622e8f1a7ad241ef0a46f2d580464ce8140ac94cbd571" +checksum = "524b58fa5a20a2fb3014dd6358b70e6579692a56ef6fce928834e488f42f65e8" dependencies = [ - "bumpalo", "wasm-bindgen", "web-sys", ] @@ -5995,27 +5942,6 @@ dependencies = [ "windows_x86_64_msvc 0.36.1", ] -[[package]] -name = "windows-sys" -version = "0.42.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7" -dependencies = [ - "windows_aarch64_gnullvm", - "windows_aarch64_msvc 0.42.0", - "windows_i686_gnu 0.42.0", - "windows_i686_msvc 0.42.0", - "windows_x86_64_gnu 0.42.0", - "windows_x86_64_gnullvm", - "windows_x86_64_msvc 0.42.0", -] - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.42.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41d2aa71f6f0cbe00ae5167d90ef3cfe66527d6f613ca78ac8024c3ccab9a19e" - [[package]] name = "windows_aarch64_msvc" version = "0.28.0" @@ -6034,12 +5960,6 @@ version = "0.36.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9bb8c3fd39ade2d67e9874ac4f3db21f0d710bee00fe7cab16949ec184eeaa47" -[[package]] -name = "windows_aarch64_msvc" -version = "0.42.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd0f252f5a35cac83d6311b2e795981f5ee6e67eb1f9a7f64eb4500fbc4dcdb4" - [[package]] name = "windows_i686_gnu" version = "0.28.0" @@ -6058,12 +5978,6 @@ version = "0.36.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "180e6ccf01daf4c426b846dfc66db1fc518f074baa793aa7d9b9aaeffad6a3b6" -[[package]] -name = "windows_i686_gnu" -version = "0.42.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbeae19f6716841636c28d695375df17562ca208b2b7d0dc47635a50ae6c5de7" - [[package]] name = "windows_i686_msvc" version = "0.28.0" @@ -6082,12 +5996,6 @@ version = "0.36.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e2e7917148b2812d1eeafaeb22a97e4813dfa60a3f8f78ebe204bcc88f12f024" -[[package]] -name = "windows_i686_msvc" -version = "0.42.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84c12f65daa39dd2babe6e442988fc329d6243fdce47d7d2d155b8d874862246" - [[package]] name = "windows_x86_64_gnu" version = "0.28.0" @@ -6106,18 +6014,6 @@ version = "0.36.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4dcd171b8776c41b97521e5da127a2d86ad280114807d0b2ab1e462bc764d9e1" -[[package]] -name = "windows_x86_64_gnu" -version = "0.42.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf7b1b21b5362cbc318f686150e5bcea75ecedc74dd157d874d754a2ca44b0ed" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.42.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09d525d2ba30eeb3297665bd434a54297e4170c7f1a44cad4ef58095b4cd2028" - [[package]] name = "windows_x86_64_msvc" version = "0.28.0" @@ -6136,12 +6032,6 @@ version = "0.36.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c811ca4a8c853ef420abd8592ba53ddbbac90410fab6903b3e79972a631f7680" -[[package]] -name = "windows_x86_64_msvc" -version = "0.42.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f40009d85759725a34da6d89a94e63d7bdc50a862acf0dbc7c8e488f1edcb6f5" - [[package]] name = "winit" version = "0.26.1" @@ -6158,7 +6048,7 @@ dependencies = [ "lazy_static", "libc", "log", - "mio 0.8.5", + "mio 0.8.4", "ndk 0.5.0", "ndk-glue 0.5.2", "ndk-sys 0.2.2", @@ -6184,6 +6074,15 @@ dependencies = [ "winapi 0.3.9", ] +[[package]] +name = "winreg" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d107f8c6e916235c4c01cabb3e8acf7bea8ef6a63ca2e7fa0527c049badfc48c" +dependencies = [ + "winapi 0.3.9", +] + [[package]] name = "winreg" version = "0.10.1" @@ -6208,7 +6107,7 @@ version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d7f97e69b28b256ccfb02472c25057132e234aa8368fea3bb0268def564ce1f2" dependencies = [ - "clap 3.2.23", + "clap 3.2.17", ] [[package]] @@ -6298,9 +6197,9 @@ dependencies = [ [[package]] name = "zbus" -version = "3.3.0" +version = "2.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41ce2de393c874ba871292e881bf3c13a0d5eb38170ebab2e50b4c410eaa222b" +checksum = "2d8f1a037b2c4a67d9654dc7bdfa8ff2e80555bbefdd3c1833c1d1b27c963a6b" dependencies = [ "async-broadcast", "async-channel", @@ -6319,11 +6218,12 @@ dependencies = [ "futures-sink", "futures-util", "hex", - "nix 0.24.2", + "lazy_static", + "nix 0.23.1", "once_cell", "ordered-stream", "rand 0.8.5", - "serde 1.0.147", + "serde 1.0.144", "serde_repr", "sha1", "static_assertions", @@ -6337,9 +6237,9 @@ dependencies = [ [[package]] name = "zbus_macros" -version = "3.3.0" +version = "2.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a13d08f5dc6cf725b693cb6ceacd43cd430ec0664a879188f29e7d7dcd98f96d" +checksum = "1f8fb5186d1c87ae88cf234974c240671238b4a679158ad3b94ec465237349a6" dependencies = [ "proc-macro-crate 1.2.1", "proc-macro2", @@ -6354,7 +6254,7 @@ version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "41a408fd8a352695690f53906dc7fd036be924ec51ea5e05666ff42685ed0af5" dependencies = [ - "serde 1.0.147", + "serde 1.0.144", "static_assertions", "zvariant", ] @@ -6390,23 +6290,23 @@ dependencies = [ [[package]] name = "zvariant" -version = "3.7.1" +version = "3.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b794fb7f59af4105697b0449ba31731ee5dbb3e773a17dbdf3d36206ea1b1644" +checksum = "1bd68e4e6432ef19df47d7e90e2e72b5e7e3d778e0ae3baddf12b951265cc758" dependencies = [ "byteorder", "enumflags2", "libc", - "serde 1.0.147", + "serde 1.0.144", "static_assertions", "zvariant_derive", ] [[package]] name = "zvariant_derive" -version = "3.7.1" +version = "3.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd58d4b6c8e26d3dd2149c8c40c6613ef6451b9885ff1296d1ac86c388351a54" +checksum = "08e977eaa3af652f63d479ce50d924254ad76722a6289ec1a1eac3231ca30430" dependencies = [ "proc-macro-crate 1.2.1", "proc-macro2", From 43f9191a6bed50e9038699ccf34610ec37f3f3b0 Mon Sep 17 00:00:00 2001 From: Kingtous Date: Tue, 1 Nov 2022 10:10:40 +0800 Subject: [PATCH 19/27] fix: close previous tab causes reconnection --- .../lib/desktop/pages/remote_tab_page.dart | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/flutter/lib/desktop/pages/remote_tab_page.dart b/flutter/lib/desktop/pages/remote_tab_page.dart index 93008de07..1a2fe557e 100644 --- a/flutter/lib/desktop/pages/remote_tab_page.dart +++ b/flutter/lib/desktop/pages/remote_tab_page.dart @@ -80,14 +80,17 @@ class _ConnectionTabPageState extends State { selectedIcon: selectedIcon, unselectedIcon: unselectedIcon, onTabCloseButton: () => tabController.closeBy(id), - page: Obx(() => RemotePage( - key: ValueKey(id), - id: id, - windowId: windowId(), - tabBarHeight: - fullscreen.isTrue ? 0 : kDesktopRemoteTabBarHeight, - windowBorderWidth: fullscreen.isTrue ? 0 : kWindowBorderWidth, - )))); + page: ObxValue( + (fullscreen) => RemotePage( + id: id, + windowId: windowId(), + tabBarHeight: + fullscreen.isTrue ? 0 : kDesktopRemoteTabBarHeight, + windowBorderWidth: fullscreen.isTrue ? 0 : kWindowBorderWidth, + ), + fullscreen, + key: ValueKey(id), + ))); } else if (call.method == "onDestroy") { tabController.clear(); } else if (call.method == kWindowActionRebuild) { From cdb63bbc71aec76860043caf5f6d5e5e9b53700b Mon Sep 17 00:00:00 2001 From: Kingtous Date: Tue, 1 Nov 2022 10:11:04 +0800 Subject: [PATCH 20/27] opt: add g_autoptr to free event automatically --- flutter/pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flutter/pubspec.yaml b/flutter/pubspec.yaml index eb9c336cc..a100a8d72 100644 --- a/flutter/pubspec.yaml +++ b/flutter/pubspec.yaml @@ -64,7 +64,7 @@ dependencies: desktop_multi_window: git: url: https://github.com/Kingtous/rustdesk_desktop_multi_window - ref: bf278fc8a8ff787e46fa3ab97674373bfaa20f23 + ref: 39a8a5b8aed059a89a1694ed2dffe69e31da2ac1 freezed_annotation: ^2.0.3 tray_manager: git: From 519e9420bd331d8d26ffbaed827a6736f7776755 Mon Sep 17 00:00:00 2001 From: fufesou Date: Tue, 1 Nov 2022 11:03:40 +0800 Subject: [PATCH 21/27] flutter_desktop: fix win crash for uni_link_desktop Signed-off-by: fufesou --- flutter/pubspec.yaml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/flutter/pubspec.yaml b/flutter/pubspec.yaml index a100a8d72..43eba9976 100644 --- a/flutter/pubspec.yaml +++ b/flutter/pubspec.yaml @@ -96,7 +96,10 @@ dependencies: # url: https://github.com/Kingtous/flutter_improved_scrolling # ref: 62f09545149f320616467c306c8c5f71714a18e6 uni_links: ^0.5.1 - uni_links_desktop: ^0.1.3 + uni_links_desktop: + git: + url: https://github.com/fufesou/uni_links_desktop.git + ref: 5be5113d59c753989dbf1106241379e3fd4c9b18 path: ^1.8.1 auto_size_text: ^3.0.0 From b28fa19dfef7b63962f94d1661911a69cf97c948 Mon Sep 17 00:00:00 2001 From: fufesou Date: Tue, 1 Nov 2022 17:01:43 +0800 Subject: [PATCH 22/27] flutter_desktop: remote rxbool of fullscreen Signed-off-by: fufesou --- .../lib/desktop/pages/desktop_tab_page.dart | 9 +- .../desktop/pages/file_manager_tab_page.dart | 8 +- .../desktop/pages/port_forward_tab_page.dart | 8 +- flutter/lib/desktop/pages/remote_page.dart | 14 -- .../lib/desktop/pages/remote_tab_page.dart | 144 ++++++++---------- .../desktop/screen/desktop_remote_screen.dart | 3 - .../lib/desktop/widgets/remote_menubar.dart | 22 +-- .../lib/desktop/widgets/tabbar_widget.dart | 10 +- flutter/lib/main.dart | 5 +- flutter/lib/models/input_model.dart | 5 +- flutter/lib/models/model.dart | 8 +- flutter/lib/models/state_model.dart | 33 ++++ 12 files changed, 128 insertions(+), 141 deletions(-) create mode 100644 flutter/lib/models/state_model.dart diff --git a/flutter/lib/desktop/pages/desktop_tab_page.dart b/flutter/lib/desktop/pages/desktop_tab_page.dart index 8672a1dad..20a433152 100644 --- a/flutter/lib/desktop/pages/desktop_tab_page.dart +++ b/flutter/lib/desktop/pages/desktop_tab_page.dart @@ -6,6 +6,7 @@ import 'package:flutter_hbb/consts.dart'; import 'package:flutter_hbb/desktop/pages/desktop_home_page.dart'; import 'package:flutter_hbb/desktop/pages/desktop_setting_page.dart'; import 'package:flutter_hbb/desktop/widgets/tabbar_widget.dart'; +import 'package:flutter_hbb/models/state_model.dart'; import 'package:get/get.dart'; import 'package:window_manager/window_manager.dart'; @@ -62,8 +63,6 @@ class _DesktopTabPageState extends State { @override Widget build(BuildContext context) { - RxBool fullscreen = false.obs; - Get.put(fullscreen, tag: 'fullscreen'); final tabWidget = Container( child: Overlay(initialEntries: [ OverlayEntry(builder: (context) { @@ -84,9 +83,7 @@ class _DesktopTabPageState extends State { ); return Platform.isMacOS ? tabWidget - : Obx(() => DragToResizeArea( - resizeEdgeSize: - fullscreen.value ? kFullScreenEdgeSize : kWindowEdgeSize, - child: tabWidget)); + : DragToResizeArea( + resizeEdgeSize: stateGlobal.resizeEdgeSize, child: tabWidget); } } diff --git a/flutter/lib/desktop/pages/file_manager_tab_page.dart b/flutter/lib/desktop/pages/file_manager_tab_page.dart index 5dd0629fb..3ce42bba3 100644 --- a/flutter/lib/desktop/pages/file_manager_tab_page.dart +++ b/flutter/lib/desktop/pages/file_manager_tab_page.dart @@ -47,7 +47,7 @@ class _FileManagerTabPageState extends State { rustDeskWinManager.setMethodHandler((call, fromWindowId) async { print( - "[FileTransfer] call ${call.method} with args ${call.arguments} from window ${fromWindowId} to ${windowId()}"); + "[FileTransfer] call ${call.method} with args ${call.arguments} from window $fromWindowId to ${windowId()}"); // for simplify, just replace connectionId if (call.method == "new_file_transfer") { final args = jsonDecode(call.arguments); @@ -86,11 +86,7 @@ class _FileManagerTabPageState extends State { ); return Platform.isMacOS ? tabWidget - : SubWindowDragToResizeArea( - resizeEdgeSize: kWindowEdgeSize, - windowId: windowId(), - child: tabWidget, - ); + : SubWindowDragToResizeArea(child: tabWidget); } void onRemoveId(String id) { diff --git a/flutter/lib/desktop/pages/port_forward_tab_page.dart b/flutter/lib/desktop/pages/port_forward_tab_page.dart index de3ba0d92..73ae5f8f0 100644 --- a/flutter/lib/desktop/pages/port_forward_tab_page.dart +++ b/flutter/lib/desktop/pages/port_forward_tab_page.dart @@ -50,7 +50,7 @@ class _PortForwardTabPageState extends State { rustDeskWinManager.setMethodHandler((call, fromWindowId) async { debugPrint( - "call ${call.method} with args ${call.arguments} from window ${fromWindowId}"); + "call ${call.method} with args ${call.arguments} from window $fromWindowId"); // for simplify, just replace connectionId if (call.method == "new_port_forward") { final args = jsonDecode(call.arguments); @@ -97,11 +97,7 @@ class _PortForwardTabPageState extends State { ); return Platform.isMacOS ? tabWidget - : SubWindowDragToResizeArea( - resizeEdgeSize: kWindowEdgeSize, - windowId: windowId(), - child: tabWidget, - ); + : SubWindowDragToResizeArea(child: tabWidget); } void onRemoveId(String id) { diff --git a/flutter/lib/desktop/pages/remote_page.dart b/flutter/lib/desktop/pages/remote_page.dart index 05a244802..6fdf44dac 100644 --- a/flutter/lib/desktop/pages/remote_page.dart +++ b/flutter/lib/desktop/pages/remote_page.dart @@ -28,15 +28,9 @@ class RemotePage extends StatefulWidget { const RemotePage({ Key? key, required this.id, - required this.windowId, - required this.tabBarHeight, - required this.windowBorderWidth, }) : super(key: key); final String id; - final int windowId; - final double tabBarHeight; - final double windowBorderWidth; @override State createState() => _RemotePageState(); @@ -58,11 +52,6 @@ class _RemotePageState extends State late FFI _ffi; - void _updateTabBarHeight() { - _ffi.canvasModel.tabBarHeight = widget.tabBarHeight; - _ffi.canvasModel.windowBorderWidth = widget.windowBorderWidth; - } - void _initStates(String id) { PrivacyModeState.init(id); BlockInputState.init(id); @@ -91,7 +80,6 @@ class _RemotePageState extends State _ffi = FFI(); - _updateTabBarHeight(); Get.put(_ffi, tag: widget.id); _ffi.start(widget.id); WidgetsBinding.instance.addPostFrameCallback((_) { @@ -164,7 +152,6 @@ class _RemotePageState extends State @override Widget build(BuildContext context) { super.build(context); - _updateTabBarHeight(); return WillPopScope( onWillPop: () async { clientClose(_ffi.dialogManager); @@ -241,7 +228,6 @@ class _RemotePageState extends State paints.add(QualityMonitor(_ffi.qualityMonitorModel)); paints.add(RemoteMenubar( id: widget.id, - windowId: widget.windowId, ffi: _ffi, onEnterOrLeaveImageSetter: (func) => _onEnterOrLeaveImage4Menubar = func, onEnterOrLeaveImageCleaner: () => _onEnterOrLeaveImage4Menubar = null, diff --git a/flutter/lib/desktop/pages/remote_tab_page.dart b/flutter/lib/desktop/pages/remote_tab_page.dart index 1a2fe557e..b6cce5aa3 100644 --- a/flutter/lib/desktop/pages/remote_tab_page.dart +++ b/flutter/lib/desktop/pages/remote_tab_page.dart @@ -34,24 +34,20 @@ class _ConnectionTabPageState extends State { _ConnectionTabPageState(Map params) { RemoteCountState.init(); - final RxBool fullscreen = Get.find(tag: 'fullscreen'); final peerId = params['id']; if (peerId != null) { ConnectionTypeState.init(peerId); tabController.add(TabInfo( - key: peerId, - label: peerId, - selectedIcon: selectedIcon, - unselectedIcon: unselectedIcon, - onTabCloseButton: () => tabController.closeBy(peerId), - page: Obx(() => RemotePage( - key: ValueKey(peerId), - id: peerId, - windowId: windowId(), - tabBarHeight: - fullscreen.isTrue ? 0 : kDesktopRemoteTabBarHeight, - windowBorderWidth: fullscreen.isTrue ? 0 : kWindowBorderWidth, - )))); + key: peerId, + label: peerId, + selectedIcon: selectedIcon, + unselectedIcon: unselectedIcon, + onTabCloseButton: () => tabController.closeBy(peerId), + page: RemotePage( + key: ValueKey(peerId), + id: peerId, + ), + )); _update_remote_count(); } } @@ -66,7 +62,6 @@ class _ConnectionTabPageState extends State { print( "call ${call.method} with args ${call.arguments} from window $fromWindowId"); - final RxBool fullscreen = Get.find(tag: 'fullscreen'); // for simplify, just replace connectionId if (call.method == "new_remote_desktop") { final args = jsonDecode(call.arguments); @@ -75,22 +70,13 @@ class _ConnectionTabPageState extends State { window_on_top(windowId()); ConnectionTypeState.init(id); tabController.add(TabInfo( - key: id, - label: id, - selectedIcon: selectedIcon, - unselectedIcon: unselectedIcon, - onTabCloseButton: () => tabController.closeBy(id), - page: ObxValue( - (fullscreen) => RemotePage( - id: id, - windowId: windowId(), - tabBarHeight: - fullscreen.isTrue ? 0 : kDesktopRemoteTabBarHeight, - windowBorderWidth: fullscreen.isTrue ? 0 : kWindowBorderWidth, - ), - fullscreen, - key: ValueKey(id), - ))); + key: id, + label: id, + selectedIcon: selectedIcon, + unselectedIcon: unselectedIcon, + onTabCloseButton: () => tabController.closeBy(id), + page: RemotePage(key: ValueKey(id), id: id), + )); } else if (call.method == "onDestroy") { tabController.clear(); } else if (call.method == kWindowActionRebuild) { @@ -105,7 +91,6 @@ class _ConnectionTabPageState extends State { @override Widget build(BuildContext context) { - final RxBool fullscreen = Get.find(tag: 'fullscreen'); final tabWidget = Container( decoration: BoxDecoration( border: Border.all( @@ -113,61 +98,52 @@ class _ConnectionTabPageState extends State { width: kWindowBorderWidth)), child: Scaffold( backgroundColor: Theme.of(context).backgroundColor, - body: Obx(() => DesktopTab( - controller: tabController, - showTabBar: fullscreen.isFalse, - onWindowCloseButton: handleWindowCloseButton, - tail: const AddButton().paddingOnly(left: 10), - pageViewBuilder: (pageView) { - WindowController.fromWindowId(windowId()) - .setFullscreen(fullscreen.isTrue); - return pageView; - }, - tabBuilder: (key, icon, label, themeConf) => Obx(() { - final connectionType = ConnectionTypeState.find(key); - if (!connectionType.isValid()) { - return Row( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - icon, - label, - ], - ); - } else { - final msgDirect = translate( - connectionType.direct.value == ConnectionType.strDirect - ? 'Direct Connection' - : 'Relay Connection'); - final msgSecure = translate( - connectionType.secure.value == ConnectionType.strSecure - ? 'Secure Connection' - : 'Insecure Connection'); - return Row( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - icon, - Tooltip( - message: '$msgDirect\n$msgSecure', - child: SvgPicture.asset( - 'assets/${connectionType.secure.value}${connectionType.direct.value}.svg', - width: themeConf.iconSize, - height: themeConf.iconSize, - ).paddingOnly(right: 5), - ), - label, - ], - ); - } - }), - ))), + body: DesktopTab( + controller: tabController, + onWindowCloseButton: handleWindowCloseButton, + tail: const AddButton().paddingOnly(left: 10), + pageViewBuilder: (pageView) => pageView, + tabBuilder: (key, icon, label, themeConf) => Obx(() { + final connectionType = ConnectionTypeState.find(key); + if (!connectionType.isValid()) { + return Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + icon, + label, + ], + ); + } else { + final msgDirect = translate( + connectionType.direct.value == ConnectionType.strDirect + ? 'Direct Connection' + : 'Relay Connection'); + final msgSecure = translate( + connectionType.secure.value == ConnectionType.strSecure + ? 'Secure Connection' + : 'Insecure Connection'); + return Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + icon, + Tooltip( + message: '$msgDirect\n$msgSecure', + child: SvgPicture.asset( + 'assets/${connectionType.secure.value}${connectionType.direct.value}.svg', + width: themeConf.iconSize, + height: themeConf.iconSize, + ).paddingOnly(right: 5), + ), + label, + ], + ); + } + }), + )), ); return Platform.isMacOS ? tabWidget - : Obx(() => SubWindowDragToResizeArea( - resizeEdgeSize: - fullscreen.value ? kFullScreenEdgeSize : kWindowEdgeSize, - windowId: windowId(), - child: tabWidget)); + : SubWindowDragToResizeArea(child: tabWidget); } void onRemoveId(String id) { diff --git a/flutter/lib/desktop/screen/desktop_remote_screen.dart b/flutter/lib/desktop/screen/desktop_remote_screen.dart index 4d045d02b..57886b2f2 100644 --- a/flutter/lib/desktop/screen/desktop_remote_screen.dart +++ b/flutter/lib/desktop/screen/desktop_remote_screen.dart @@ -2,7 +2,6 @@ import 'package:flutter/material.dart'; import 'package:flutter_hbb/common.dart'; import 'package:flutter_hbb/desktop/pages/remote_tab_page.dart'; import 'package:flutter_hbb/desktop/widgets/refresh_wrapper.dart'; -import 'package:get/get.dart'; import 'package:provider/provider.dart'; /// multi-tab desktop remote screen @@ -13,8 +12,6 @@ class DesktopRemoteScreen extends StatelessWidget { @override Widget build(BuildContext context) { - RxBool fullscreen = false.obs; - Get.put(fullscreen, tag: 'fullscreen'); return MultiProvider( providers: [ ChangeNotifierProvider.value(value: gFFI.ffiModel), diff --git a/flutter/lib/desktop/widgets/remote_menubar.dart b/flutter/lib/desktop/widgets/remote_menubar.dart index 86a169b7b..6a9bbeb1a 100644 --- a/flutter/lib/desktop/widgets/remote_menubar.dart +++ b/flutter/lib/desktop/widgets/remote_menubar.dart @@ -6,6 +6,7 @@ import 'dart:ui' as ui; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_hbb/models/chat_model.dart'; +import 'package:flutter_hbb/models/state_model.dart'; import 'package:get/get.dart'; import 'package:provider/provider.dart'; import 'package:rxdart/rxdart.dart' as rxdart; @@ -29,7 +30,6 @@ class _MenubarTheme { class RemoteMenubar extends StatefulWidget { final String id; - final int windowId; final FFI ffi; final Function(Function(bool)) onEnterOrLeaveImageSetter; final Function() onEnterOrLeaveImageCleaner; @@ -37,7 +37,6 @@ class RemoteMenubar extends StatefulWidget { const RemoteMenubar({ Key? key, required this.id, - required this.windowId, required this.ffi, required this.onEnterOrLeaveImageSetter, required this.onEnterOrLeaveImageCleaner, @@ -55,9 +54,12 @@ class _RemoteMenubarState extends State { bool _isCursorOverImage = false; window_size.Screen? _screen; - bool get isFullscreen => Get.find(tag: 'fullscreen').isTrue; + int get windowId => stateGlobal.windowId; + + bool get isFullscreen => stateGlobal.fullscreen; void _setFullscreen(bool v) { - Get.find(tag: 'fullscreen').value = v; + stateGlobal.setFullscreen(v); + setState(() {}); } @override @@ -213,7 +215,7 @@ class _RemoteMenubarState extends State { onPressed: () { _setFullscreen(!isFullscreen); }, - icon: Obx(() => isFullscreen + icon: isFullscreen ? const Icon( Icons.fullscreen_exit, color: _MenubarTheme.commonColor, @@ -221,7 +223,7 @@ class _RemoteMenubarState extends State { : const Icon( Icons.fullscreen, color: _MenubarTheme.commonColor, - )), + ), ); } @@ -920,8 +922,7 @@ class _RemoteMenubarState extends State { _setFullscreen(false); double scale = _screen!.scaleFactor; final wndRect = - await WindowController.fromWindowId(widget.windowId) - .getFrame(); + await WindowController.fromWindowId(windowId).getFrame(); final mediaSize = MediaQueryData.fromWindow(ui.window).size; // On windows, wndRect is equal to GetWindowRect and mediaSize is equal to GetClientRect. // https://stackoverflow.com/a/7561083 @@ -944,8 +945,7 @@ class _RemoteMenubarState extends State { double top = wndRect.top + (wndRect.height - height) / 2; Rect frameRect = _screen!.frame; - final RxBool fullscreen = Get.find(tag: 'fullscreen'); - if (fullscreen.isFalse) { + if (!isFullscreen) { frameRect = _screen!.visibleFrame; } if (left < frameRect.left) { @@ -960,7 +960,7 @@ class _RemoteMenubarState extends State { if ((top + height) > frameRect.bottom) { top = frameRect.bottom - height; } - await WindowController.fromWindowId(widget.windowId) + await WindowController.fromWindowId(windowId) .setFrame(Rect.fromLTWH(left, top, width, height)); } }(); diff --git a/flutter/lib/desktop/widgets/tabbar_widget.dart b/flutter/lib/desktop/widgets/tabbar_widget.dart index 7fae47e69..825ed4dfe 100644 --- a/flutter/lib/desktop/widgets/tabbar_widget.dart +++ b/flutter/lib/desktop/widgets/tabbar_widget.dart @@ -8,7 +8,9 @@ import 'package:flutter/material.dart' hide TabBarTheme; import 'package:flutter_hbb/common.dart'; import 'package:flutter_hbb/consts.dart'; import 'package:flutter_hbb/main.dart'; +import 'package:flutter_hbb/common/shared_state.dart'; import 'package:flutter_hbb/models/platform_model.dart'; +import 'package:flutter_hbb/models/state_model.dart'; import 'package:get/get.dart'; import 'package:get/get_rx/src/rx_workers/utils/debouncer.dart'; import 'package:scroll_pos/scroll_pos.dart'; @@ -179,7 +181,6 @@ typedef LabelGetter = Rx Function(String key); int _lastClickTime = DateTime.now().millisecondsSinceEpoch; class DesktopTab extends StatelessWidget { - final bool showTabBar; final bool showLogo; final bool showTitle; final bool showMinimize; @@ -206,7 +207,6 @@ class DesktopTab extends StatelessWidget { DesktopTab({ Key? key, required this.controller, - this.showTabBar = true, this.showLogo = true, this.showTitle = true, this.showMinimize = true, @@ -229,8 +229,8 @@ class DesktopTab extends StatelessWidget { @override Widget build(BuildContext context) { return Column(children: [ - Offstage( - offstage: !showTabBar, + Obx(() => Offstage( + offstage: !stateGlobal.showTabBar.isTrue, child: SizedBox( height: _kTabBarHeight, child: Column( @@ -245,7 +245,7 @@ class DesktopTab extends StatelessWidget { ), ], ), - )), + ))), Expanded( child: pageViewBuilder != null ? pageViewBuilder!(_buildPageView()) diff --git a/flutter/lib/main.dart b/flutter/lib/main.dart index b3f74f930..8b567e3e2 100644 --- a/flutter/lib/main.dart +++ b/flutter/lib/main.dart @@ -3,6 +3,7 @@ import 'dart:io'; import 'package:desktop_multi_window/desktop_multi_window.dart'; import 'package:flutter/material.dart'; +import 'package:flutter_hbb/models/state_model.dart'; import 'package:flutter_hbb/desktop/pages/desktop_tab_page.dart'; import 'package:flutter_hbb/desktop/pages/server_page.dart'; import 'package:flutter_hbb/desktop/pages/install_page.dart'; @@ -15,7 +16,6 @@ import 'package:flutter_localizations/flutter_localizations.dart'; import 'package:get/get.dart'; import 'package:provider/provider.dart'; import 'package:shared_preferences/shared_preferences.dart'; -import 'package:uni_links_desktop/uni_links_desktop.dart'; import 'package:window_manager/window_manager.dart'; // import 'package:window_manager/window_manager.dart'; @@ -41,11 +41,14 @@ Future main(List args) async { // main window if (args.isNotEmpty && args.first == 'multi_window') { windowId = int.parse(args[1]); + stateGlobal.setWindowId(windowId!); WindowController.fromWindowId(windowId!).showTitleBar(false); final argument = args[2].isEmpty ? {} : jsonDecode(args[2]) as Map; int type = argument['type'] ?? -1; + // to-do: No need to parse window id ? + // Because stateGlobal.windowId is a global value. argument['windowId'] = windowId; WindowType wType = type.windowType; switch (wType) { diff --git a/flutter/lib/models/input_model.dart b/flutter/lib/models/input_model.dart index 21278367f..2469ee0d9 100644 --- a/flutter/lib/models/input_model.dart +++ b/flutter/lib/models/input_model.dart @@ -10,6 +10,7 @@ import '../../models/model.dart'; import '../../models/platform_model.dart'; import '../common.dart'; import '../consts.dart'; +import './state_model.dart'; import 'dart:ui' as ui; /// Mouse button enum. @@ -321,9 +322,7 @@ class InputModel { double x = evt['x']; double y = max(0.0, evt['y']); if (isDesktop) { - final RxBool fullscreen = Get.find(tag: 'fullscreen'); - final tabBarHeight = fullscreen.isTrue ? 0 : kDesktopRemoteTabBarHeight; - y = y - tabBarHeight; + y = y - stateGlobal.tabBarHeight; } final canvasModel = parent.target!.canvasModel; final ffiModel = parent.target!.ffiModel; diff --git a/flutter/lib/models/model.dart b/flutter/lib/models/model.dart index 54d77ca95..ff26296da 100644 --- a/flutter/lib/models/model.dart +++ b/flutter/lib/models/model.dart @@ -14,6 +14,7 @@ import 'package:flutter_hbb/models/chat_model.dart'; import 'package:flutter_hbb/models/file_model.dart'; import 'package:flutter_hbb/models/server_model.dart'; import 'package:flutter_hbb/models/user_model.dart'; +import 'package:flutter_hbb/models/state_model.dart'; import 'package:flutter_hbb/utils/multi_window_manager.dart'; import 'package:shared_preferences/shared_preferences.dart'; import 'package:tuple/tuple.dart'; @@ -483,9 +484,9 @@ class CanvasModel with ChangeNotifier { // image scale double _scale = 1.0; // the tabbar over the image - double tabBarHeight = 0.0; + // double tabBarHeight = 0.0; // the window border's width - double windowBorderWidth = 0.0; + // double windowBorderWidth = 0.0; // remote id String id = ''; // scroll offset x percent @@ -571,6 +572,9 @@ class CanvasModel with ChangeNotifier { return parent.target?.ffiModel.display.height ?? defaultHeight; } + double get windowBorderWidth => stateGlobal.windowBorderWidth; + double get tabBarHeight => stateGlobal.tabBarHeight; + Size get size { final size = MediaQueryData.fromWindow(ui.window).size; return Size(size.width - windowBorderWidth * 2, diff --git a/flutter/lib/models/state_model.dart b/flutter/lib/models/state_model.dart new file mode 100644 index 000000000..6a452d311 --- /dev/null +++ b/flutter/lib/models/state_model.dart @@ -0,0 +1,33 @@ +import 'package:desktop_multi_window/desktop_multi_window.dart'; +import 'package:get/get.dart'; + +import '../consts.dart'; + +class StateGlobal { + int _windowId = -1; + bool _fullscreen = false; + final RxBool _showTabBar = true.obs; + + int get windowId => _windowId; + bool get fullscreen => _fullscreen; + double get tabBarHeight => fullscreen ? 0 : kDesktopRemoteTabBarHeight; + double get windowBorderWidth => fullscreen ? 0 : kWindowBorderWidth; + RxBool get showTabBar => _showTabBar; + double get resizeEdgeSize => + fullscreen ? kFullScreenEdgeSize : kWindowEdgeSize; + + setWindowId(int id) => _windowId = id; + setFullscreen(bool v) { + if (_fullscreen != v) { + _fullscreen = v; + _showTabBar.value = !_fullscreen; + WindowController.fromWindowId(windowId).setFullscreen(_fullscreen); + } + } + + StateGlobal._(); + + static final StateGlobal instance = StateGlobal._(); +} + +final stateGlobal = StateGlobal.instance; From 44309d861bc4bdaa2825ff4c34ccf78c41e11358 Mon Sep 17 00:00:00 2001 From: fufesou Date: Tue, 1 Nov 2022 17:46:11 +0800 Subject: [PATCH 23/27] remove unused imports Signed-off-by: fufesou --- flutter/lib/common.dart | 1 - flutter/lib/desktop/pages/desktop_setting_page.dart | 1 - flutter/lib/desktop/widgets/tabbar_widget.dart | 1 - flutter/lib/main.dart | 1 - 4 files changed, 4 deletions(-) diff --git a/flutter/lib/common.dart b/flutter/lib/common.dart index 8a2792a2b..752de582c 100644 --- a/flutter/lib/common.dart +++ b/flutter/lib/common.dart @@ -2,7 +2,6 @@ import 'dart:async'; import 'dart:convert'; import 'dart:io'; import 'dart:typed_data'; -import 'dart:ui'; import 'package:back_button_interceptor/back_button_interceptor.dart'; import 'package:desktop_multi_window/desktop_multi_window.dart'; diff --git a/flutter/lib/desktop/pages/desktop_setting_page.dart b/flutter/lib/desktop/pages/desktop_setting_page.dart index 709d4deda..b063c3c15 100644 --- a/flutter/lib/desktop/pages/desktop_setting_page.dart +++ b/flutter/lib/desktop/pages/desktop_setting_page.dart @@ -5,7 +5,6 @@ import 'package:file_picker/file_picker.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_hbb/common.dart'; -import 'package:flutter_hbb/consts.dart'; import 'package:flutter_hbb/desktop/pages/desktop_home_page.dart'; import 'package:flutter_hbb/desktop/pages/desktop_tab_page.dart'; import 'package:flutter_hbb/models/platform_model.dart'; diff --git a/flutter/lib/desktop/widgets/tabbar_widget.dart b/flutter/lib/desktop/widgets/tabbar_widget.dart index 825ed4dfe..0b28bca41 100644 --- a/flutter/lib/desktop/widgets/tabbar_widget.dart +++ b/flutter/lib/desktop/widgets/tabbar_widget.dart @@ -8,7 +8,6 @@ import 'package:flutter/material.dart' hide TabBarTheme; import 'package:flutter_hbb/common.dart'; import 'package:flutter_hbb/consts.dart'; import 'package:flutter_hbb/main.dart'; -import 'package:flutter_hbb/common/shared_state.dart'; import 'package:flutter_hbb/models/platform_model.dart'; import 'package:flutter_hbb/models/state_model.dart'; import 'package:get/get.dart'; diff --git a/flutter/lib/main.dart b/flutter/lib/main.dart index 8b567e3e2..df314396f 100644 --- a/flutter/lib/main.dart +++ b/flutter/lib/main.dart @@ -1,5 +1,4 @@ import 'dart:convert'; -import 'dart:io'; import 'package:desktop_multi_window/desktop_multi_window.dart'; import 'package:flutter/material.dart'; From 352384646db9c38e07467aeae482d7d5a1fbded4 Mon Sep 17 00:00:00 2001 From: fufesou Date: Tue, 1 Nov 2022 18:16:52 +0800 Subject: [PATCH 24/27] fix build Signed-off-by: fufesou --- flutter/lib/desktop/pages/desktop_tab_page.dart | 8 ++++++-- flutter/lib/desktop/pages/file_manager_tab_page.dart | 7 ++++++- flutter/lib/desktop/pages/port_forward_tab_page.dart | 7 ++++++- flutter/lib/desktop/pages/remote_tab_page.dart | 7 ++++++- flutter/lib/models/state_model.dart | 6 ++++-- 5 files changed, 28 insertions(+), 7 deletions(-) diff --git a/flutter/lib/desktop/pages/desktop_tab_page.dart b/flutter/lib/desktop/pages/desktop_tab_page.dart index 20a433152..794dd1c08 100644 --- a/flutter/lib/desktop/pages/desktop_tab_page.dart +++ b/flutter/lib/desktop/pages/desktop_tab_page.dart @@ -83,7 +83,11 @@ class _DesktopTabPageState extends State { ); return Platform.isMacOS ? tabWidget - : DragToResizeArea( - resizeEdgeSize: stateGlobal.resizeEdgeSize, child: tabWidget); + : Obx( + () => DragToResizeArea( + resizeEdgeSize: stateGlobal.resizeEdgeSize.value, + child: tabWidget, + ), + ); } } diff --git a/flutter/lib/desktop/pages/file_manager_tab_page.dart b/flutter/lib/desktop/pages/file_manager_tab_page.dart index 3ce42bba3..66a14bd37 100644 --- a/flutter/lib/desktop/pages/file_manager_tab_page.dart +++ b/flutter/lib/desktop/pages/file_manager_tab_page.dart @@ -5,6 +5,7 @@ import 'package:desktop_multi_window/desktop_multi_window.dart'; import 'package:flutter/material.dart'; import 'package:flutter_hbb/common.dart'; import 'package:flutter_hbb/consts.dart'; +import 'package:flutter_hbb/models/state_model.dart'; import 'package:flutter_hbb/desktop/pages/file_manager_page.dart'; import 'package:flutter_hbb/desktop/widgets/tabbar_widget.dart'; import 'package:flutter_hbb/utils/multi_window_manager.dart'; @@ -86,7 +87,11 @@ class _FileManagerTabPageState extends State { ); return Platform.isMacOS ? tabWidget - : SubWindowDragToResizeArea(child: tabWidget); + : SubWindowDragToResizeArea( + child: tabWidget, + resizeEdgeSize: stateGlobal.resizeEdgeSize.value, + windowId: stateGlobal.windowId, + ); } void onRemoveId(String id) { diff --git a/flutter/lib/desktop/pages/port_forward_tab_page.dart b/flutter/lib/desktop/pages/port_forward_tab_page.dart index 73ae5f8f0..c0eea86e6 100644 --- a/flutter/lib/desktop/pages/port_forward_tab_page.dart +++ b/flutter/lib/desktop/pages/port_forward_tab_page.dart @@ -5,6 +5,7 @@ import 'package:desktop_multi_window/desktop_multi_window.dart'; import 'package:flutter/material.dart'; import 'package:flutter_hbb/common.dart'; import 'package:flutter_hbb/consts.dart'; +import 'package:flutter_hbb/models/state_model.dart'; import 'package:flutter_hbb/desktop/pages/port_forward_page.dart'; import 'package:flutter_hbb/desktop/widgets/tabbar_widget.dart'; import 'package:flutter_hbb/utils/multi_window_manager.dart'; @@ -97,7 +98,11 @@ class _PortForwardTabPageState extends State { ); return Platform.isMacOS ? tabWidget - : SubWindowDragToResizeArea(child: tabWidget); + : SubWindowDragToResizeArea( + child: tabWidget, + resizeEdgeSize: stateGlobal.resizeEdgeSize.value, + windowId: stateGlobal.windowId, + ); } void onRemoveId(String id) { diff --git a/flutter/lib/desktop/pages/remote_tab_page.dart b/flutter/lib/desktop/pages/remote_tab_page.dart index b6cce5aa3..29253d537 100644 --- a/flutter/lib/desktop/pages/remote_tab_page.dart +++ b/flutter/lib/desktop/pages/remote_tab_page.dart @@ -6,6 +6,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_hbb/common.dart'; import 'package:flutter_hbb/common/shared_state.dart'; import 'package:flutter_hbb/consts.dart'; +import 'package:flutter_hbb/models/state_model.dart'; import 'package:flutter_hbb/desktop/pages/remote_page.dart'; import 'package:flutter_hbb/desktop/widgets/tabbar_widget.dart'; import 'package:flutter_hbb/utils/multi_window_manager.dart'; @@ -143,7 +144,11 @@ class _ConnectionTabPageState extends State { ); return Platform.isMacOS ? tabWidget - : SubWindowDragToResizeArea(child: tabWidget); + : SubWindowDragToResizeArea( + child: tabWidget, + resizeEdgeSize: stateGlobal.resizeEdgeSize.value, + windowId: stateGlobal.windowId, + ); } void onRemoveId(String id) { diff --git a/flutter/lib/models/state_model.dart b/flutter/lib/models/state_model.dart index 6a452d311..f6e3820b9 100644 --- a/flutter/lib/models/state_model.dart +++ b/flutter/lib/models/state_model.dart @@ -7,20 +7,22 @@ class StateGlobal { int _windowId = -1; bool _fullscreen = false; final RxBool _showTabBar = true.obs; + final RxDouble _resizeEdgeSize = 8.0.obs; int get windowId => _windowId; bool get fullscreen => _fullscreen; double get tabBarHeight => fullscreen ? 0 : kDesktopRemoteTabBarHeight; double get windowBorderWidth => fullscreen ? 0 : kWindowBorderWidth; RxBool get showTabBar => _showTabBar; - double get resizeEdgeSize => - fullscreen ? kFullScreenEdgeSize : kWindowEdgeSize; + RxDouble get resizeEdgeSize => _resizeEdgeSize; setWindowId(int id) => _windowId = id; setFullscreen(bool v) { if (_fullscreen != v) { _fullscreen = v; _showTabBar.value = !_fullscreen; + _resizeEdgeSize.value = + fullscreen ? kFullScreenEdgeSize : kWindowEdgeSize; WindowController.fromWindowId(windowId).setFullscreen(_fullscreen); } } From b63f1b33a8e87d7aed8891e9cfa302ef43724e4e Mon Sep 17 00:00:00 2001 From: fufesou Date: Tue, 1 Nov 2022 19:56:46 +0800 Subject: [PATCH 25/27] flutter_desktop: fix minmax on first click Signed-off-by: fufesou --- flutter/lib/desktop/widgets/tabbar_widget.dart | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/flutter/lib/desktop/widgets/tabbar_widget.dart b/flutter/lib/desktop/widgets/tabbar_widget.dart index 7fae47e69..bf7c743cb 100644 --- a/flutter/lib/desktop/widgets/tabbar_widget.dart +++ b/flutter/lib/desktop/widgets/tabbar_widget.dart @@ -176,7 +176,8 @@ typedef TabBuilder = Widget Function( typedef LabelGetter = Rx Function(String key); /// [_lastClickTime], help to handle double click -int _lastClickTime = DateTime.now().millisecondsSinceEpoch; +int _lastClickTime = + DateTime.now().millisecondsSinceEpoch - kDesktopDoubleClickTimeMilli - 1000; class DesktopTab extends StatelessWidget { final bool showTabBar; From 54db4951d6cac68045175ce385b941b07434ad54 Mon Sep 17 00:00:00 2001 From: Oguzhan Ozturk Date: Tue, 1 Nov 2022 16:03:47 +0300 Subject: [PATCH 26/27] Fix for builds where locale can't be set easily On local github workflow runners setting system locale can be a bit cumbersome. This minor patch should be mostly harmless. --- build.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.py b/build.py index 920832909..fffb22180 100755 --- a/build.py +++ b/build.py @@ -17,7 +17,7 @@ flutter_win_target_dir = 'flutter/build/windows/runner/Release/' def get_version(): - with open("Cargo.toml") as fh: + with open("Cargo.toml", encoding="utf-8") as fh: for line in fh: if line.startswith("version"): return line.replace("version", "").replace("=", "").replace('"', '').strip() From b2f7e7ece5a4812bbc0b0713a85158b81352d423 Mon Sep 17 00:00:00 2001 From: Saverio Miroddi Date: Tue, 1 Nov 2022 15:08:21 +0100 Subject: [PATCH 27/27] hbb_common: Fix CONFIG locks unintentionally not acquired Variables defined as `_` only are released immediately; see compile error: error: non-binding let on a synchronization lock --> libs/hbb_common/src/config.rs:798:13 | 798 | let _ = CONFIG.read().unwrap(); // for lock | ^ ^^^^^^^^^^^^^^^^^^^^^^ this binding will immediately drop the value assigned to it | | | this lock is not assigned to a binding and is immediately dropped | = note: `#[deny(let_underscore_lock)]` on by default By appending a phony suffix to the variable name, the lock stays in scope. --- libs/hbb_common/src/config.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/libs/hbb_common/src/config.rs b/libs/hbb_common/src/config.rs index ad0585549..9eb9cd369 100644 --- a/libs/hbb_common/src/config.rs +++ b/libs/hbb_common/src/config.rs @@ -795,7 +795,7 @@ const PEERS: &str = "peers"; impl PeerConfig { pub fn load(id: &str) -> PeerConfig { - let _ = CONFIG.read().unwrap(); // for lock + let _lock = CONFIG.read().unwrap(); match confy::load_path(&Self::path(id)) { Ok(config) => { let mut config: PeerConfig = config; @@ -827,7 +827,7 @@ impl PeerConfig { } pub fn store(&self, id: &str) { - let _ = CONFIG.read().unwrap(); // for lock + let _lock = CONFIG.read().unwrap(); let mut config = self.clone(); config.password = encrypt_vec_or_original(&config.password, PASSWORD_ENC_VERSION); config @@ -999,7 +999,7 @@ pub struct LanPeers { impl LanPeers { pub fn load() -> LanPeers { - let _ = CONFIG.read().unwrap(); // for lock + let _lock = CONFIG.read().unwrap(); match confy::load_path(&Config::file_("_lan_peers")) { Ok(peers) => peers, Err(err) => {