nextconnect / utils /utils.go
ZHZ1024's picture
Upload 14 files
34fee23 verified
package utils
import (
"log"
"os"
"gopkg.in/ini.v1"
)
type Config struct {
Server ServerConfig `ini:"server"`
Client ClientConfig `ini:"client"`
Proxy ProxyConfig `ini:"proxy"`
}
type ServerConfig struct {
BindAddr string `ini:"bind_addr"`
BindPort int `ini:"bind_port"`
PrivateKeyPath string `ini:"private_key_path"`
}
type ClientConfig struct {
ServerAddr string `ini:"server_addr"`
ServerPort int `ini:"server_port"`
PrivateKeyPath string `ini:"private_key_path"`
}
type ProxyConfig struct {
LocalAddr string `ini:"local_addr"`
LocalPort int `ini:"local_port"`
ProxyType string `ini:"proxy_type"`
ProxyName string `ini:"proxy_name"`
EncryptionEnabled bool `ini:"encryption_enabled"`
}
func LoadConfig() *Config {
cfg, err := ini.Load("config.ini")
if err != nil {
log.Fatalf("Failed to read config file: %v", err)
os.Exit(1)
}
config := &Config{}
err = cfg.MapTo(config)
if err != nil {
log.Fatalf("Failed to parse config file: %v", err)
os.Exit(1)
}
return config
}