951d13d76c 
								
							 
						 
						
							
							
								
								TUN-4456: Replaced instances of Tick() with Ticker() in h2mux paths  
							
							... 
							
							
							
							time.Tick() does not get garbage collected because the channel
underneath never gets deleted and the underlying Ticker can never be
recovered by the garbage collector. We replace this with NewTicker() to
avoid this. 
							
						 
						
							2021-05-25 18:07:06 +01:00  
				
					
						
							
							
								 
						
							
								8ca0d86c85 
								
							 
						 
						
							
							
								
								TUN-3863: Consolidate header handling logic in the connection package; move headers definitions from h2mux to packages that manage them; cleanup header conversions  
							
							... 
							
							
							
							All header transformation code from h2mux has been consolidated in the connection package since it's used by both h2mux and http2 logic.
Exported headers used by proxying between edge and cloudflared so then can be shared by tunnel service on the edge.
Moved access-related headers to corresponding packages that have the code that sets/uses these headers.
Removed tunnel hostname tracking from h2mux since it wasn't used by anything. We will continue to set the tunnel hostname header from the edge for backward compatibilty, but it's no longer used by cloudflared.
Move bastion-related logic into carrier package, untangled dependencies between carrier, origin, and websocket packages. 
							
						 
						
							2021-03-29 21:57:56 +00:00  
				
					
						
							
							
								 
						
							
								da4d0b2bae 
								
							 
						 
						
							
							
								
								TUN-4067: Reformat code for consistent import order, grouping, and fix formatting. Added goimports target to the Makefile to make this easier in the future.  
							
							
							
						 
						
							2021-03-24 10:53:29 -05:00  
				
					
						
							
							
								 
						
							
								8432735867 
								
							 
						 
						
							
							
								
								TUN-4060: Fix Go Vet warnings (new with go 1.16) where t.Fatalf is called from a test goroutine  
							
							
							
						 
						
							2021-03-16 16:12:11 +00:00  
				
					
						
							
							
								 
						
							
								e2262085e5 
								
							 
						 
						
							
							
								
								TUN-3617: Separate service from client, and implement different client for http vs. tcp origins  
							
							... 
							
							
							
							- extracted ResponseWriter from proxyConnection
 - added bastion tests over websocket
 - removed HTTPResp()
 - added some docstrings
 - Renamed some ingress clients as proxies
 - renamed instances of client to proxy in connection and origin
 - Stream no longer takes a context and logger.Service 
							
						 
						
							2021-02-23 14:19:44 +00:00  
				
					
						
							
							
								 
						
							
								db0562c7b8 
								
							 
						 
						
							
							
								
								Fixed connection error handling by removing duplicated errors, standardizing on non-pointer error types  
							
							
							
						 
						
							2021-01-22 10:58:06 -06:00  
				
					
						
							
							
								 
						
							
								870f5fa907 
								
							 
						 
						
							
							
								
								TUN-3470: Replace in-house logger calls with zerolog  
							
							
							
						 
						
							2020-12-23 14:15:17 -06:00  
				
					
						
							
							
								 
						
							
								6886e5f90a 
								
							 
						 
						
							
							
								
								TUN-3467: Serialize cf-cloudflared-response-meta during package initialization using jsoniter  
							
							
							
						 
						
							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  
				
					
						
							
							
								 
						
							
								cb39f26f27 
								
							 
						 
						
							
							
								
								TUN-3406: Proxy websocket requests over Go http2  
							
							
							
						 
						
							2020-11-11 15:11:42 +00:00  
				
					
						
							
							
								 
						
							
								2c9b7361b7 
								
							 
						 
						
							
							
								
								TUN-3427: Define a struct that only implements RegistrationServer in tunnelpogs  
							
							
							
						 
						
							2020-10-01 09:08:32 +01:00  
				
					
						
							
							
								 
						
							
								1a96889141 
								
							 
						 
						
							
							
								
								TUN-3286: Use either ID or name in Named Tunnel subcommands.  
							
							
							
						 
						
							2020-08-19 14:39:45 +00:00  
				
					
						
							
							
								 
						
							
								bd15c6b8c3 
								
							 
						 
						
							
							
								
								TUN-3208: Reduce copies and allocations on h2mux write path. Pre-allocate 16KB write buffer on the first write if possible. Use explicit byte array for chunks on write thread to avoid copying through intermediate buffer due to io.CopyN.  
							
							... 
							
							
							
							benchmark                                    old ns/op     new ns/op     delta
BenchmarkSingleStreamLargeResponseBody-8     17786594      12163494      -31.61%
benchmark                                    old allocs     new allocs     delta
BenchmarkSingleStreamLargeResponseBody-8     17086          15869          -7.12%
benchmark                                    old bytes     new bytes     delta
BenchmarkSingleStreamLargeResponseBody-8     58215169      21604391      -62.89% 
							
						 
						
							2020-07-29 14:30:12 +00:00  
				
					
						
							
							
								 
						
							
								42fe2e7266 
								
							 
						 
						
							
							
								
								TUN-3208: Add benchmark for large response write  
							
							
							
						 
						
							2020-07-29 14:30:12 +00:00  
				
					
						
							
							
								 
						
							
								44e3be2c88 
								
							 
						 
						
							
							
								
								TUN-3209: improve performance and reduce allocations during user header serialization from h1 to h2  
							
							... 
							
							
							
							benchmark                                    old ns/op     new ns/op     delta
BenchmarkH1ResponseToH2ResponseHeaders-4     10360         5048          -51.27%
benchmark                                    old allocs     new allocs     delta
BenchmarkH1ResponseToH2ResponseHeaders-4     135            26             -80.74%
benchmark                                    old bytes     new bytes     delta
BenchmarkH1ResponseToH2ResponseHeaders-4     8543          3667          -57.08% 
							
						 
						
							2020-07-29 14:29:07 +00:00  
				
					
						
							
							
								 
						
							
								61d5461138 
								
							 
						 
						
							
							
								
								TUN-3209: Add benchmark for header serialization  
							
							
							
						 
						
							2020-07-29 14:29:07 +00:00  
				
					
						
							
							
								 
						
							
								c716dd273c 
								
							 
						 
						
							
							
								
								AUTH-2648 updated usage text  
							
							
							
						 
						
							2020-06-11 11:08:05 -05:00  
				
					
						
							
							
								 
						
							
								046be63253 
								
							 
						 
						
							
							
								
								AUTH-2596 added new logger package and replaced logrus  
							
							
							
						 
						
							2020-05-27 17:07:19 -05:00  
				
					
						
							
							
								 
						
							
								b89cc22896 
								
							 
						 
						
							
							
								
								AUTH-2369: RDP Bastion prototype  
							
							
							
						 
						
							2020-05-19 21:10:50 -05:00  
				
					
						
							
							
								 
						
							
								fbe2989f61 
								
							 
						 
						
							
							
								
								TUN-2955: Fix connection and goroutine leaks when tunnel conection is terminated on error. Only unregister tunnels that had connected successfully. Close edge connection used to unregister the tunnel. Use buffered channels for error channels where receiver may quit early on context cancellation.  
							
							
							
						 
						
							2020-05-06 03:13:24 +00:00  
				
					
						
							
							
								 
						
							
								1c6ea36e73 
								
							 
						 
						
							
							
								
								TUN-2894: ResponseMetaHeader should be public  
							
							
							
						 
						
							2020-04-11 01:01:05 +01:00  
				
					
						
							
							
								 
						
							
								06f29306cd 
								
							 
						 
						
							
							
								
								TUN-2881: Parameterize response meta information header name in the generating function  
							
							
							
						 
						
							2020-04-10 20:26:09 +01:00  
				
					
						
							
							
								 
						
							
								322f909edb 
								
							 
						 
						
							
							
								
								TUN-2880: Return metadata about source of the response from cloudflared  
							
							
							
						 
						
							2020-04-10 01:01:38 +01:00  
				
					
						
							
							
								 
						
							
								0b2b6c8e12 
								
							 
						 
						
							
							
								
								TUN-2850: Tunnel stripping Cloudflare headers  
							
							
							
						 
						
							2020-03-31 16:52:13 +00:00  
				
					
						
							
							
								 
						
							
								80f387214c 
								
							 
						 
						
							
							
								
								TUN-2796: Implement HTTP2 CONTINUATION headers correctly  
							
							
							
						 
						
							2020-03-24 13:46:17 +00:00  
				
					
						
							
							
								 
						
							
								a368fbbe9b 
								
							 
						 
						
							
							
								
								AUTH-2394 fixed header for websockets. Added TCP alias  
							
							
							
						 
						
							2020-03-23 10:27:53 -05:00  
				
					
						
							
							
								 
						
							
								96f11de7ab 
								
							 
						 
						
							
							
								
								TUN-2820: Serialized headers for Websockets  
							
							
							
						 
						
							2020-03-19 18:08:58 +00:00  
				
					
						
							
							
								 
						
							
								5bd4028ea7 
								
							 
						 
						
							
							
								
								TUN-2761: Use the new header management functions in cloudflared  
							
							
							
						 
						
							2020-03-08 03:38:54 +00:00  
				
					
						
							
							
								 
						
							
								7b81cf8aa6 
								
							 
						 
						
							
							
								
								TUN-2779: update sample HTML pages  
							
							
							
						 
						
							2020-03-03 19:35:41 +00:00  
				
					
						
							
							
								 
						
							
								a14aa0322c 
								
							 
						 
						
							
							
								
								TUN-2767: Test for large headers  
							
							
							
						 
						
							2020-02-27 22:15:04 +00:00  
				
					
						
							
							
								 
						
							
								6488843ac4 
								
							 
						 
						
							
							
								
								TUN-2746: Add the new header management functions  
							
							
							
						 
						
							2020-02-21 18:37:38 +00:00  
				
					
						
							
							
								 
						
							
								52ab2c8227 
								
							 
						 
						
							
							
								
								TUN-2745: Rename existing header management functions  
							
							
							
						 
						
							2020-02-20 20:31:34 +00:00  
				
					
						
							
							
								 
						
							
								269351bbea 
								
							 
						 
						
							
							
								
								TUN-2703: Muxer.Serve terminates when its context is Done  
							
							
							
						 
						
							2020-02-20 20:09:10 +00:00  
				
					
						
							
							
								 
						
							
								d6c2c4ee4a 
								
							 
						 
						
							
							
								
								TUN-2717: Function to serialize/deserialize HTTP headers  
							
							
							
						 
						
							2020-02-10 19:18:06 +00:00  
				
					
						
							
							
								 
						
							
								54b386188a 
								
							 
						 
						
							
							
								
								TUN-2651: Fix panic in h2mux reader when a stream error is encountered  
							
							
							
						 
						
							2020-01-31 09:59:10 -06:00  
				
					
						
							
							
								 
						
							
								8b43454024 
								
							 
						 
						
							
							
								
								TUN-2631: only notify that activeStreamMap is closed if ignoreNewStreams=true  
							
							
							
						 
						
							2019-12-11 17:05:28 -06:00  
				
					
						
							
							
								 
						
							
								b499c0fdba 
								
							 
						 
						
							
							
								
								TUN-2608: h2mux.Muxer.Shutdown always returns a non-nil channel  
							
							
							
						 
						
							2019-12-04 17:21:30 +00:00  
				
					
						
							
							
								 
						
							
								92736b2677 
								
							 
						 
						
							
							
								
								bug(cloudflared): nil pointer deference on h2DictWriter Close() ( #154 )  
							
							... 
							
							
							
							Unlike other h2DictWriter methods, the Close() method does check whether
w.comp is nil.
This PR adds a check for non nil compressor before attempting to close
Bug: #141  
							
						 
						
							2019-12-03 16:29:40 +04:00  
				
					
						
							
							
								 
						
							
								1d96bccc04 
								
							 
						 
						
							
							
								
								TUN-2178: public API to create new h2mux.MuxedStreamRequest  
							
							
							
						 
						
							2019-11-13 14:04:19 -06:00  
				
					
						
							
							
								 
						
							
								13bf65ce4e 
								
							 
						 
						
							
							
								
								TUN-2506: Expose active streams metrics  
							
							
							
						 
						
							2019-11-07 14:09:31 -06:00  
				
					
						
							
							
								 
						
							
								e14ec1a1fb 
								
							 
						 
						
							
							
								
								TUN-2505: Terminate stream on receipt of RST_STREAM; MuxedStream.CloseWrite() should terminate the MuxedStream.Write() loop  
							
							
							
						 
						
							2019-11-06 21:24:18 +00:00  
				
					
						
							
							
								 
						
							
								3a9a0a0d75 
								
							 
						 
						
							
							
								
								TUN-2489: Delete stream from activestreammap when read and write are both closed  
							
							
							
						 
						
							2019-11-05 11:06:11 -06:00  
				
					
						
							
							
								 
						
							
								1f6a330098 
								
							 
						 
						
							
							
								
								Fix   #129 : Excessive memory usage streaming large files ( #142 )  
							
							... 
							
							
							
							This drops the default size auf the h2mux write buffer from 512 MB to 1 MB.
This massively reduces memory usage, since each stream has its own buffer. 
							
						 
						
							2019-10-17 17:15:51 -05:00  
				
					
						
							
							
								 
						
							
								4d2583edf5 
								
							 
						 
						
							
							
								
								TUN-2344: log more details: http2.Framer.ErrorDetail() if available, connectionID  
							
							
							
						 
						
							2019-10-15 10:59:24 -05:00  
				
					
						
							
							
								 
						
							
								b836cb350a 
								
							 
						 
						
							
							
								
								TUN-2162: Decomplect OpenStream to allow finer-grained timeouts  
							
							
							
						 
						
							2019-09-05 15:23:41 +00:00  
				
					
						
							
							
								 
						
							
								2fa09e1cc6 
								
							 
						 
						
							
							
								
								TUN-1976: Pass tunnel hostname through header  
							
							
							
						 
						
							2019-06-21 10:43:06 -05:00  
				
					
						
							
							
								 
						
							
								d26a8c5d44 
								
							 
						 
						
							
							
								
								TUN-1893: Proxy requests to the origin based on tunnel hostname  
							
							
							
						 
						
							2019-06-13 14:46:22 -05:00  
				
					
						
							
							
								 
						
							
								ca619a97bc 
								
							 
						 
						
							
							
								
								TUN-1952: Group ClientConfig fields by the component that uses the config, and return the part of the config that failed to be applied  
							
							
							
						 
						
							2019-06-13 14:39:51 -05:00  
				
					
						
							
							
								 
						
							
								6f8708d33c 
								
							 
						 
						
							
							
								
								TUN-1847: Log a distinct message when OpenStream fails while waiting for response headers  
							
							
							
						 
						
							2019-05-13 16:46:25 -05:00  
				
					
						
							
							
								 
						
							
								2bef5dbe72 
								
							 
						 
						
							
							
								
								TUN-1682: Add context to OpenStream to prevent it from blocking indefinitely.  
							
							
							
						 
						
							2019-04-11 13:44:42 -05:00