1
0
mirror of https://github.com/v2fly/v2ray-core.git synced 2025-05-18 13:09:04 -04:00

better port picker

This commit is contained in:
Darien Raymond 2017-01-16 14:18:13 +01:00
parent 9a0ddb78ff
commit d6f8528075
No known key found for this signature in database
GPG Key ID: 7251FFA14BB18169

View File

@ -2,20 +2,21 @@ package scenarios
import ( import (
"net" "net"
"sync/atomic"
"time" "time"
"github.com/golang/protobuf/proto" "github.com/golang/protobuf/proto"
"v2ray.com/core" "v2ray.com/core"
"v2ray.com/core/common"
v2net "v2ray.com/core/common/net" v2net "v2ray.com/core/common/net"
) )
var (
port uint32 = 40000
)
func pickPort() v2net.Port { func pickPort() v2net.Port {
return v2net.Port(atomic.AddUint32(&port, 1)) listener, err := net.Listen("tcp4", ":0")
common.Must(err)
defer listener.Close()
addr := listener.Addr().(*net.TCPAddr)
return v2net.Port(addr.Port)
} }
func xor(b []byte) []byte { func xor(b []byte) []byte {