summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatt Johnston <matt@ucc.asn.au>2015-03-01 23:26:42 +0800
committerMatt Johnston <matt@ucc.asn.au>2015-03-01 23:26:42 +0800
commitc68f337ee2f97bf55434db28e3df113615b0b7d8 (patch)
treec37896b3c40bf52396906739587d116c76ac84cf
parent922cc534fce553b2c1ed39c13d32046fd8703042 (diff)
downloaddropbear-nocircbuffer.tar.gz
reword comment for claritynocircbuffer
-rw-r--r--common-session.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/common-session.c b/common-session.c
index be8f776..164dc85 100644
--- a/common-session.c
+++ b/common-session.c
@@ -152,8 +152,10 @@ void session_loop(void(*loophandler)()) {
FD_ZERO(&readfd);
dropbear_assert(ses.payload == NULL);
- /* during initial setup we flush out the KEXINIT packet before
- * attempting to read the remote version string, which might block */
+ /* We delay reading from the input socket during initial setup until
+ after we have written out our initial KEXINIT packet (empty writequeue).
+ This means our initial packet can be in-flight while we're doing a blocking
+ read for the remote ident */
if (ses.sock_in != -1 && (ses.remoteident || isempty(&ses.writequeue))) {
FD_SET(ses.sock_in, &readfd);
}