Merge from remote branch

This commit is contained in:
yaling888
2021-07-28 22:13:21 +08:00
33 changed files with 1549 additions and 142 deletions

View File

@ -76,16 +76,14 @@ func ApplyConfig(cfg *config.Config, force bool) {
defer mux.Unlock()
updateUsers(cfg.Users)
updateDNS(cfg.DNS, cfg.General)
updateGeneral(cfg.General, force)
log.SetLevel(log.DEBUG)
updateProxies(cfg.Proxies, cfg.Providers)
updateRules(cfg.Rules)
updateHosts(cfg.Hosts)
updateExperimental(cfg)
updateProfile(cfg)
updateIPTables(cfg.DNS, cfg.General)
log.SetLevel(cfg.General.LogLevel)
updateDNS(cfg.DNS, cfg.General)
updateGeneral(cfg.General, force)
updateExperimental(cfg)
}
func GetGeneral() *config.General {
@ -178,7 +176,6 @@ func updateRules(rules []C.Rule) {
}
func updateGeneral(general *config.General, force bool) {
log.SetLevel(log.DEBUG)
tunnel.SetMode(general.Mode)
resolver.DisableIPv6 = !general.IPv6
@ -223,7 +220,7 @@ func updateGeneral(general *config.General, force bool) {
}
if err := P.ReCreateSocks(general.SocksPort, tcpIn, udpIn); err != nil {
log.Errorln("Start SOCKS5 server error: %s", err.Error())
log.Errorln("Start SOCKS server error: %s", err.Error())
}
if err := P.ReCreateRedir(general.RedirPort, tcpIn, udpIn); err != nil {
@ -235,7 +232,7 @@ func updateGeneral(general *config.General, force bool) {
}
if err := P.ReCreateMixed(general.MixedPort, tcpIn, udpIn); err != nil {
log.Errorln("Start Mixed(http and socks5) server error: %s", err.Error())
log.Errorln("Start Mixed(http and socks) server error: %s", err.Error())
}
if err := P.ReCreateTun(general.Tun, tcpIn, udpIn); err != nil {

View File

@ -3,6 +3,7 @@ package route
import (
"bytes"
"encoding/json"
"net"
"net/http"
"strings"
"time"
@ -81,10 +82,15 @@ func Start(addr string, secret string) {
})
}
log.Infoln("RESTful API listening at: %s", addr)
err := http.ListenAndServe(addr, r)
l, err := net.Listen("tcp", addr)
if err != nil {
log.Errorln("External controller error: %s", err.Error())
log.Errorln("External controller listen error: %s", err)
return
}
serverAddr = l.Addr().String()
log.Infoln("RESTful API listening at: %s", serverAddr)
if err = http.Serve(l, r); err != nil {
log.Errorln("External controller serve error: %s", err)
}
}