package main import ( "errors" "fmt" "log" "tcp-proxy/pkg/config" "tcp-proxy/pkg/listener" "tcp-proxy/pkg/option" ) func init() { option.Parse() } func main() { var err error fmt.Println("tcp proxy") opts := option.Get() if opts == nil { log.Fatal(errors.New("no flag parse")) } err = config.Load(opts.Config) if err != nil { log.Fatal(err) } conf := config.Get() listener, err := listener.New(conf.Listen) if err != nil { log.Fatal(err) } err = listener.Listen() if err != nil { log.Fatal(err) } // laddr, err := net.ResolveTCPAddr("tcp", ":9999") // if err != nil { // log.Fatal(err) // } // raddr, err := net.ResolveTCPAddr("tcp", "localhost:22") // if err != nil { // log.Fatal(err) // } // listener, err := net.ListenTCP("tcp", laddr) // if err != nil { // log.Fatal(err) // } // var connid uint64 = 0 // for { // conn, err := listener.AcceptTCP() // if err != nil { // log.Println(err) // continue // } // connid++ // var p *proxy.Proxy // p = proxy.New(conn, laddr, raddr) // p.Nagles = false // p.OutputHex = true // p.Log = logger.ColorLogger{ // VeryVerbose: true, // Verbose: true, // Prefix: fmt.Sprintf("Connection: #%03d ", connid), // Color: true, // } // go func() { // err := p.Start() // if err != nil { // log.Println("conn err ::: ", err) // } // }() // } }