a278753bbf 
								
							 
						 
						
							
							
								
								TUN-3902: Add jitter to backoffhandler  
							
							... 
							
							
							
							Jitter is important to avoid every cloudflared in the world trying to
reconnect at t=1, 2, 4, etc. That could overwhelm the backend. But
if each cloudflared randomly waits for up to 2, then up to 4, then up
to 8 etc, then the retries get spread out evenly across time.
On average, wait times should be the same (e.g. instead of waiting for
exactly 1 second, cloudflared will wait betweeen 0 and 2 seconds).
This is the "Full Jitter" algorithm from https://aws.amazon.com/blogs/architecture/exponential-backoff-and-jitter/  
							
						 
						
							2021-02-11 14:36:13 +00:00  
				
					
						
							
							
								 
						
							
								0b16a473da 
								
							 
						 
						
							
							
								
								TUN-3869: Improve reliability of graceful shutdown.  
							
							... 
							
							
							
							- Don't rely on edge to close connection on graceful shutdown in h2mux, start muxer shutdown from cloudflared.
- Don't retry failed connections after graceful shutdown has started.
- After graceful shutdown channel is closed we stop waiting for retry timer and don't try to restart tunnel loop.
- Use readonly channel for graceful shutdown in functions that only consume the signal 
							
						 
						
							2021-02-08 14:30:32 +00:00  
				
					
						
							
							
								 
						
							
								0d22106416 
								
							 
						 
						
							
							
								
								TUN-3848: Use transport logger for h2mux  
							
							
							
						 
						
							2021-02-03 17:31:16 -06:00  
				
					
						
							
							
								 
						
							
								b72ee69eef 
								
							 
						 
						
							
							
								
								TUN-3837: Remove automation_email from cloudflared status page test  
							
							
							
						 
						
							2021-02-01 15:07:37 +00:00  
				
					
						
							
							
								 
						
							
								a945518404 
								
							 
						 
						
							
							
								
								TUN-3811: Better error reporting on http2 connection termination. Registration errors from control loop are now propagated out of the connection server code. Unified error handling between h2mux and http2 connections so we log and retry errors the same way, regardless of underlying transport.  
							
							
							
						 
						
							2021-01-28 10:38:30 -06:00  
				
					
						
							
							
								 
						
							
								d87bfcbe55 
								
							 
						 
						
							
							
								
								TUN-3795: Removed errant test  
							
							
							
						 
						
							2021-01-26 11:56:02 -06:00  
				
					
						
							
							
								 
						
							
								0df4f7dd24 
								
							 
						 
						
							
							
								
								TUN-3795: Use RFC-3339 style date format for logs, produce timestamp in UTC  
							
							
							
						 
						
							2021-01-26 15:04:33 +00:00  
				
					
						
							
							
								 
						
							
								d503aeaf77 
								
							 
						 
						
							
							
								
								TUN-3118: Changed graceful shutdown to immediately unregister tunnel from the edge, keep the connection open until the edge drops it or grace period expires  
							
							
							
						 
						
							2021-01-22 11:14:36 -06:00  
				
					
						
							
							
								 
						
							
								db0562c7b8 
								
							 
						 
						
							
							
								
								Fixed connection error handling by removing duplicated errors, standardizing on non-pointer error types  
							
							
							
						 
						
							2021-01-22 10:58:06 -06:00  
				
					
						
							
							
								 
						
							
								04b1e4f859 
								
							 
						 
						
							
							
								
								TUN-3738: Refactor observer to avoid potential of blocking on tunnel notifications  
							
							
							
						 
						
							2021-01-18 11:16:23 +00:00  
				
					
						
							
							
								 
						
							
								146c2d944a 
								
							 
						 
						
							
							
								
								TUN-3594: Log ingress response at debug level  
							
							
							
						 
						
							2021-01-15 19:06:54 +00:00  
				
					
						
							
							
								 
						
							
								55bf904689 
								
							 
						 
						
							
							
								
								TUN-3471: Add structured log context to logs  
							
							
							
						 
						
							2021-01-05 20:21:16 +00:00  
				
					
						
							
							
								 
						
							
								b855e33327 
								
							 
						 
						
							
							
								
								TUN-3706: Quit if any origin service fails to start  
							
							
							
						 
						
							2020-12-30 13:48:19 -06:00  
				
					
						
							
							
								 
						
							
								870f5fa907 
								
							 
						 
						
							
							
								
								TUN-3470: Replace in-house logger calls with zerolog  
							
							
							
						 
						
							2020-12-23 14:15:17 -06:00  
				
					
						
							
							
								 
						
							
								38fb0b28b6 
								
							 
						 
						
							
							
								
								TUN-3593: /ready endpoint for k8s readiness. Move tunnel events out of UI package, into connection package.  
							
							
							
						 
						
							2020-12-02 15:22:59 -06:00  
				
					
						
							
							
								 
						
							
								bda8fe2fbe 
								
							 
						 
						
							
							
								
								TUN-3594: Log response status at debug level  
							
							
							
						 
						
							2020-11-27 12:28:20 +00:00  
				
					
						
							
							
								 
						
							
								69fd502db3 
								
							 
						 
						
							
							
								
								TUN-3581: Tunnels can be run by name using only --credentials-file, no  
							
							... 
							
							
							
							origin cert necessary. 
							
						 
						
							2020-11-25 09:54:28 -06:00  
				
					
						
							
							
								 
						
							
								fdb1f961b3 
								
							 
						 
						
							
							
								
								TUN-3557: Detect SSE if content-type starts with text/event-stream  
							
							
							
						 
						
							2020-11-18 15:59:41 +00:00  
				
					
						
							
							
								 
						
							
								543169c893 
								
							 
						 
						
							
							
								
								TUN-3490: Make sure OriginClient implementation doesn't write after Proxy return  
							
							
							
						 
						
							2020-11-11 15:21:00 +00:00  
				
					
						
							
							
								 
						
							
								d5769519b2 
								
							 
						 
						
							
							
								
								TUN-3489: Add unit tests to cover proxy logic in connection package of cloudflared  
							
							
							
						 
						
							2020-11-11 15:21:00 +00:00  
				
					
						
							
							
								 
						
							
								5974fb4cfd 
								
							 
						 
						
							
							
								
								TUN-3500: Integrate replace h2mux by http2 work with multiple origin support  
							
							
							
						 
						
							2020-11-11 15:20:57 +00:00  
				
					
						
							
							
								 
						
							
								eef5b78eac 
								
							 
						 
						
							
							
								
								TUN-3480: Support SSE with http2 connection, and add SSE handler to hello-world server  
							
							
							
						 
						
							2020-11-11 15:12:17 +00:00  
				
					
						
							
							
								 
						
							
								6b86f81c4a 
								
							 
						 
						
							
							
								
								TUN-3403: Unit test for origin/proxy to test serving HTTP and Websocket  
							
							
							
						 
						
							2020-11-11 15:12:15 +00:00  
				
					
						
							
							
								 
						
							
								a490443630 
								
							 
						 
						
							
							
								
								TUN-3458: Upgrade to http2 when available, fallback to h2mux when we reach max retries  
							
							
							
						 
						
							2020-11-11 15:11:42 +00:00  
				
					
						
							
							
								 
						
							
								b5cdf3b2c7 
								
							 
						 
						
							
							
								
								TUN-3456: New protocol option auto to automatically select between http2 and h2mux  
							
							
							
						 
						
							2020-11-11 15:11:42 +00:00  
				
					
						
							
							
								 
						
							
								9ac40dcf04 
								
							 
						 
						
							
							
								
								TUN-3462: Refactor cloudflared to separate origin from connection  
							
							
							
						 
						
							2020-11-11 15:11:42 +00:00  
				
					
						
							
							
								 
						
							
								a5a5b93b64 
								
							 
						 
						
							
							
								
								TUN-3420: Establish control plane and send RPC over control plane  
							
							
							
						 
						
							2020-11-11 15:11:42 +00:00  
				
					
						
							
							
								 
						
							
								cb39f26f27 
								
							 
						 
						
							
							
								
								TUN-3406: Proxy websocket requests over Go http2  
							
							
							
						 
						
							2020-11-11 15:11:42 +00:00  
				
					
						
							
							
								 
						
							
								8d7b2575ba 
								
							 
						 
						
							
							
								
								TUN-3400: Use Go HTTP2 library as transport to connect with the edge  
							
							
							
						 
						
							2020-11-11 15:11:42 +00:00  
				
					
						
							
							
								 
						
							
								d7498b0c03 
								
							 
						 
						
							
							
								
								TUN-3449: Use flag to select transport protocol implementation  
							
							
							
						 
						
							2020-11-11 15:11:42 +00:00  
				
					
						
							
							
								 
						
							
								be9a558867 
								
							 
						 
						
							
							
								
								TUN-3503: Matching ingress rule should not take port into account  
							
							
							
						 
						
							2020-11-05 15:36:12 +00:00  
				
					
						
							
							
								 
						
							
								d01770107e 
								
							 
						 
						
							
							
								
								TUN-3492: Refactor OriginService, shrink its interface  
							
							
							
						 
						
							2020-11-04 21:28:33 +00:00  
				
					
						
							
							
								 
						
							
								e933ef9e1a 
								
							 
						 
						
							
							
								
								TUN-2640: Users can configure per-origin config. Unify single-rule CLI  
							
							... 
							
							
							
							flow with multi-rule config file code. 
							
						 
						
							2020-10-30 07:42:20 -05:00  
				
					
						
							
							
								 
						
							
								c96b9e8d8f 
								
							 
						 
						
							
							
								
								TUN-3464: Newtype to wrap []ingress.Rule  
							
							
							
						 
						
							2020-10-15 12:48:14 -05:00  
				
					
						
							
							
								 
						
							
								4a4a1bb6b1 
								
							 
						 
						
							
							
								
								TUN-3441:  Multiple-origin routing via ingress rules  
							
							
							
						 
						
							2020-10-13 08:55:17 -05:00  
				
					
						
							
							
								 
						
							
								0eebc7cef9 
								
							 
						 
						
							
							
								
								TUN-3438: move ingress into own package, read into TunnelConfig  
							
							
							
						 
						
							2020-10-12 16:33:22 +00:00  
				
					
						
							
							
								 
						
							
								2c9b7361b7 
								
							 
						 
						
							
							
								
								TUN-3427: Define a struct that only implements RegistrationServer in tunnelpogs  
							
							
							
						 
						
							2020-10-01 09:08:32 +01:00  
				
					
						
							
							
								 
						
							
								747427f816 
								
							 
						 
						
							
							
								
								TUN-3216: UI improvements  
							
							
							
						 
						
							2020-09-17 13:22:08 +04:00  
				
					
						
							
							
								 
						
							
								bb530b87dd 
								
							 
						 
						
							
							
								
								TUN-3328: Filter out free tunnel has started log from UI  
							
							
							
						 
						
							2020-09-17 11:52:10 +04:00  
				
					
						
							
							
								 
						
							
								8a829b773a 
								
							 
						 
						
							
							
								
								Rebased and passed TunnelEventChan to LogServerInfo in new ReconnectTunnel function  
							
							
							
						 
						
							2020-09-17 11:52:10 +04:00  
				
					
						
							
							
								 
						
							
								71b98e6111 
								
							 
						 
						
							
							
								
								TUN-3261: Display connections on UI for free classic tunnels  
							
							
							
						 
						
							2020-09-17 11:52:10 +04:00  
				
					
						
							
							
								 
						
							
								fee13dc62f 
								
							 
						 
						
							
							
								
								TUN-3255: Update UI to display URL instead of hostname  
							
							
							
						 
						
							2020-09-17 11:52:10 +04:00  
				
					
						
							
							
								 
						
							
								094e0c7592 
								
							 
						 
						
							
							
								
								TUN-3238: Update UI when connection re-connects  
							
							
							
						 
						
							2020-09-17 11:52:10 +04:00  
				
					
						
							
							
								 
						
							
								b57a953caa 
								
							 
						 
						
							
							
								
								TUN-3200: Add connection information to UI  
							
							
							
						 
						
							2020-09-17 11:52:10 +04:00  
				
					
						
							
							
								 
						
							
								8eeb452cce 
								
							 
						 
						
							
							
								
								TUN-3268: Each connection has its own event digest to reconnect  
							
							
							
						 
						
							2020-08-20 16:44:22 +01:00  
				
					
						
							
							
								 
						
							
								9952ce0069 
								
							 
						 
						
							
							
								
								TUN-3221: ConnectionOptions tracks numPreviousAttempts.  
							
							
							
						 
						
							2020-07-31 20:22:33 +00:00  
				
					
						
							
							
								 
						
							
								ac3638f6b1 
								
							 
						 
						
							
							
								
								TUN-3169: Move on to the next address when edge returns duplicate connection. There's no point in trying to connect to the same address since it will be hashed to the same metal.  
							
							... 
							
							
							
							Improve logging of errors from serve tunnel loop, hide useless context cancelled error. 
							
						 
						
							2020-07-07 16:35:44 -05:00  
				
					
						
							
							
								 
						
							
								2a3d486126 
								
							 
						 
						
							
							
								
								TUN-3007: Implement named tunnel connection registration and unregistration.  
							
							... 
							
							
							
							Removed flag for using quick reconnect, this logic is now always enabled. 
							
						 
						
							2020-07-01 04:19:30 +00:00  
				
					
						
							
							
								 
						
							
								4d3ebaf984 
								
							 
						 
						
							
							
								
								TUN-3106: Pass NamedTunnel config to StartServer  
							
							
							
						 
						
							2020-06-17 23:20:37 +00:00  
				
					
						
							
							
								 
						
							
								fb82b2ced5 
								
							 
						 
						
							
							
								
								TUN-3019: Remove declarative tunnel entry code  
							
							
							
						 
						
							2020-05-30 05:54:17 +08:00