aboutsummaryrefslogtreecommitdiffstats
path: root/src/cmd
diff options
context:
space:
mode:
Diffstat (limited to 'src/cmd')
-rw-r--r--src/cmd/play.rs11
-rw-r--r--src/cmd/record.rs11
-rw-r--r--src/cmd/server.rs13
-rw-r--r--src/cmd/stream.rs18
-rw-r--r--src/cmd/watch.rs18
5 files changed, 44 insertions, 27 deletions
diff --git a/src/cmd/play.rs b/src/cmd/play.rs
index c99a697..22bd220 100644
--- a/src/cmd/play.rs
+++ b/src/cmd/play.rs
@@ -56,6 +56,7 @@ enum FileState {
filename: String,
},
Opening {
+ filename: String,
fut: tokio::fs::file::OpenFuture<String>,
},
Open {
@@ -100,13 +101,17 @@ impl PlaySession {
match &mut self.file {
FileState::Closed { filename } => {
self.file = FileState::Opening {
+ filename: filename.to_string(),
fut: tokio::fs::File::open(filename.to_string()),
};
Ok(crate::component_future::Async::DidWork)
}
- FileState::Opening { fut } => {
- let file =
- try_ready!(fut.poll().context(crate::error::OpenFile));
+ FileState::Opening { filename, fut } => {
+ let file = try_ready!(fut.poll().with_context(|| {
+ crate::error::OpenFile {
+ filename: filename.to_string(),
+ }
+ }));
let file = crate::ttyrec::File::new(file);
self.file = FileState::Open { file };
Ok(crate::component_future::Async::DidWork)
diff --git a/src/cmd/record.rs b/src/cmd/record.rs
index 7481f92..4a1ab6e 100644
--- a/src/cmd/record.rs
+++ b/src/cmd/record.rs
@@ -97,6 +97,7 @@ enum FileState {
filename: String,
},
Opening {
+ filename: String,
fut: tokio::fs::file::CreateFuture<String>,
},
Open {
@@ -166,13 +167,17 @@ impl RecordSession {
match &mut self.file {
FileState::Closed { filename } => {
self.file = FileState::Opening {
+ filename: filename.to_string(),
fut: tokio::fs::File::create(filename.to_string()),
};
Ok(crate::component_future::Async::DidWork)
}
- FileState::Opening { fut } => {
- let file =
- try_ready!(fut.poll().context(crate::error::OpenFile));
+ FileState::Opening { filename, fut } => {
+ let file = try_ready!(fut.poll().with_context(|| {
+ crate::error::OpenFile {
+ filename: filename.clone(),
+ }
+ }));
let mut file = crate::ttyrec::File::new(file);
file.write_frame(self.buffer.contents())?;
self.file = FileState::Open { file };
diff --git a/src/cmd/server.rs b/src/cmd/server.rs
index 134cb9d..f6fabfa 100644
--- a/src/cmd/server.rs
+++ b/src/cmd/server.rs
@@ -165,7 +165,7 @@ fn create_server(
)> {
let (mut sock_w, sock_r) = tokio::sync::mpsc::channel(100);
let listener = tokio::net::TcpListener::bind(&address)
- .context(crate::error::Bind)?;
+ .context(crate::error::Bind { address })?;
let acceptor = listener
.incoming()
.context(crate::error::Acceptor)
@@ -197,13 +197,16 @@ fn create_server_tls(
)> {
let (mut sock_w, sock_r) = tokio::sync::mpsc::channel(100);
let listener = tokio::net::TcpListener::bind(&address)
- .context(crate::error::Bind)?;
+ .context(crate::error::Bind { address })?;
- let mut file = std::fs::File::open(tls_identity_file)
- .context(crate::error::OpenIdentityFile)?;
+ let mut file = std::fs::File::open(tls_identity_file).context(
+ crate::error::OpenFileSync {
+ filename: tls_identity_file,
+ },
+ )?;
let mut identity = vec![];
file.read_to_end(&mut identity)
- .context(crate::error::ReadIdentityFile)?;
+ .context(crate::error::ReadFileSync)?;
let identity = native_tls::Identity::from_pkcs12(&identity, "")
.context(crate::error::ParseIdentity)?;
let acceptor = native_tls::TlsAcceptor::new(identity)
diff --git a/src/cmd/stream.rs b/src/cmd/stream.rs
index 95c1191..11634d3 100644
--- a/src/cmd/stream.rs
+++ b/src/cmd/stream.rs
@@ -95,13 +95,15 @@ impl crate::config::Config for Config {
let connector = connector.clone();
let connector = tokio_tls::TlsConnector::from(connector);
let stream = tokio::net::tcp::TcpStream::connect(&address);
- Box::new(stream.context(crate::error::Connect).and_then(
- move |stream| {
- connector
- .connect(&host, stream)
- .context(crate::error::ConnectTls)
- },
- ))
+ Box::new(
+ stream
+ .context(crate::error::Connect { address })
+ .and_then(move |stream| {
+ connector
+ .connect(&host, stream)
+ .context(crate::error::ConnectTls { host })
+ }),
+ )
});
Box::new(StreamSession::new(
&self.command,
@@ -114,7 +116,7 @@ impl crate::config::Config for Config {
let connect: crate::client::Connector<_> = Box::new(move || {
Box::new(
tokio::net::tcp::TcpStream::connect(&address)
- .context(crate::error::Connect),
+ .context(crate::error::Connect { address }),
)
});
Box::new(StreamSession::new(
diff --git a/src/cmd/watch.rs b/src/cmd/watch.rs
index 853e5ea..4666abc 100644
--- a/src/cmd/watch.rs
+++ b/src/cmd/watch.rs
@@ -77,13 +77,15 @@ impl crate::config::Config for Config {
let connector = tokio_tls::TlsConnector::from(connector);
let stream =
tokio::net::tcp::TcpStream::connect(&address);
- Box::new(stream.context(crate::error::Connect).and_then(
- move |stream| {
- connector
- .connect(&host, stream)
- .context(crate::error::ConnectTls)
- },
- ))
+ Box::new(
+ stream
+ .context(crate::error::Connect { address })
+ .and_then(move |stream| {
+ connector.connect(&host, stream).context(
+ crate::error::ConnectTls { host },
+ )
+ }),
+ )
})
});
Box::new(WatchSession::new(make_connector, &auth))
@@ -94,7 +96,7 @@ impl crate::config::Config for Config {
Box::new(move || {
Box::new(
tokio::net::tcp::TcpStream::connect(&address)
- .context(crate::error::Connect),
+ .context(crate::error::Connect { address }),
)
})
});