-
Notifications
You must be signed in to change notification settings - Fork 70
/
Copy pathserver_config.go
88 lines (72 loc) · 1.71 KB
/
server_config.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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
package main
import (
"log"
"github.com/BurntSushi/toml"
)
type dbConfig struct {
Address string
Port string
User string
Password string
Database string
}
type loginConfig struct {
ClientListenAddress string
ClientListenPort string
ServerListenAddress string
ServerListenPort string
WithPin bool
PacketQueueSize int
Latency int
Jitter int
}
type worldConfig struct {
Message string
Ribbon byte
ExpRate float32
DropRate float32
MesosRate float32
LoginAddress string
LoginPort string
ListenAddress string
ListenPort string
PacketQueueSize int
}
type channelConfig struct {
WorldAddress string
WorldPort string
ListenAddress string
ClientConnectionAddress string
ListenPort string
PacketQueueSize int
MaxPop int16
Latency int
Jitter int
}
type fullConfig struct {
Database dbConfig
Login loginConfig
World worldConfig
Channel channelConfig
}
func loginConfigFromFile(fname string) (loginConfig, dbConfig) {
config := &fullConfig{}
if _, err := toml.DecodeFile(fname, config); err != nil {
log.Fatal(err)
}
return config.Login, config.Database
}
func worldConfigFromFile(fname string) (worldConfig, dbConfig) {
config := &fullConfig{}
if _, err := toml.DecodeFile(fname, config); err != nil {
log.Fatal(err)
}
return config.World, config.Database
}
func channelConfigFromFile(fname string) (channelConfig, dbConfig) {
config := &fullConfig{}
if _, err := toml.DecodeFile(fname, config); err != nil {
log.Fatal(err)
}
return config.Channel, config.Database
}