diff options
author | Matt Johnston <matt@ucc.asn.au> | 2015-08-03 20:53:37 +0800 |
---|---|---|
committer | Matt Johnston <matt@ucc.asn.au> | 2015-08-03 20:53:37 +0800 |
commit | 0ac33d22f70a41e4249f62fed844faf97c2fe0c1 (patch) | |
tree | 1eee1f68a55d1c4bacbbf80da9e90d26e1e4e889 /netio.c | |
parent | c7bd5ac77d2ee4ea88a9f153eecd5c5fcbe3a14a (diff) |
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.c | 21 |
1 files changed, 0 insertions, 21 deletions
@@ -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); |