From 2a90c1ca7ed415811b2e063e7c62e15cdc7b2a4b Mon Sep 17 00:00:00 2001
From: Matt Johnston <matt@ucc.asn.au>
Date: Thu, 26 Feb 2015 23:43:12 +0800
Subject: [PATCH] ignore any sendmsg() errors

--HG--
branch : fastopen
---
 netio.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/netio.c b/netio.c
index 5b97e4d2..d1a05f3a 100644
--- a/netio.c
+++ b/netio.c
@@ -103,8 +103,10 @@ static void connect_try_next(struct dropbear_progress_connection *c) {
 			message.msg_iov = packet_queue_to_iovec(c->writequeue, &iovlen);
 			message.msg_iovlen = iovlen;
 			res = sendmsg(c->sock, &message, MSG_FASTOPEN);
-			if (res < 0 && errno == EOPNOTSUPP) {
-				TRACE(("Fastopen not supported"));
+			if (res < 0) {
+				/* Not entirely sure which kind of errors are normal - 2.6.32 seems to 
+				return EPIPE for any (nonblocking?) sendmsg(). just fall back */
+				TRACE(("sendmsg tcp_fastopen failed, falling back. %s", strerror(errno)));
 				/* No kernel MSG_FASTOPEN support. Fall back below */
 				fastopen = 0;
 				/* Set to NULL to avoid trying again */
-- 
GitLab