package main
import (
"fmt"
"net"
"net/http"
"net/http/httptest"
"net/url"
"go.etcd.io/etcd/proxy/tcpproxy"
)
func main() {
l, err := net.Listen("tcp", "127.0.0.1:0")
if err != nil {
fmt.Println(err)
}
defer l.Close()
want := "hello proxy"
ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
fmt.Fprint(w, want)
}))
defer ts.Close()
u, err := url.Parse(ts.URL)
fmt.Println(u)
if err != nil {
fmt.Println(err)
}
var port uint16
fmt.Sscanf(u.Port(), "%d", &port)
p := tcpproxy.TCPProxy{
Listener: l,
Endpoints: []*net.SRV{{
Target: u.Hostname(), Port: port,
}},
}
p.Run()
}