package main
import (
"flag"
"fmt"
"log"
"net/http"
"net/http/httputil"
"net/url"
"os"
)
func main() {
fs := flag.NewFlagSet(os.Args[0], flag.ContinueOnError)
proxy := fs.String("proxy", "http://10.9.3.1:64932", "addr to proxy to")
listen := fs.String("listen", "127.0.0.1:63443", "addr to listen on")
if err := fs.Parse(os.Args[1:]); err != nil {
log.Fatal(err)
}
u, err := url.Parse(*proxy)
if err != nil {
log.Fatal(err)
}
log.Println("listening on", *listen)
if err := http.ListenAndServe(*listen, http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
p := httputil.NewSingleHostReverseProxy(u)
p.ErrorHandler = func(w http.ResponseWriter, r *http.Request, err error) {
fmt.Fprintf(w, `
%s
`, err.Error()) } p.ServeHTTP(w, r) })); err != nil { log.Fatal(err) } }