mirror of
https://github.com/wweir/sower.git
synced 2024-04-21 12:42:15 +00:00
46 lines
1.3 KiB
Go
46 lines
1.3 KiB
Go
package main
|
|
|
|
import (
|
|
"flag"
|
|
"fmt"
|
|
|
|
"github.com/wweir/sower/conf"
|
|
"github.com/wweir/sower/proxy"
|
|
"github.com/wweir/sower/router"
|
|
)
|
|
|
|
func main() {
|
|
switch {
|
|
case conf.Conf.Server.Upstream != "":
|
|
proxy.StartServer(conf.Conf.Server.Upstream, conf.Conf.Password, conf.ConfigDir,
|
|
conf.Conf.Server.CertFile, conf.Conf.Server.KeyFile, conf.Conf.Server.CertEmail)
|
|
|
|
case conf.Conf.Client.Address != "":
|
|
route := &router.Route{
|
|
ProxyAddress: conf.Conf.Client.Address,
|
|
ProxyPassword: conf.Conf.Password,
|
|
DetectLevel: conf.Conf.Client.Router.DetectLevel,
|
|
DetectTimeout: conf.Conf.Client.Router.DetectTimeout,
|
|
DirectList: conf.Conf.Client.Router.DirectList,
|
|
ProxyList: conf.Conf.Client.Router.ProxyList,
|
|
DynamicList: conf.Conf.Client.Router.DynamicList,
|
|
PersistFn: conf.PersistRule,
|
|
}
|
|
|
|
go proxy.StartHTTPProxy(conf.Conf.Client.HTTPProxy, conf.Conf.Client.Address,
|
|
[]byte(conf.Conf.Password), route.ShouldProxy)
|
|
|
|
if conf.Conf.Client.DNSServeIP != "" {
|
|
go proxy.StartDNS(conf.Conf.Client.DNSServeIP, conf.Conf.Client.DNSUpstream,
|
|
route.ShouldProxy)
|
|
}
|
|
|
|
proxy.StartClient(conf.Conf.Client.Address, conf.Conf.Password,
|
|
conf.Conf.Client.DNSServeIP != "", conf.Conf.Client.PortForward)
|
|
|
|
default:
|
|
fmt.Println()
|
|
flag.Usage()
|
|
}
|
|
}
|