mirror of
https://github.com/feschber/lan-mouse.git
synced 2026-04-09 00:01:28 +03:00
rework cli frontend
This commit is contained in:
@@ -57,8 +57,16 @@ impl AsyncFrontendRequestWriter {
|
||||
}
|
||||
|
||||
pub async fn connect_async(
|
||||
timeout: Option<Duration>,
|
||||
) -> Result<(AsyncFrontendEventReader, AsyncFrontendRequestWriter), ConnectionError> {
|
||||
let stream = wait_for_service().await?;
|
||||
let stream = if let Some(duration) = timeout {
|
||||
tokio::select! {
|
||||
s = wait_for_service() => s?,
|
||||
_ = tokio::time::sleep(duration) => return Err(ConnectionError::Timeout),
|
||||
}
|
||||
} else {
|
||||
wait_for_service().await?
|
||||
};
|
||||
#[cfg(unix)]
|
||||
let (rx, tx): (ReadHalf<UnixStream>, WriteHalf<UnixStream>) = tokio::io::split(stream);
|
||||
#[cfg(windows)]
|
||||
|
||||
@@ -30,6 +30,8 @@ pub enum ConnectionError {
|
||||
SocketPath(#[from] SocketPathError),
|
||||
#[error(transparent)]
|
||||
Io(#[from] io::Error),
|
||||
#[error("connection timed out")]
|
||||
Timeout,
|
||||
}
|
||||
|
||||
#[derive(Debug, Error)]
|
||||
@@ -237,6 +239,8 @@ pub enum FrontendRequest {
|
||||
AuthorizeKey(String, String),
|
||||
/// remove fingerprint (fingerprint)
|
||||
RemoveAuthorizedKey(String),
|
||||
/// change the hook command
|
||||
UpdateEnterHook(u64, Option<String>),
|
||||
}
|
||||
|
||||
#[derive(Clone, Copy, PartialEq, Eq, Debug, Default, Serialize, Deserialize)]
|
||||
|
||||
Reference in New Issue
Block a user