forked from microsoft/ethr
-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathkcpconfig.go
51 lines (47 loc) · 1.41 KB
/
kcpconfig.go
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
package main
import (
"encoding/json"
"os"
)
// KCPConfig for client
type KCPConfig struct {
// LocalAddr string `json:"localaddr"`
// RemoteAddr string `json:"remoteaddr"`
Key string `json:"key"`
Crypt string `json:"crypt"`
Mode string `json:"mode"`
Conn int `json:"conn"`
// AutoExpire int `json:"autoexpire"`
// ScavengeTTL int `json:"scavengettl"`
MTU int `json:"mtu"`
SndWnd int `json:"sndwnd"`
RcvWnd int `json:"rcvwnd"`
DataShard int `json:"datashard"`
ParityShard int `json:"parityshard"`
DSCP int `json:"dscp"`
// NoComp bool `json:"nocomp"`
AckNodelay bool `json:"acknodelay"`
NoDelay int `json:"nodelay"`
Interval int `json:"interval"`
Resend int `json:"resend"`
NoCongestion int `json:"nc"`
SockBuf int `json:"sockbuf"`
// SmuxVer int `json:"smuxver"`
// SmuxBuf int `json:"smuxbuf"`
// StreamBuf int `json:"streambuf"`
// KeepAlive int `json:"keepalive"`
// Log string `json:"log"`
// SnmpLog string `json:"snmplog"`
// SnmpPeriod int `json:"snmpperiod"`
// Quiet bool `json:"quiet"`
TCP bool `json:"tcp"`
StreamMode bool `json:"streammode"`
}
func parseKCPJSONConfig(config *KCPConfig, path string) error {
file, err := os.Open(path) // For read access.
if err != nil {
return err
}
defer file.Close()
return json.NewDecoder(file).Decode(config)
}