Major ngrokd server refactor improving:
No longer fail to handle a public connection if a proxy request goes unanswered by requesting additional proxy connections
Buffer tunnel proxies channel so we allow a pool of available connections to be used
Don't tie up goroutines if proxy connection pool are full
Allow a single control connection to manage multiple tunnels
Fix a security issue where anyone could could register a proxy for any tunnel
Natively handle serving HTTPS traffic
Multiplex a single port for handling control and proxy connections in order to evade corporate firewalls
Tunnels now shut down all of their resources gracefully
incremental progress on supporting multiple active tunnels in the ngrok client
major refactoring and cleanup to support multiple tunnels
safely capture and display panics while rendering any pages in the web http view. safely print out stack traces from crashed goroutines without destroying the terminal
properly display client ip addresses without relying on X-Real-Ip to be set by a proxy
merge in master
fix a small interface change after merge
go fmt
bump version numbers for new code/protocol
allow ngrokd to bind to specific interfaces
update the default ngrokd endpoint
fix autoupdate to work with the new API, go fmt
go fmt
modernize the ngrok protocol to make more sense in the context of multiple tunnels. separate out authentication and tunnel registration
fix a bug that would cause the client to hang when shutting down abnormally
add support for registering multiple protocols in a single tunnel request message
add support for tunneling through http proxies
bump version
add support for proxy authentication
make sure every new tunnel connection and every new http connection has a read/write timeouts until handled by a tunnel. fix a bug where a slow tunnel or proxy connection could block all others. fix a bug where sending a non-expected valid ngrok protocol message over a new connection could leak a connection