aboutsummaryrefslogtreecommitdiffstats
path: root/src/error.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/error.rs')
-rw-r--r--src/error.rs139
1 files changed, 95 insertions, 44 deletions
diff --git a/src/error.rs b/src/error.rs
index 4166cc4..7a3f226 100644
--- a/src/error.rs
+++ b/src/error.rs
@@ -4,19 +4,32 @@ pub enum Error {
#[snafu(display("failed to accept: {}", source))]
Acceptor { source: tokio::io::Error },
- #[snafu(display("auth type not allowed: {:?}", ty))]
+ #[snafu(display("auth type {:?} not allowed", ty))]
AuthTypeNotAllowed { ty: crate::protocol::AuthType },
- #[snafu(display("failed to bind: {}", source))]
- Bind { source: tokio::io::Error },
+ #[snafu(display("failed to bind to {}: {}", address, source))]
+ Bind {
+ address: std::net::SocketAddr,
+ source: tokio::io::Error,
+ },
- #[snafu(display("failed to connect: {}", source))]
- Connect { source: std::io::Error },
+ #[snafu(display("failed to connect to {}: {}", address, source))]
+ Connect {
+ address: std::net::SocketAddr,
+ source: std::io::Error,
+ },
- #[snafu(display("failed to connect: {}", source))]
- ConnectTls { source: native_tls::Error },
+ #[snafu(display(
+ "failed to make tls connection to {}: {}",
+ host,
+ source
+ ))]
+ ConnectTls {
+ host: String,
+ source: native_tls::Error,
+ },
- #[snafu(display("couldn't find username"))]
+ #[snafu(display("couldn't determine the current username"))]
CouldntFindUsername,
#[snafu(display("failed to create tls acceptor: {}", source))]
@@ -25,11 +38,17 @@ pub enum Error {
#[snafu(display("failed to create tls connector: {}", source))]
CreateConnector { source: native_tls::Error },
- #[snafu(display("failed to create directory: {}", source))]
- CreateDir { source: std::io::Error },
+ #[snafu(display("failed to create directory {}: {}", filename, source))]
+ CreateDir {
+ filename: String,
+ source: std::io::Error,
+ },
- #[snafu(display("failed to create file: {}", source))]
- CreateFile { source: tokio::io::Error },
+ #[snafu(display("failed to create file {}: {}", filename, source))]
+ CreateFile {
+ filename: String,
+ source: tokio::io::Error,
+ },
#[snafu(display("eof"))]
EOF,
@@ -46,37 +65,40 @@ pub enum Error {
// >
},
- #[snafu(display("failed to parse string: {:?}", data))]
+ #[snafu(display(
+ "failed to parse string {:?}: unexpected trailing data",
+ data
+ ))]
ExtraMessageData { data: Vec<u8> },
#[snafu(display("failed to write to stdout: {}", source))]
FlushTerminal { source: tokio::io::Error },
- #[snafu(display("failed to flush writes to terminal: {}", source))]
+ #[snafu(display("failed to write to stdout: {}", source))]
FlushTerminalSync { source: std::io::Error },
#[snafu(display(
"failed to get recurse center profile data: {}",
source
))]
- GetProfile { source: reqwest::Error },
+ GetRecurseCenterProfile { source: reqwest::Error },
#[snafu(display("failed to get terminal size: {}", source))]
GetTerminalSize { source: crossterm::ErrorKind },
- #[snafu(display("failed to find any resolved addresses"))]
+ #[snafu(display("failed to find any resolvable addresses"))]
HasResolvedAddr,
- #[snafu(display("invalid auth type: {}", ty))]
+ #[snafu(display("invalid auth type {}", ty))]
InvalidAuthType { ty: u8 },
- #[snafu(display("invalid auth type: {}", ty))]
+ #[snafu(display("invalid auth type {}", ty))]
InvalidAuthTypeStr { ty: String },
- #[snafu(display("invalid message type: {}", ty))]
+ #[snafu(display("invalid message type {}", ty))]
InvalidMessageType { ty: u8 },
- #[snafu(display("invalid watch id: {}", id))]
+ #[snafu(display("invalid watch id {}", id))]
InvalidWatchId { id: String },
#[snafu(display(
@@ -97,16 +119,22 @@ pub enum Error {
MissingArgv,
#[snafu(display(
- "detected argv path was not a valid filename: {}",
+ "detected argv path {} was not a valid filename",
path
))]
NotAFileName { path: String },
- #[snafu(display("failed to open file: {}", source))]
- OpenFile { source: tokio::io::Error },
+ #[snafu(display("failed to open file {}: {}", filename, source))]
+ OpenFile {
+ filename: String,
+ source: tokio::io::Error,
+ },
- #[snafu(display("failed to open identity file: {}", source))]
- OpenIdentityFile { source: std::io::Error },
+ #[snafu(display("failed to open file {}: {}", filename, source))]
+ OpenFileSync {
+ filename: String,
+ source: std::io::Error,
+ },
#[snafu(display("failed to open link in browser: {}", source))]
OpenLink { source: std::io::Error },
@@ -123,7 +151,7 @@ pub enum Error {
#[snafu(display("{}", source))]
ParseArgs { source: clap::Error },
- #[snafu(display("failed to parse buffer size '{}': {}", input, source))]
+ #[snafu(display("failed to parse buffer size {}: {}", input, source))]
ParseBufferSize {
input: String,
source: std::num::ParseIntError,
@@ -151,32 +179,46 @@ pub enum Error {
#[snafu(display("failed to parse identity file: {}", source))]
ParseIdentity { source: native_tls::Error },
- #[snafu(display("failed to parse int: {}", source))]
+ #[snafu(display(
+ "failed to parse int from buffer {:?}: {}",
+ buf,
+ source
+ ))]
ParseInt {
+ buf: Vec<u8>,
source: std::array::TryFromSliceError,
},
#[snafu(display("failed to parse response json: {}", source))]
ParseJson { source: reqwest::Error },
- #[snafu(display("failed to parse address: {}", source))]
- ParsePort { source: std::num::ParseIntError },
-
#[snafu(display(
- "failed to parse read timeout '{}': {}",
- input,
+ "failed to parse port {} from address: {}",
+ string,
source
))]
+ ParsePort {
+ string: String,
+ source: std::num::ParseIntError,
+ },
+
+ #[snafu(display("failed to parse read timeout {}: {}", input, source))]
ParseReadTimeout {
input: String,
source: std::num::ParseIntError,
},
- #[snafu(display("failed to parse string: {}", source))]
- ParseString { source: std::string::FromUtf8Error },
+ #[snafu(display("failed to parse string {:?}: {}", string, source))]
+ ParseString {
+ string: Vec<u8>,
+ source: std::string::FromUtf8Error,
+ },
- #[snafu(display("failed to parse url: {}", source))]
- ParseUrl { source: url::ParseError },
+ #[snafu(display("failed to parse url {}: {}", url, source))]
+ ParseUrl {
+ url: String,
+ source: url::ParseError,
+ },
#[snafu(display("failed to poll for process exit: {}", source))]
ProcessExitPoll { source: std::io::Error },
@@ -197,8 +239,8 @@ pub enum Error {
#[snafu(display("failed to read from file: {}", source))]
ReadFile { source: tokio::io::Error },
- #[snafu(display("failed to read identity file: {}", source))]
- ReadIdentityFile { source: std::io::Error },
+ #[snafu(display("failed to read from file: {}", source))]
+ ReadFileSync { source: std::io::Error },
#[snafu(display("{}", source))]
ReadMessageWithTimeout {
@@ -207,10 +249,10 @@ pub enum Error {
},
#[snafu(display("failed to read packet: {}", source))]
- ReadPacket { source: std::io::Error },
+ ReadPacketSync { source: std::io::Error },
#[snafu(display("failed to read packet: {}", source))]
- ReadPacketAsync { source: tokio::io::Error },
+ ReadPacket { source: tokio::io::Error },
#[snafu(display("failed to read from pty: {}", source))]
ReadPty { source: std::io::Error },
@@ -224,8 +266,17 @@ pub enum Error {
#[snafu(display("failed to resize pty: {}", source))]
ResizePty { source: std::io::Error },
- #[snafu(display("failed to resolve address: {}", source))]
- ResolveAddress { source: std::io::Error },
+ #[snafu(display(
+ "failed to resolve address {}:{}: {}",
+ host,
+ port,
+ source
+ ))]
+ ResolveAddress {
+ host: String,
+ port: u16,
+ source: std::io::Error,
+ },
#[snafu(display(
"failed to send oauth result back to main thread: {}",
@@ -328,10 +379,10 @@ pub enum Error {
},
#[snafu(display("failed to write packet: {}", source))]
- WritePacket { source: std::io::Error },
+ WritePacketSync { source: std::io::Error },
#[snafu(display("failed to write packet: {}", source))]
- WritePacketAsync { source: tokio::io::Error },
+ WritePacket { source: tokio::io::Error },
#[snafu(display("failed to write to pty: {}", source))]
WritePty { source: std::io::Error },