83 lines
1.4 KiB
Go
83 lines
1.4 KiB
Go
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)
|
|
// }
|
|
// }()
|
|
// }
|
|
}
|