summaryrefslogtreecommitdiff
path: root/netio.c
diff options
context:
space:
mode:
authorMatt Johnston <matt@ucc.asn.au>2015-08-03 20:53:37 +0800
committerMatt Johnston <matt@ucc.asn.au>2015-08-03 20:53:37 +0800
commita5a64f926a68536fa7dc4d37345533eac31dfa18 (patch)
tree9ed049c0c8e9e5ef09335d4322a4f46bdc13f838 /netio.c
parentc94f6936d342211039962adfd6dee38d3513fd73 (diff)
downloaddropbear-a5a64f926a68536fa7dc4d37345533eac31dfa18.tar.gz
Don't try to send data on first ack packet of 3way handshake.
Cisco SSH on 15.4(3)M2 or similar can't handle it.
Diffstat (limited to 'netio.c')
-rw-r--r--netio.c21
1 files changed, 0 insertions, 21 deletions
diff --git a/netio.c b/netio.c
index 74eea7b..a8006a7 100644
--- a/netio.c
+++ b/netio.c
@@ -21,23 +21,6 @@ struct dropbear_progress_connection {
char* errstring;
};
-#if defined(__linux__) && defined(TCP_DEFER_ACCEPT)
-static void set_piggyback_ack(int sock) {
- /* Undocumented Linux feature - set TCP_DEFER_ACCEPT and data will be piggybacked
- on the 3rd packet (ack) of the TCP handshake. Saves a IP packet.
- http://thread.gmane.org/gmane.linux.network/224627/focus=224727
- "Piggyback the final ACK of the three way TCP connection establishment with the data" */
- int val = 1;
- /* No error checking, this is opportunistic */
- int err = setsockopt(sock, IPPROTO_TCP, TCP_DEFER_ACCEPT, (void*)&val, sizeof(val));
- if (err)
- {
- TRACE(("Failed setsockopt TCP_DEFER_ACCEPT: %s", strerror(errno)))
- }
-}
-#endif
-
-
/* Deallocate a progress connection. Removes from the pending list if iter!=NULL.
Does not close sockets */
static void remove_connect(struct dropbear_progress_connection *c, m_list_elem *iter) {
@@ -87,10 +70,6 @@ static void connect_try_next(struct dropbear_progress_connection *c) {
set_sock_nodelay(c->sock);
setnonblocking(c->sock);
-#if defined(__linux__) && defined(TCP_DEFER_ACCEPT)
- set_piggyback_ack(c->sock);
-#endif
-
#ifdef DROPBEAR_CLIENT_TCP_FAST_OPEN
fastopen = (c->writequeue != NULL);