From b257da09d4634c565828e02ba74b985a13b43f57 Mon Sep 17 00:00:00 2001 From: Bel LaPointe <153096461+breel-render@users.noreply.github.com> Date: Sun, 19 Oct 2025 22:01:49 -0600 Subject: [PATCH] mvp --- main.go | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 main.go 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, ` + +
+ +

The internet is not connected

+
+

%s

+ + + + `, err.Error()) + } + p.ServeHTTP(w, r) + })); err != nil { + log.Fatal(err) + } +}