feat(openvpn): suggest available OIDC ports and add deployment assets
This commit is contained in:
1 parent
d6a9a92ad0
commit
003f755b37
14 files changed
+244
-7
No files matched your search
@@ -0,0 +1,31 @@
|
||||
package api
|
||||
|
||||
import (
|
||||
"net"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestFindAvailableOIDCPortSkipsReservedAndOccupied(t *testing.T) {
|
||||
listener, err := net.Listen("tcp", "127.0.0.1:0")
|
||||
if err != nil {
|
||||
t.Skipf("当前环境不允许监听回环端口: %v", err)
|
||||
}
|
||||
defer listener.Close()
|
||||
occupied := listener.Addr().(*net.TCPAddr).Port
|
||||
if occupied < 1024 || occupied > 65533 {
|
||||
t.Skip("系统分配的临时端口无法用于递增测试")
|
||||
}
|
||||
reserved := map[int]bool{occupied + 1: true}
|
||||
if loopbackTCPAvailable(occupied) {
|
||||
t.Fatal("监听中的端口必须视为占用")
|
||||
}
|
||||
available := func(port int) bool { return port != occupied }
|
||||
port, ok := findAvailableOIDCPort(occupied, 1, reserved, available)
|
||||
if !ok || port != occupied+2 {
|
||||
t.Fatalf("递增应跳过已监听及已配置的端口,得到 %d (ok=%t)", port, ok)
|
||||
}
|
||||
port, ok = findAvailableOIDCPort(occupied+1, -1, reserved, available)
|
||||
if !ok || port != occupied-1 {
|
||||
t.Fatalf("递减应跳过已配置及已监听的端口,得到 %d (ok=%t)", port, ok)
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user