-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathserver.go
More file actions
32 lines (30 loc) · 719 Bytes
/
server.go
File metadata and controls
32 lines (30 loc) · 719 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
package resock
import (
"errors"
"log"
"net"
"runtime"
)
func RunServer() error {
log.Println("listening on " + GetCfg().Protocol + "://" + GetCfg().Server)
switch GetCfg().Protocol {
case "tcp":
listener, err := net.Listen("tcp", GetCfg().Server)
if err != nil {
return errors.New("listen failed:" + err.Error())
}
cpus := runtime.NumCPU() / 2
RunGroup(cpus, listener, socksSrvPipe(), true)
case "wss":
ws := NewWebsock()
if err := ws.ListenTLS(GetCfg().Server); err != nil {
return errors.New("listen failed:" + err.Error())
}
default:
ws := NewWebsock()
if err := ws.Listen(GetCfg().Server); err != nil {
return errors.New("listen failed:" + err.Error())
}
}
return nil
}