mirror of
https://github.com/feschber/lan-mouse.git
synced 2026-05-15 06:06:07 -06:00
update dependencies (#302)
* update dependencies * update windows * clippy: inline format args * update flake * update core-graphics * fix poll after completion error * fix ashpd?!
This commit is contained in:
parent
9f10ebcbd2
commit
eb1dcbddb0
19 changed files with 1170 additions and 1033 deletions
2055
Cargo.lock
generated
2055
Cargo.lock
generated
File diff suppressed because it is too large
Load diff
10
Cargo.toml
10
Cargo.toml
|
|
@ -24,7 +24,7 @@ strip = true
|
|||
panic = "abort"
|
||||
|
||||
[build-dependencies]
|
||||
shadow-rs = "0.38.0"
|
||||
shadow-rs = "1.2.0"
|
||||
|
||||
[dependencies]
|
||||
input-event = { path = "input-event", version = "0.3.0" }
|
||||
|
|
@ -34,9 +34,9 @@ lan-mouse-cli = { path = "lan-mouse-cli", version = "0.2.0" }
|
|||
lan-mouse-gtk = { path = "lan-mouse-gtk", version = "0.2.0", optional = true }
|
||||
lan-mouse-ipc = { path = "lan-mouse-ipc", version = "0.2.0" }
|
||||
lan-mouse-proto = { path = "lan-mouse-proto", version = "0.2.0" }
|
||||
shadow-rs = { version = "0.38.0", features = ["metadata"] }
|
||||
shadow-rs = { version = "1.2.0", features = ["metadata"] }
|
||||
|
||||
hickory-resolver = "0.24.1"
|
||||
hickory-resolver = "0.25.2"
|
||||
toml = "0.8"
|
||||
serde = { version = "1.0", features = ["derive"] }
|
||||
log = "0.4.20"
|
||||
|
|
@ -58,8 +58,8 @@ slab = "0.4.9"
|
|||
thiserror = "2.0.0"
|
||||
tokio-util = "0.7.11"
|
||||
local-channel = "0.1.5"
|
||||
webrtc-dtls = { version = "0.10.0", features = ["pem"] }
|
||||
webrtc-util = "0.9.0"
|
||||
webrtc-dtls = { version = "0.12.0", features = ["pem"] }
|
||||
webrtc-util = "0.11.0"
|
||||
rustls = { version = "0.23.12", default-features = false, features = [
|
||||
"std",
|
||||
"ring",
|
||||
|
|
|
|||
12
flake.lock
generated
12
flake.lock
generated
|
|
@ -2,11 +2,11 @@
|
|||
"nodes": {
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1740560979,
|
||||
"narHash": "sha256-Vr3Qi346M+8CjedtbyUevIGDZW8LcA1fTG0ugPY/Hic=",
|
||||
"lastModified": 1752687322,
|
||||
"narHash": "sha256-RKwfXA4OZROjBTQAl9WOZQFm7L8Bo93FQwSJpAiSRvo=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "5135c59491985879812717f4c9fea69604e7f26f",
|
||||
"rev": "6e987485eb2c77e5dcc5af4e3c70843711ef9251",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -29,11 +29,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1740623427,
|
||||
"narHash": "sha256-3SdPQrZoa4odlScFDUHd4CUPQ/R1gtH4Mq9u8CBiK8M=",
|
||||
"lastModified": 1752806774,
|
||||
"narHash": "sha256-4cHeoR2roN7d/3J6gT+l6o7J2hTrBIUiCwVdDNMeXzE=",
|
||||
"owner": "oxalica",
|
||||
"repo": "rust-overlay",
|
||||
"rev": "d342e8b5fd88421ff982f383c853f0fc78a847ab",
|
||||
"rev": "3c90219b3ba1c9790c45a078eae121de48a39c55",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
|
|||
|
|
@ -40,21 +40,21 @@ wayland-protocols-wlr = { version = "0.3.1", features = [
|
|||
"client",
|
||||
], optional = true }
|
||||
x11 = { version = "2.21.0", features = ["xlib", "xtest"], optional = true }
|
||||
ashpd = { version = "0.10", default-features = false, features = [
|
||||
ashpd = { version = "0.11.0", default-features = false, features = [
|
||||
"tokio",
|
||||
], optional = true }
|
||||
reis = { version = "0.4", features = ["tokio"], optional = true }
|
||||
reis = { version = "0.5.0", features = ["tokio"], optional = true }
|
||||
|
||||
[target.'cfg(target_os="macos")'.dependencies]
|
||||
core-graphics = { version = "0.24.0", features = ["highsierra"] }
|
||||
core-graphics = { version = "0.25.0", features = ["highsierra"] }
|
||||
core-foundation = "0.10.0"
|
||||
core-foundation-sys = "0.8.6"
|
||||
libc = "0.2.155"
|
||||
keycode = "0.4.0"
|
||||
keycode = "1.0.0"
|
||||
bitflags = "2.6.0"
|
||||
|
||||
[target.'cfg(windows)'.dependencies]
|
||||
windows = { version = "0.58.0", features = [
|
||||
windows = { version = "0.61.2", features = [
|
||||
"Win32_System_LibraryLoader",
|
||||
"Win32_System_Threading",
|
||||
"Win32_Foundation",
|
||||
|
|
|
|||
|
|
@ -535,7 +535,7 @@ impl State {
|
|||
fn update_windows(&mut self) {
|
||||
log::info!("active outputs: ");
|
||||
for output in self.outputs.iter().filter(|o| o.info.is_some()) {
|
||||
log::info!(" * {}", output);
|
||||
log::info!(" * {output}");
|
||||
}
|
||||
|
||||
self.active_windows.clear();
|
||||
|
|
@ -582,17 +582,17 @@ impl Inner {
|
|||
match self.queue.dispatch_pending(&mut self.state) {
|
||||
Ok(_) => {}
|
||||
Err(DispatchError::Backend(WaylandError::Io(e))) => {
|
||||
log::error!("Wayland Error: {}", e);
|
||||
log::error!("Wayland Error: {e}");
|
||||
}
|
||||
Err(DispatchError::Backend(e)) => {
|
||||
panic!("backend error: {}", e);
|
||||
panic!("backend error: {e}");
|
||||
}
|
||||
Err(DispatchError::BadMessage {
|
||||
sender_id,
|
||||
interface,
|
||||
opcode,
|
||||
}) => {
|
||||
panic!("bad message {}, {} , {}", sender_id, interface, opcode);
|
||||
panic!("bad message {sender_id}, {interface} , {opcode}");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -974,7 +974,7 @@ impl Dispatch<ZxdgOutputV1, u32> for State {
|
|||
.find(|o| o.global.name == *name)
|
||||
.expect("output");
|
||||
|
||||
log::debug!("xdg_output {name} - {:?}", event);
|
||||
log::debug!("xdg_output {name} - {event:?}");
|
||||
match event {
|
||||
zxdg_output_v1::Event::LogicalPosition { x, y } => {
|
||||
output.pending_info.position = (x, y);
|
||||
|
|
@ -1010,7 +1010,7 @@ impl Dispatch<WlOutput, u32> for State {
|
|||
_conn: &Connection,
|
||||
_qhandle: &QueueHandle<Self>,
|
||||
) {
|
||||
log::debug!("wl_output {name} - {:?}", event);
|
||||
log::debug!("wl_output {name} - {event:?}");
|
||||
if let wl_output::Event::Done = event {
|
||||
state.update_output_info(*name);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -79,7 +79,7 @@ impl Display for Position {
|
|||
Position::Top => "top",
|
||||
Position::Bottom => "bottom",
|
||||
};
|
||||
write!(f, "{}", pos)
|
||||
write!(f, "{pos}")
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -587,9 +587,13 @@ impl LanMouseInputCapture for LibeiInputCapture<'_> {
|
|||
self.cancellation_token.cancel();
|
||||
let task = &mut self.capture_task;
|
||||
log::debug!("waiting for capture to terminate...");
|
||||
let res = task.await.expect("libei task panic");
|
||||
log::debug!("done!");
|
||||
let res = if !task.is_finished() {
|
||||
task.await.expect("libei task panic")
|
||||
} else {
|
||||
Ok(())
|
||||
};
|
||||
self.terminated = true;
|
||||
log::debug!("done!");
|
||||
res
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ use core_graphics::base::{kCGErrorSuccess, CGError};
|
|||
use core_graphics::display::{CGDisplay, CGPoint};
|
||||
use core_graphics::event::{
|
||||
CGEvent, CGEventFlags, CGEventTap, CGEventTapLocation, CGEventTapOptions, CGEventTapPlacement,
|
||||
CGEventTapProxy, CGEventType, EventField,
|
||||
CGEventTapProxy, CGEventType, CallbackResult, EventField,
|
||||
};
|
||||
use core_graphics::event_source::{CGEventSource, CGEventSourceStateID};
|
||||
use futures_core::Stream;
|
||||
|
|
@ -394,11 +394,11 @@ fn create_event_tap<'a>(
|
|||
// may already be closed when the InputCapture instance is dropped.
|
||||
let _ = event_tx.blocking_send((pos, *e));
|
||||
});
|
||||
// Returning None should stop the event from being processed
|
||||
// Returning Drop should stop the event from being processed
|
||||
// but core fundation still returns the event
|
||||
cg_ev.set_type(CGEventType::Null);
|
||||
}
|
||||
Some(cg_ev.to_owned())
|
||||
CallbackResult::Replace(cg_ev.to_owned())
|
||||
};
|
||||
|
||||
let tap = CGEventTap::new(
|
||||
|
|
@ -411,7 +411,7 @@ fn create_event_tap<'a>(
|
|||
.map_err(|_| MacosCaptureCreationError::EventTapCreation)?;
|
||||
|
||||
let tap_source: CFRunLoopSource = tap
|
||||
.mach_port
|
||||
.mach_port()
|
||||
.create_runloop_source(0)
|
||||
.expect("Failed creating loop source");
|
||||
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ use std::thread;
|
|||
use tokio::sync::mpsc::error::TrySendError;
|
||||
use tokio::sync::mpsc::Sender;
|
||||
use windows::core::{w, PCWSTR};
|
||||
use windows::Win32::Foundation::{FALSE, HINSTANCE, HWND, LPARAM, LRESULT, RECT, WPARAM};
|
||||
use windows::Win32::Foundation::{FALSE, HWND, LPARAM, LRESULT, RECT, WPARAM};
|
||||
use windows::Win32::Graphics::Gdi::{
|
||||
EnumDisplayDevicesW, EnumDisplaySettingsW, DEVMODEW, DISPLAY_DEVICEW,
|
||||
DISPLAY_DEVICE_ATTACHED_TO_DESKTOP, ENUM_CURRENT_SETTINGS,
|
||||
|
|
@ -19,12 +19,12 @@ use windows::Win32::System::Threading::GetCurrentThreadId;
|
|||
|
||||
use windows::Win32::UI::WindowsAndMessaging::{
|
||||
CallNextHookEx, CreateWindowExW, DispatchMessageW, GetMessageW, PostThreadMessageW,
|
||||
RegisterClassW, SetWindowsHookExW, TranslateMessage, EDD_GET_DEVICE_INTERFACE_NAME, HHOOK,
|
||||
HMENU, HOOKPROC, KBDLLHOOKSTRUCT, LLKHF_EXTENDED, MSG, MSLLHOOKSTRUCT, WH_KEYBOARD_LL,
|
||||
WH_MOUSE_LL, WINDOW_STYLE, WM_DISPLAYCHANGE, WM_KEYDOWN, WM_KEYUP, WM_LBUTTONDOWN,
|
||||
WM_LBUTTONUP, WM_MBUTTONDOWN, WM_MBUTTONUP, WM_MOUSEHWHEEL, WM_MOUSEMOVE, WM_MOUSEWHEEL,
|
||||
WM_RBUTTONDOWN, WM_RBUTTONUP, WM_SYSKEYDOWN, WM_SYSKEYUP, WM_USER, WM_XBUTTONDOWN,
|
||||
WM_XBUTTONUP, WNDCLASSW, WNDPROC,
|
||||
RegisterClassW, SetWindowsHookExW, TranslateMessage, EDD_GET_DEVICE_INTERFACE_NAME, HOOKPROC,
|
||||
KBDLLHOOKSTRUCT, LLKHF_EXTENDED, MSG, MSLLHOOKSTRUCT, WH_KEYBOARD_LL, WH_MOUSE_LL,
|
||||
WINDOW_STYLE, WM_DISPLAYCHANGE, WM_KEYDOWN, WM_KEYUP, WM_LBUTTONDOWN, WM_LBUTTONUP,
|
||||
WM_MBUTTONDOWN, WM_MBUTTONUP, WM_MOUSEHWHEEL, WM_MOUSEMOVE, WM_MOUSEWHEEL, WM_RBUTTONDOWN,
|
||||
WM_RBUTTONUP, WM_SYSKEYDOWN, WM_SYSKEYUP, WM_USER, WM_XBUTTONDOWN, WM_XBUTTONUP, WNDCLASSW,
|
||||
WNDPROC,
|
||||
};
|
||||
|
||||
use input_event::{
|
||||
|
|
@ -128,7 +128,7 @@ thread_local! {
|
|||
fn get_msg() -> Option<MSG> {
|
||||
unsafe {
|
||||
let mut msg = std::mem::zeroed();
|
||||
let ret = GetMessageW(addr_of_mut!(msg), HWND::default(), 0, 0);
|
||||
let ret = GetMessageW(addr_of_mut!(msg), None, 0, 0);
|
||||
match ret.0 {
|
||||
0 => None,
|
||||
x if x > 0 => Some(msg),
|
||||
|
|
@ -176,14 +176,15 @@ fn start_routine(
|
|||
|
||||
/* register hooks */
|
||||
unsafe {
|
||||
let _ = SetWindowsHookExW(WH_MOUSE_LL, mouse_proc, HINSTANCE::default(), 0).unwrap();
|
||||
let _ = SetWindowsHookExW(WH_KEYBOARD_LL, kybrd_proc, HINSTANCE::default(), 0).unwrap();
|
||||
let _ = SetWindowsHookExW(WH_MOUSE_LL, mouse_proc, None, 0).unwrap();
|
||||
let _ = SetWindowsHookExW(WH_KEYBOARD_LL, kybrd_proc, None, 0).unwrap();
|
||||
}
|
||||
|
||||
let instance = unsafe { GetModuleHandleW(None).unwrap() };
|
||||
let instance = instance.into();
|
||||
let window_class: WNDCLASSW = WNDCLASSW {
|
||||
lpfnWndProc: window_proc,
|
||||
hInstance: instance.into(),
|
||||
hInstance: instance,
|
||||
lpszClassName: w!("lan-mouse-message-window-class"),
|
||||
..Default::default()
|
||||
};
|
||||
|
|
@ -213,9 +214,9 @@ fn start_routine(
|
|||
0,
|
||||
0,
|
||||
0,
|
||||
HWND::default(),
|
||||
HMENU::default(),
|
||||
instance,
|
||||
None,
|
||||
None,
|
||||
Some(instance),
|
||||
None,
|
||||
)
|
||||
.expect("CreateWindowExW");
|
||||
|
|
@ -312,7 +313,7 @@ unsafe extern "system" fn mouse_proc(ncode: i32, wparam: WPARAM, lparam: LPARAM)
|
|||
|
||||
/* no client was active */
|
||||
if !active {
|
||||
return CallNextHookEx(HHOOK::default(), ncode, wparam, lparam);
|
||||
return CallNextHookEx(None, ncode, wparam, lparam);
|
||||
}
|
||||
|
||||
/* get active client if any */
|
||||
|
|
@ -337,7 +338,7 @@ unsafe extern "system" fn mouse_proc(ncode: i32, wparam: WPARAM, lparam: LPARAM)
|
|||
unsafe extern "system" fn kybrd_proc(ncode: i32, wparam: WPARAM, lparam: LPARAM) -> LRESULT {
|
||||
/* get active client if any */
|
||||
let Some(client) = ACTIVE_CLIENT.get() else {
|
||||
return CallNextHookEx(HHOOK::default(), ncode, wparam, lparam);
|
||||
return CallNextHookEx(None, ncode, wparam, lparam);
|
||||
};
|
||||
|
||||
/* convert to key event */
|
||||
|
|
@ -388,7 +389,10 @@ fn enumerate_displays(display_rects: &mut Vec<RECT>) {
|
|||
if ret == FALSE {
|
||||
break;
|
||||
}
|
||||
if device.StateFlags & DISPLAY_DEVICE_ATTACHED_TO_DESKTOP != 0 {
|
||||
if device
|
||||
.StateFlags
|
||||
.contains(DISPLAY_DEVICE_ATTACHED_TO_DESKTOP)
|
||||
{
|
||||
devices.push(device.DeviceName);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -39,18 +39,18 @@ wayland-protocols-misc = { version = "0.3.1", features = [
|
|||
"client",
|
||||
], optional = true }
|
||||
x11 = { version = "2.21.0", features = ["xlib", "xtest"], optional = true }
|
||||
ashpd = { version = "0.10", default-features = false, features = [
|
||||
ashpd = { version = "0.11.0", default-features = false, features = [
|
||||
"tokio",
|
||||
], optional = true }
|
||||
reis = { version = "0.4", features = ["tokio"], optional = true }
|
||||
reis = { version = "0.5.0", features = ["tokio"], optional = true }
|
||||
|
||||
[target.'cfg(target_os="macos")'.dependencies]
|
||||
bitflags = "2.6.0"
|
||||
core-graphics = { version = "0.24.0", features = ["highsierra"] }
|
||||
keycode = "0.4.0"
|
||||
core-graphics = { version = "0.25.0", features = ["highsierra"] }
|
||||
keycode = "1.0.0"
|
||||
|
||||
[target.'cfg(windows)'.dependencies]
|
||||
windows = { version = "0.58.0", features = [
|
||||
windows = { version = "0.61.2", features = [
|
||||
"Win32_System_LibraryLoader",
|
||||
"Win32_System_Threading",
|
||||
"Win32_Foundation",
|
||||
|
|
|
|||
|
|
@ -161,12 +161,12 @@ fn get_display_at_point(x: CGFloat, y: CGFloat) -> Option<CGDirectDisplayID> {
|
|||
};
|
||||
|
||||
if error != 0 {
|
||||
log::warn!("error getting displays at point ({}, {}): {}", x, y, error);
|
||||
log::warn!("error getting displays at point ({x}, {y}): {error}");
|
||||
return Option::None;
|
||||
}
|
||||
|
||||
if display_count == 0 {
|
||||
log::debug!("no displays found at point ({}, {})", x, y);
|
||||
log::debug!("no displays found at point ({x}, {y})");
|
||||
return Option::None;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -163,13 +163,13 @@ impl Emulation for WlrootsEmulation {
|
|||
async fn create(&mut self, handle: EmulationHandle) {
|
||||
self.state.add_client(handle);
|
||||
if let Err(e) = self.queue.flush() {
|
||||
log::error!("{}", e);
|
||||
log::error!("{e}");
|
||||
}
|
||||
}
|
||||
async fn destroy(&mut self, handle: EmulationHandle) {
|
||||
self.state.destroy_client(handle);
|
||||
if let Err(e) = self.queue.flush() {
|
||||
log::error!("{}", e);
|
||||
log::error!("{e}");
|
||||
}
|
||||
}
|
||||
async fn terminate(&mut self) {
|
||||
|
|
@ -221,7 +221,7 @@ impl VirtualInput {
|
|||
self.keyboard.key(time, key, state as u32);
|
||||
if let Ok(mut mods) = self.modifiers.lock() {
|
||||
if mods.update_by_key_event(key, state) {
|
||||
log::trace!("Key triggers modifier change: {:?}", mods);
|
||||
log::trace!("Key triggers modifier change: {mods:?}");
|
||||
self.keyboard.modifiers(
|
||||
mods.mask_pressed().bits(),
|
||||
0,
|
||||
|
|
@ -330,7 +330,7 @@ impl XMods {
|
|||
|
||||
fn update_by_key_event(&mut self, key: u32, state: u8) -> bool {
|
||||
if let Ok(key) = scancode::Linux::try_from(key) {
|
||||
log::trace!("Attempting to process modifier from: {:#?}", key);
|
||||
log::trace!("Attempting to process modifier from: {key:#?}");
|
||||
let pressed_mask = match key {
|
||||
scancode::Linux::KeyLeftShift | scancode::Linux::KeyRightShift => XMods::ShiftMask,
|
||||
scancode::Linux::KeyLeftCtrl | scancode::Linux::KeyRightCtrl => XMods::ControlMask,
|
||||
|
|
@ -348,7 +348,7 @@ impl XMods {
|
|||
|
||||
// unchanged
|
||||
if pressed_mask.is_empty() && locked_mask.is_empty() {
|
||||
log::trace!("{:#?} is not a modifier key", key);
|
||||
log::trace!("{key:#?} is not a modifier key");
|
||||
return false;
|
||||
}
|
||||
match state {
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ serde = { version = "1.0", features = ["derive"] }
|
|||
thiserror = "2.0.0"
|
||||
|
||||
[target.'cfg(all(unix, not(target_os="macos")))'.dependencies]
|
||||
reis = { version = "0.4", optional = true }
|
||||
reis = { version = "0.5.0", optional = true }
|
||||
|
||||
[features]
|
||||
default = ["libei"]
|
||||
|
|
|
|||
|
|
@ -112,8 +112,8 @@ impl Display for KeyboardEvent {
|
|||
impl Display for Event {
|
||||
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
|
||||
match self {
|
||||
Event::Pointer(p) => write!(f, "{}", p),
|
||||
Event::Keyboard(k) => write!(f, "{}", k),
|
||||
Event::Pointer(p) => write!(f, "{p}"),
|
||||
Event::Keyboard(k) => write!(f, "{k}"),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -324,7 +324,7 @@ impl Window {
|
|||
|
||||
pub(super) fn update_client_config(&self, handle: ClientHandle, client: ClientConfig) {
|
||||
let Some(row) = self.row_for_handle(handle) else {
|
||||
log::warn!("could not find row for handle {}", handle);
|
||||
log::warn!("could not find row for handle {handle}");
|
||||
return;
|
||||
};
|
||||
row.set_hostname(client.hostname);
|
||||
|
|
@ -334,11 +334,11 @@ impl Window {
|
|||
|
||||
pub(super) fn update_client_state(&self, handle: ClientHandle, state: ClientState) {
|
||||
let Some(row) = self.row_for_handle(handle) else {
|
||||
log::warn!("could not find row for handle {}", handle);
|
||||
log::warn!("could not find row for handle {handle}");
|
||||
return;
|
||||
};
|
||||
let Some(client_object) = self.client_object_for_handle(handle) else {
|
||||
log::warn!("could not find row for handle {}", handle);
|
||||
log::warn!("could not find row for handle {handle}");
|
||||
return;
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -45,7 +45,7 @@ impl AsyncFrontendListener {
|
|||
let (socket_path, listener) = {
|
||||
let socket_path = crate::default_socket_path()?;
|
||||
|
||||
log::debug!("remove socket: {:?}", socket_path);
|
||||
log::debug!("remove socket: {socket_path:?}");
|
||||
if socket_path.exists() {
|
||||
// try to connect to see if some other instance
|
||||
// of lan-mouse is already running
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ use std::{collections::HashMap, net::IpAddr};
|
|||
use local_channel::mpsc::{channel, Receiver, Sender};
|
||||
use tokio::task::{spawn_local, JoinHandle};
|
||||
|
||||
use hickory_resolver::{error::ResolveError, TokioAsyncResolver};
|
||||
use hickory_resolver::{ResolveError, TokioResolver};
|
||||
use tokio_util::sync::CancellationToken;
|
||||
|
||||
use lan_mouse_ipc::ClientHandle;
|
||||
|
|
@ -26,7 +26,7 @@ pub(crate) enum DnsEvent {
|
|||
}
|
||||
|
||||
struct DnsTask {
|
||||
resolver: TokioAsyncResolver,
|
||||
resolver: TokioResolver,
|
||||
request_rx: Receiver<DnsRequest>,
|
||||
event_tx: Sender<DnsEvent>,
|
||||
cancellation_token: CancellationToken,
|
||||
|
|
@ -35,7 +35,7 @@ struct DnsTask {
|
|||
|
||||
impl DnsResolver {
|
||||
pub(crate) fn new() -> Result<Self, ResolveError> {
|
||||
let resolver = TokioAsyncResolver::tokio_from_system_conf()?;
|
||||
let resolver = TokioResolver::builder_tokio()?.build();
|
||||
let (request_tx, request_rx) = channel();
|
||||
let (event_tx, event_rx) = channel();
|
||||
let cancellation_token = CancellationToken::new();
|
||||
|
|
|
|||
|
|
@ -264,7 +264,7 @@ async fn read_loop(
|
|||
}
|
||||
}
|
||||
}
|
||||
log::info!("dtls client disconnected {:?}", addr);
|
||||
log::info!("dtls client disconnected {addr:?}");
|
||||
let mut conns = conns.lock().await;
|
||||
let index = conns
|
||||
.iter()
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ use crate::{
|
|||
listen::{LanMouseListener, ListenerCreationError},
|
||||
};
|
||||
use futures::StreamExt;
|
||||
use hickory_resolver::error::ResolveError;
|
||||
use hickory_resolver::ResolveError;
|
||||
use lan_mouse_ipc::{
|
||||
AsyncFrontendListener, ClientConfig, ClientHandle, ClientState, FrontendEvent, FrontendRequest,
|
||||
IpcError, IpcListenerCreationError, Position, Status,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue