2020-04-10 17:14:01 -04:00

38 lines
749 B
Go

package main
import (
"flag"
"fmt"
"math/rand"
"os"
"time"
)
func main() {
configPath := flag.String("config", "", "Config file.")
bindAddr := flag.String("bind", "127.0.0.1:7000", "Bind address and port")
flag.Parse()
if *configPath == "" {
flag.PrintDefaults()
os.Exit(1)
}
rand.Seed(time.Now().UTC().UnixNano()) // always seed random!
var pm *ProxyManager
pm, err := NewPM(*configPath)
// fmt.Println("pm:", pm)
if err != nil {
return
}
fmt.Printf("Load balance mode: %s.\n", pm.DescribeLoadBalanceMode())
conf := &Config{PM: pm}
server, err := New(conf)
if err != nil {
panic(err)
}
// Create SOCKS5 proxy on localhost port 8000
if err := server.ListenAndServe("tcp", *bindAddr); err != nil {
panic(err)
}
}