Bel LaPointe 2025-10-19 22:01:49 -06:00
parent 2cfe3ba909
commit b257da09d4
1 changed files with 46 additions and 0 deletions

46
main.go Normal file
View File

@ -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, `
<html>
<header></header>
<body>
<h2>The internet is not connected</h2>
<br>
<p>%s</p>
</body>
<footer></footer>
</html>
`, err.Error())
}
p.ServeHTTP(w, r)
})); err != nil {
log.Fatal(err)
}
}