diff options
author | Timo Weingärtner <timo@tiwe.de> | 2016-08-23 22:03:43 +0200 |
---|---|---|
committer | Timo Weingärtner <timo@tiwe.de> | 2016-08-23 22:03:43 +0200 |
commit | dc582af6e7a1e645402f333e200b8ff718de1b48 (patch) | |
tree | bfddd471c2065316072cf821637bf3d522cfe84f /ssh-agent-filter.C | |
parent | af7125b71663fafb61fb2e097a34695bab895b01 (diff) | |
download | ssh-agent-filter-dc582af6e7a1e645402f333e200b8ff718de1b48.tar.gz |
clear O_NONBLOCK on client sockets
on *BSD client sockets inherit flags from the listening socket
Diffstat (limited to 'ssh-agent-filter.C')
-rw-r--r-- | ssh-agent-filter.C | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/ssh-agent-filter.C b/ssh-agent-filter.C index 1dcbb5c..30aaf9a 100644 --- a/ssh-agent-filter.C +++ b/ssh-agent-filter.C @@ -497,6 +497,9 @@ rfc4251::string handle_request (rfc4251::string const & r) { } 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); |