aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTimo Weingärtner <timo@tiwe.de>2018-07-18 20:44:55 +0200
committerTimo Weingärtner <timo@tiwe.de>2018-07-18 20:44:55 +0200
commit663113f49fd46875f4dcd3a453f6de3f07c57330 (patch)
treedfe25c17bb5beb034101d303e8c7f33d52409e63
parent101f47c7bf721a4104321075f93bdf723fc44bc6 (diff)
parentcc7b883c67b78021c13df453abeb35d8d9055c35 (diff)
downloadssh-agent-filter-663113f49fd46875f4dcd3a453f6de3f07c57330.tar.gz
Merge tag '0.5.1' into debian
0.5.1
-rw-r--r--changelog16
-rw-r--r--ssh-agent-filter.C10
-rw-r--r--version.h2
3 files changed, 23 insertions, 5 deletions
diff --git a/changelog b/changelog
index 5ae2897..aaf1a24 100644
--- a/changelog
+++ b/changelog
@@ -1,3 +1,17 @@
+commit ddea0ce92bad7e218be9ac46f76ff2c34fd43a15
+Author: Timo Weingärtner <timo@tiwe.de>
+Date: 2018-05-10 17:50:04 +0200
+
+ Partially revert "(re)unify client iostreams"
+
+ This partially reverts commit a42c87e6a761a56ebc63cd7728fa2126b2e8805f.
+
+commit d731f74d7ccf56874953c395bcfcc93efdd70f00 (tag: 0.5)
+Author: Timo Weingärtner <timo@tiwe.de>
+Date: 2018-01-08 21:10:08 +0100
+
+ release 0.5
+
commit 3b9460a74b51119e15e0d57dafb2e0c66326890a
Author: Timo Weingärtner <timo@tiwe.de>
Date: 2018-01-08 21:08:09 +0100
@@ -30,7 +44,7 @@ Date: 2016-10-11 16:42:02 +0200
fixup! afssh: use realpath instead of readlink -f, with fallback
-commit 2f994963899ca8e039dd0aa38884693a9928e116 (tiwe/master)
+commit 2f994963899ca8e039dd0aa38884693a9928e116
Author: Timo Weingärtner <timo@tiwe.de>
Date: 2016-10-11 14:25:39 +0200
diff --git a/ssh-agent-filter.C b/ssh-agent-filter.C
index 74b15ab..307be1f 100644
--- a/ssh-agent-filter.C
+++ b/ssh-agent-filter.C
@@ -567,11 +567,15 @@ void handle_client (int const sock) try {
if (fcntl(sock, F_SETFL, fcntl(sock, F_GETFL) & ~O_NONBLOCK))
throw system_error(errno, system_category(), "fcntl");
- io::stream<io::file_descriptor> client{sock, io::close_handle};
- arm(client);
+ // we could use only one streambuf and iostream but when
+ // switching from read to write an lseek call is made that
+ // fails with ESPIPE and causes an exception
+ io::stream<io::file_descriptor_source> client_in{sock, io::close_handle};
+ io::stream<io::file_descriptor_sink> client_out{sock, io::never_close_handle};
+ arm(client_out);
for (;;)
- client << handle_request(rfc4251::string{client}) << flush;
+ client_out << handle_request(rfc4251::string{client_in}) << flush;
} catch (...) {
}
diff --git a/version.h b/version.h
index 2268da0..2655862 100644
--- a/version.h
+++ b/version.h
@@ -1 +1 @@
-#define SSH_AGENT_FILTER_VERSION "ssh-agent-filter 0.5"
+#define SSH_AGENT_FILTER_VERSION "ssh-agent-filter 0.5.1"