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
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
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
Areg Harutyunyan
55bf904689
TUN-3471: Add structured log context to logs
2021-01-05 20:21:16 +00: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
5974fb4cfd
TUN-3500: Integrate replace h2mux by http2 work with multiple origin support
2020-11-11 15:20:57 +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
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
Rachel Williams
71b98e6111
TUN-3261: Display connections on UI for free classic tunnels
2020-09-17 11:52:10 +04:00
Rachel Williams
fee13dc62f
TUN-3255: Update UI to display URL instead of hostname
2020-09-17 11:52:10 +04:00
Rachel Williams
094e0c7592
TUN-3238: Update UI when connection re-connects
2020-09-17 11:52:10 +04:00
Rachel Williams
b57a953caa
TUN-3200: Add connection information to UI
2020-09-17 11:52:10 +04:00
cthuang
8eeb452cce
TUN-3268: Each connection has its own event digest to reconnect
2020-08-20 16:44:22 +01:00
Adam Chalmers
9952ce0069
TUN-3221: ConnectionOptions tracks numPreviousAttempts.
2020-07-31 20:22:33 +00:00
Igor Postelnik
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
Igor Postelnik
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
Adam Chalmers
4d3ebaf984
TUN-3106: Pass NamedTunnel config to StartServer
2020-06-17 23:20:37 +00:00
cthuang
fb82b2ced5
TUN-3019: Remove declarative tunnel entry code
2020-05-30 05:54:17 +08:00
Dalton
046be63253
AUTH-2596 added new logger package and replaced logrus
2020-05-27 17:07:19 -05:00
Igor Postelnik
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
Igor Postelnik
dd0881f32b
TUN-2940: Added delay parameter to stdin reconnect command.
2020-05-01 15:58:19 +00:00
Areg Harutyunyan
06f29306cd
TUN-2881: Parameterize response meta information header name in the generating function
2020-04-10 20:26:09 +01:00
Areg Harutyunyan
322f909edb
TUN-2880: Return metadata about source of the response from cloudflared
2020-04-10 01:01:38 +01:00
Dalton
a37da2b165
AUTH-2394 added socks5 proxy
2020-04-07 13:30:28 -05:00
Adam Chalmers
acea15161c
TUN-2854: Quick Reconnects should be an optional supported feature
2020-03-31 08:59:00 -05:00
Areg Harutyunyan
ae374c0463
TUN-2846: Trigger debug reconnects from stdin commands, not SIGUSR1
2020-03-27 17:04:21 +00:00
Adam Chalmers
32df01a9da
TUN-2823: Bugfix. cloudflared would hang forever if error occurred.
2020-03-19 17:48:42 -05:00
Adam Chalmers
6dcf3a4cbc
TUN-2819: cloudflared should close its connections when a signal is sent
2020-03-19 21:02:15 +00:00
Adam Chalmers
e8f55cc911
TUN-2756: Set connection digest after reconnect.
...
Previously it was only being set after RegisterTunnel.
2020-03-13 17:31:05 -05:00
Adam Chalmers
5376df5439
TUN-2788: cloudflared should store one ConnDigest per HA connection
2020-03-11 18:19:22 -05:00
Areg Harutyunyan
5bd4028ea7
TUN-2761: Use the new header management functions in cloudflared
2020-03-08 03:38:54 +00:00