* ...
* ...
* ...
* Update README.md
* Update README.md
* TCP Fast Open support
* TCP Fast Open support
* TCP Fast Open CONNECT_IN_PROGRESS
* TCP Fast Open support
* TCP Fast Open support
* TCP Fast Open support
* TCP Fast Open support
* TCP Fast Open support via conf
* Cross-platform support for TCP Fast Open
* Cross-platform support for TCP Fast Open
* Enable SO_KEEPALIVE client side
* TCP Fast Open is not supported on this platform
* TCP Fast Open support
* Update tunnel.c
* It's from my forked repo, so please ignore any changes in README.md
* Fix trailing whitespace
* Fix#1376
* Removed STAGE_PARSE and the 5-year-old hacky "fake" reply;
* SOCKS5 server returns more error code than 0x07;
* Ensure `ip` is initialized in all cases; (I guess security guys don't want to audit the local part)
* Code more readable magically.
Don't call ares_timeout since it does a search through all queries.
Instead, schedule a timer that fires after 1 second. If no activity happened
for over 1 second do ares timeout processing, otherwise reschedule the timer
to fire after the remaining timeout.
This also completely avoids the ev_timer_again calls for each single fd event.
C-ares creates up to two sockets per nameserver. With up to three nameservers
in resolv.conf this makes a max of six active sockets.
Having only one ev_io watcher resulted in closing watchers that were
still active, needlessly resulting in DNS timeouts.