diff --git a/main.go b/main.go
new file mode 100644
index 0000000..90b10d0
--- /dev/null
+++ b/main.go
@@ -0,0 +1,46 @@
+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) + } +}