chore(release): 发布 v1.9.2
CI / verify (push) Canceled after 0s
Docker Release / build-and-push (amd64, linux/amd64) (push) Canceled after 0s
Docker Release / build-and-push (arm64, linux/arm64) (push) Canceled after 0s
GitHub Release / release (push) Canceled after 0s
Docker Release / create-manifest (push) Canceled after 0s
CI / verify (push) Canceled after 0s
Docker Release / build-and-push (amd64, linux/amd64) (push) Canceled after 0s
Docker Release / build-and-push (arm64, linux/arm64) (push) Canceled after 0s
GitHub Release / release (push) Canceled after 0s
Docker Release / create-manifest (push) Canceled after 0s
- 「公网服务端」新增 Nginx 启停控制(Agent 0.15.2,停止带二次确认) - frps 启动失败不再误报成功,并增强启动诊断 - frps vhost 端口禁止 80/443,避免与 VPS 上 Nginx 冲突 - 旧服务端配置的 tcp_mux / login_fail_exit 默认值补齐 - 新增安全审查、页面布局方案与场景操作文档
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
package frp
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"net"
|
||||
"net/url"
|
||||
@@ -280,6 +281,31 @@ func normalizeServerOptions(in ServerOptions) ServerOptions {
|
||||
return in
|
||||
}
|
||||
|
||||
// ServerOptions 的布尔字段在表单默认值里是 true,但 JSON 缺省时零值是 false。
|
||||
// 016 迁移给已有服务端补的 config_json 默认值为 "{}",非 UI 路径创建的服务端也可能不带这些键;
|
||||
// 缺省时若不兜底,生成的 frpc 配置会变成 transport.tcpMux = false(每条新连接都要重新建
|
||||
// TCP+TLS,首连明显变慢)与 loginFailExit = false(登录失败不再退出,排障信息被吞掉)。
|
||||
// 因此按「键缺省即取默认值」反序列化;显式写入 false 的配置仍然保留 false。
|
||||
func (in *ServerOptions) UnmarshalJSON(data []byte) error {
|
||||
type plain ServerOptions
|
||||
var decoded plain
|
||||
if err := json.Unmarshal(data, &decoded); err != nil {
|
||||
return err
|
||||
}
|
||||
var keys map[string]json.RawMessage
|
||||
if err := json.Unmarshal(data, &keys); err != nil {
|
||||
return err
|
||||
}
|
||||
*in = ServerOptions(decoded)
|
||||
if _, ok := keys["tcp_mux"]; !ok {
|
||||
in.TCPMux = true
|
||||
}
|
||||
if _, ok := keys["login_fail_exit"]; !ok {
|
||||
in.LoginFailExit = true
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func validAuthMethod(value string) bool {
|
||||
return value == "none" || value == "token" || value == "oidc"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user