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"
|
||||
"strings"
|
||||
"testing"
|
||||
)
|
||||
@@ -62,4 +63,29 @@ func TestRenderNATTraversalOnlyWhenDisabledAssistedAddrs(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
// 旧数据(config_json = "{}")缺省布尔键时必须补回表单默认值,
|
||||
// 否则会生成 transport.tcpMux = false,让每条新连接都重建 TCP+TLS。
|
||||
func TestServerOptionsBooleanDefaultsWhenKeysMissing(t *testing.T) {
|
||||
var legacy ServerOptions
|
||||
if err := json.Unmarshal([]byte("{}"), &legacy); err != nil {
|
||||
t.Fatalf("解析旧版空配置失败:%v", err)
|
||||
}
|
||||
legacy = normalizeServerOptions(legacy)
|
||||
if !legacy.TCPMux || !legacy.LoginFailExit {
|
||||
t.Fatalf("缺省键应补默认值 true,实际 tcpMux=%v loginFailExit=%v", legacy.TCPMux, legacy.LoginFailExit)
|
||||
}
|
||||
content := renderTOML(renderedConfig{Server: Server{ServerAddr: "vps.example.com", ServerPort: 7000, Options: legacy}})
|
||||
if !strings.Contains(content, "transport.tcpMux = true") {
|
||||
t.Fatalf("旧版配置应渲染 transport.tcpMux = true:\n%s", content)
|
||||
}
|
||||
|
||||
var explicit ServerOptions
|
||||
if err := json.Unmarshal([]byte(`{"tcp_mux":false,"login_fail_exit":false}`), &explicit); err != nil {
|
||||
t.Fatalf("解析显式配置失败:%v", err)
|
||||
}
|
||||
if explicit.TCPMux || explicit.LoginFailExit {
|
||||
t.Fatalf("显式 false 不应被默认值覆盖,实际 tcpMux=%v loginFailExit=%v", explicit.TCPMux, explicit.LoginFailExit)
|
||||
}
|
||||
}
|
||||
|
||||
func intPtr(value int) *int { return &value }
|
||||
|
||||
Reference in New Issue
Block a user