common.go 622 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. package scenarios
  2. import (
  3. "github.com/golang/protobuf/proto"
  4. "sync/atomic"
  5. "time"
  6. "v2ray.com/core"
  7. v2net "v2ray.com/core/common/net"
  8. )
  9. var (
  10. port uint32 = 50000
  11. )
  12. func pickPort() v2net.Port {
  13. return v2net.Port(atomic.AddUint32(&port, 1))
  14. }
  15. func InitializeServerConfig(config *core.Config) error {
  16. err := BuildV2Ray()
  17. if err != nil {
  18. return err
  19. }
  20. configBytes, err := proto.Marshal(config)
  21. if err != nil {
  22. return err
  23. }
  24. proc := RunV2RayProtobuf(configBytes)
  25. err = proc.Start()
  26. if err != nil {
  27. return err
  28. }
  29. time.Sleep(time.Second)
  30. runningServers = append(runningServers, proc)
  31. return nil
  32. }