mirror of
https://github.com/whyvl/wireproxy.git
synced 2025-04-29 19:01:42 +02:00
cleanup code in config
This commit is contained in:
parent
ebdf73c840
commit
e1d025d6f5
1 changed files with 15 additions and 60 deletions
77
config.go
77
config.go
|
@ -239,7 +239,7 @@ func ParsePeer(cfg *ini.File, device *DeviceConfig) error {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func parseTCPClientTunnelConfig(section *ini.Section) (*TCPClientTunnelConfig, error) {
|
func parseTCPClientTunnelConfig(section *ini.Section) (RoutineSpawner, error) {
|
||||||
config := &TCPClientTunnelConfig{}
|
config := &TCPClientTunnelConfig{}
|
||||||
tcpAddr, err := parseTCPAddr(section, "BindAddress")
|
tcpAddr, err := parseTCPAddr(section, "BindAddress")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -256,25 +256,7 @@ func parseTCPClientTunnelConfig(section *ini.Section) (*TCPClientTunnelConfig, e
|
||||||
return config, nil
|
return config, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func ParseTCPClientTunnelConfig(cfg *ini.File) ([]TCPClientTunnelConfig, error) {
|
func parseTCPServerTunnelConfig(section *ini.Section) (RoutineSpawner, error) {
|
||||||
sections, err := cfg.SectionsByName("TCPClientTunnel")
|
|
||||||
if err != nil {
|
|
||||||
return []TCPClientTunnelConfig{}, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
configs := make([]TCPClientTunnelConfig, len(sections))
|
|
||||||
for i, section := range sections {
|
|
||||||
config, err := parseTCPClientTunnelConfig(section)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
configs[i] = *config
|
|
||||||
}
|
|
||||||
|
|
||||||
return configs, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func parseTCPServerTunnelConfig(section *ini.Section) (*TCPServerTunnelConfig, error) {
|
|
||||||
config := &TCPServerTunnelConfig{}
|
config := &TCPServerTunnelConfig{}
|
||||||
|
|
||||||
listenPort, err := parsePort(section, "ListenPort")
|
listenPort, err := parsePort(section, "ListenPort")
|
||||||
|
@ -292,25 +274,7 @@ func parseTCPServerTunnelConfig(section *ini.Section) (*TCPServerTunnelConfig, e
|
||||||
return config, nil
|
return config, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func ParseTCPServerTunnelConfig(cfg *ini.File) ([]TCPServerTunnelConfig, error) {
|
func parseSocks5Config(section *ini.Section) (RoutineSpawner, error) {
|
||||||
sections, err := cfg.SectionsByName("TCPServerTunnel")
|
|
||||||
if err != nil {
|
|
||||||
return []TCPServerTunnelConfig{}, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
configs := make([]TCPServerTunnelConfig, len(sections))
|
|
||||||
for i, section := range sections {
|
|
||||||
config, err := parseTCPServerTunnelConfig(section)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
configs[i] = *config
|
|
||||||
}
|
|
||||||
|
|
||||||
return configs, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func parseSocks5Config(section *ini.Section) (*Socks5Config, error) {
|
|
||||||
config := &Socks5Config{}
|
config := &Socks5Config{}
|
||||||
|
|
||||||
bindAddress, err := parseString(section, "BindAddress")
|
bindAddress, err := parseString(section, "BindAddress")
|
||||||
|
@ -328,22 +292,22 @@ func parseSocks5Config(section *ini.Section) (*Socks5Config, error) {
|
||||||
return config, nil
|
return config, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func ParseSocks5Config(cfg *ini.File) ([]Socks5Config, error) {
|
func parseRoutinesConfig(routines *[]RoutineSpawner, cfg *ini.File, sectionName string, f func(*ini.Section) (RoutineSpawner, error)) error {
|
||||||
sections, err := cfg.SectionsByName("Socks5")
|
sections, err := cfg.SectionsByName(sectionName)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return []Socks5Config{}, nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
configs := make([]Socks5Config, len(sections))
|
for _, section := range sections {
|
||||||
for i, section := range sections {
|
config, err := f(section)
|
||||||
config, err := parseSocks5Config(section)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return err
|
||||||
}
|
|
||||||
configs[i] = *config
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return configs, nil
|
*routines = append(*routines, config)
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func ParseConfig(path string) (*Configuration, error) {
|
func ParseConfig(path string) (*Configuration, error) {
|
||||||
|
@ -373,29 +337,20 @@ func ParseConfig(path string) (*Configuration, error) {
|
||||||
|
|
||||||
routinesSpawners := []RoutineSpawner{}
|
routinesSpawners := []RoutineSpawner{}
|
||||||
|
|
||||||
tcpClientTunnels, err := ParseTCPClientTunnelConfig(cfg)
|
err = parseRoutinesConfig(&routinesSpawners, cfg, "TCPClientTunnel", parseTCPClientTunnelConfig)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
for _, i := range tcpClientTunnels {
|
|
||||||
routinesSpawners = append(routinesSpawners, &i)
|
|
||||||
}
|
|
||||||
|
|
||||||
tcpServerTunnels, err := ParseTCPServerTunnelConfig(cfg)
|
err = parseRoutinesConfig(&routinesSpawners, cfg, "TCPServerTunnel", parseTCPServerTunnelConfig)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
for _, i := range tcpServerTunnels {
|
|
||||||
routinesSpawners = append(routinesSpawners, &i)
|
|
||||||
}
|
|
||||||
|
|
||||||
socks5Proxies, err := ParseSocks5Config(cfg)
|
err = parseRoutinesConfig(&routinesSpawners, cfg, "Socks5", parseSocks5Config)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
for _, i := range socks5Proxies {
|
|
||||||
routinesSpawners = append(routinesSpawners, &i)
|
|
||||||
}
|
|
||||||
|
|
||||||
return &Configuration{
|
return &Configuration{
|
||||||
Device: device,
|
Device: device,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue