Sudarsan Reddy
e20c4f8752
TUN-3838: ResponseWriter no longer reads and origin error tests
2021-02-23 14:19:47 +00:00
cthuang
ab4dda5427
TUN-3868: Refactor singleTCPService and bridgeService to tcpOverWSService and rawTCPService
2021-02-23 14:19:47 +00:00
cthuang
5943808746
TUN-3889: Move host header override logic to httpService
2021-02-23 14:19:47 +00:00
Sudarsan Reddy
ed57ee64e8
TUN-3853: Respond with ws headers from the origin service rather than generating our own
2021-02-23 14:19:47 +00:00
Sudarsan Reddy
8b794390e5
TUN-3799: extended the Stream interface to take a logger and added debug logs for io.Copy errors
2021-02-23 14:19:47 +00:00
Sudarsan Reddy
a6c2348127
TUN-3817: Adds tests for websocket based streaming regression
2021-02-23 14:19:47 +00:00
cthuang
2146f71b45
TUN-3753: Select http2 protocol when warp routing is enabled
2021-02-23 14:19:47 +00:00
Sudarsan Reddy
b4700a52e3
TUN-3725: Warp-routing is independent of ingress
...
- Changed warp-routing configuration to its own yaml.
- Ingress Rules host matching is indepedent of warp-routing.
2021-02-23 14:19:47 +00:00
Sudarsan Reddy
368066a966
TUN-3615: added support to proxy tcp streams
...
added ingress.DefaultStreamHandler and a basic test for tcp stream proxy
moved websocket.Stream to ingress
cloudflared no longer picks tcpstream host from header
2021-02-23 14:19:47 +00:00
cthuang
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
Nuno Diegues
e9c2afec56
TUN-3948: Log error when retrying connection
2021-02-23 11:40:29 +00:00
Adam Chalmers
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
Igor Postelnik
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
Adam Chalmers
0d22106416
TUN-3848: Use transport logger for h2mux
2021-02-03 17:31:16 -06:00
Areg Harutyunyan
b72ee69eef
TUN-3837: Remove automation_email from cloudflared status page test
2021-02-01 15:07:37 +00:00
Igor Postelnik
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
Igor Postelnik
d87bfcbe55
TUN-3795: Removed errant test
2021-01-26 11:56:02 -06:00
Igor Postelnik
0df4f7dd24
TUN-3795: Use RFC-3339 style date format for logs, produce timestamp in UTC
2021-01-26 15:04:33 +00:00
Igor Postelnik
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
Igor Postelnik
db0562c7b8
Fixed connection error handling by removing duplicated errors, standardizing on non-pointer error types
2021-01-22 10:58:06 -06:00
Igor Postelnik
04b1e4f859
TUN-3738: Refactor observer to avoid potential of blocking on tunnel notifications
2021-01-18 11:16:23 +00:00
Nuno Diegues
146c2d944a
TUN-3594: Log ingress response at debug level
2021-01-15 19:06:54 +00:00
Areg Harutyunyan
55bf904689
TUN-3471: Add structured log context to logs
2021-01-05 20:21:16 +00:00
Adam Chalmers
b855e33327
TUN-3706: Quit if any origin service fails to start
2020-12-30 13:48:19 -06:00
Areg Harutyunyan
870f5fa907
TUN-3470: Replace in-house logger calls with zerolog
2020-12-23 14:15:17 -06:00
Adam Chalmers
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
cthuang
bda8fe2fbe
TUN-3594: Log response status at debug level
2020-11-27 12:28:20 +00:00
Adam Chalmers
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
cthuang
fdb1f961b3
TUN-3557: Detect SSE if content-type starts with text/event-stream
2020-11-18 15:59:41 +00:00
cthuang
543169c893
TUN-3490: Make sure OriginClient implementation doesn't write after Proxy return
2020-11-11 15:21:00 +00:00
cthuang
d5769519b2
TUN-3489: Add unit tests to cover proxy logic in connection package of cloudflared
2020-11-11 15:21:00 +00:00
cthuang
5974fb4cfd
TUN-3500: Integrate replace h2mux by http2 work with multiple origin support
2020-11-11 15:20:57 +00:00
cthuang
eef5b78eac
TUN-3480: Support SSE with http2 connection, and add SSE handler to hello-world server
2020-11-11 15:12:17 +00:00
cthuang
6b86f81c4a
TUN-3403: Unit test for origin/proxy to test serving HTTP and Websocket
2020-11-11 15:12:15 +00:00
cthuang
a490443630
TUN-3458: Upgrade to http2 when available, fallback to h2mux when we reach max retries
2020-11-11 15:11:42 +00:00
cthuang
b5cdf3b2c7
TUN-3456: New protocol option auto to automatically select between http2 and h2mux
2020-11-11 15:11:42 +00:00
cthuang
9ac40dcf04
TUN-3462: Refactor cloudflared to separate origin from connection
2020-11-11 15:11:42 +00:00
cthuang
a5a5b93b64
TUN-3420: Establish control plane and send RPC over control plane
2020-11-11 15:11:42 +00:00
cthuang
cb39f26f27
TUN-3406: Proxy websocket requests over Go http2
2020-11-11 15:11:42 +00:00
cthuang
8d7b2575ba
TUN-3400: Use Go HTTP2 library as transport to connect with the edge
2020-11-11 15:11:42 +00:00
cthuang
d7498b0c03
TUN-3449: Use flag to select transport protocol implementation
2020-11-11 15:11:42 +00:00
cthuang
be9a558867
TUN-3503: Matching ingress rule should not take port into account
2020-11-05 15:36:12 +00:00
Adam Chalmers
d01770107e
TUN-3492: Refactor OriginService, shrink its interface
2020-11-04 21:28:33 +00:00
Adam Chalmers
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
Adam Chalmers
c96b9e8d8f
TUN-3464: Newtype to wrap []ingress.Rule
2020-10-15 12:48:14 -05:00
Adam Chalmers
4a4a1bb6b1
TUN-3441: Multiple-origin routing via ingress rules
2020-10-13 08:55:17 -05:00
Adam Chalmers
0eebc7cef9
TUN-3438: move ingress into own package, read into TunnelConfig
2020-10-12 16:33:22 +00:00
cthuang
2c9b7361b7
TUN-3427: Define a struct that only implements RegistrationServer in tunnelpogs
2020-10-01 09:08:32 +01:00
Areg Harutyunyan
747427f816
TUN-3216: UI improvements
2020-09-17 13:22:08 +04:00
Rachel Williams
bb530b87dd
TUN-3328: Filter out free tunnel has started log from UI
2020-09-17 11:52:10 +04:00