pull/3878/head
fatedier 11 months ago committed by GitHub
parent 3bf6605e1a
commit 5e77c8e2d3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -132,6 +132,9 @@ issues:
- linters: - linters:
- revive - revive
text: "unused-parameter" text: "unused-parameter"
- linters:
- unparam
text: "is always false"
# Independently from option `exclude` we use default exclude patterns, # Independently from option `exclude` we use default exclude patterns,
# it can be disabled by this option. To list all # it can be disabled by this option. To list all

@ -1,11 +1,3 @@
### Features
* The new command line parameter `--strict_config` has been added to enable strict configuration validation mode. It will throw an error for unknown fields instead of ignoring them. In future versions, we will set the default value of this parameter to true to avoid misconfigurations.
* Support `SSH reverse tunneling`. With this feature, you can expose your local service without running frpc, only using SSH. The SSH reverse tunnel agent has many functional limitations compared to the frpc agent. The currently supported proxy types are tcp, http, https, tcpmux, and stcp.
* The frpc tcpmux command line parameters have been updated to support configuring `http_user` and `http_pwd`.
* The frpc stcp/sudp/xtcp command line parameters have been updated to support configuring `allow_users`.
### Fixes ### Fixes
* frpc: Return code 1 when the first login attempt fails and exits. * frpc has a certain chance to panic when login: close of closed channel.
* When auth.method is `oidc` and auth.additionalScopes contains `HeartBeats`, if obtaining AccessToken fails, the application will be unresponsive.

@ -326,14 +326,13 @@ func (svr *Service) loopLoginUntilSuccess(maxInterval time.Duration, firstLoginE
} }
svr.ctl = ctl svr.ctl = ctl
svr.ctlMu.Unlock() svr.ctlMu.Unlock()
return true, nil return true, nil
} }
// try to reconnect to server until success // try to reconnect to server until success
wait.BackoffUntil(loginFunc, wait.NewFastBackoffManager( wait.BackoffUntil(loginFunc, wait.NewFastBackoffManager(
wait.FastBackoffOptions{ wait.FastBackoffOptions{
Duration: time.Second, Duration: time.Millisecond,
Factor: 2, Factor: 2,
Jitter: 0.1, Jitter: 0.1,
MaxDuration: maxInterval, MaxDuration: maxInterval,

@ -19,7 +19,7 @@ import (
"strings" "strings"
) )
var version = "0.53.0" var version = "0.53.1"
func Full() string { func Full() string {
return version return version

@ -144,12 +144,6 @@ func BackoffUntil(f func() (bool, error), backoff BackoffManager, sliding bool,
} }
ticker.Reset(delay) ticker.Reset(delay)
select {
case <-stopCh:
return
default:
}
select { select {
case <-stopCh: case <-stopCh:
return return

Loading…
Cancel
Save