diff --git a/favicon.ico b/favicon.ico new file mode 100644 index 0000000..f9abfce Binary files /dev/null and b/favicon.ico differ diff --git a/go.sum b/go.sum index f6b8812..8e9a35b 100644 --- a/go.sum +++ b/go.sum @@ -6,8 +6,6 @@ github.com/mattn/go-colorable v0.1.14 h1:9A9LHSqF/7dyVVX6g0U9cwm9pG3kP9gSzcuIPHP github.com/mattn/go-colorable v0.1.14/go.mod h1:6LmQG8QLFO4G5z1gPvYEzlUgJ2wF+stgPZH1UqBm1s8= github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= -github.com/mleku/lol v1.0.1 h1:CMGpeMTh2iE7Xc4/dtJxs0vZqwRmPiGxsqpWxdmOZKc= -github.com/mleku/lol v1.0.1/go.mod h1:daW3rL0XP4ZKscvWn990AJCrJs2Lsu+sdrI9cWbacWE= go-simpler.org/env v0.12.0 h1:kt/lBts0J1kjWJAnB740goNdvwNxt5emhYngL0Fzufs= go-simpler.org/env v0.12.0/go.mod h1:cc/5Md9JCUM7LVLtN0HYjPTDcI3Q8TDaPlNTAlDU+WI= golang.org/x/crypto v0.41.0 h1:WKYxWedPGCTVVl5+WHSSrOBT0O8lx32+zxmHxijgXp4= @@ -21,3 +19,5 @@ golang.org/x/sys v0.35.0 h1:vz1N37gP5bs89s7He8XuIYXpyY0+QlsKmzipCbUtyxI= golang.org/x/sys v0.35.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= golang.org/x/text v0.28.0 h1:rhazDwis8INMIwQ4tpjLDzUhx6RlXqZNPEM0huQojng= golang.org/x/text v0.28.0/go.mod h1:U8nCwOR8jO/marOQ0QbDiOngZVEBB7MAiitBuMjXiNU= +lol.mleku.dev v1.0.2 h1:bSV1hHnkmt1hq+9nSvRwN6wgcI7itbM3XRZ4dMB438c= +lol.mleku.dev v1.0.2/go.mod h1:DQ0WnmkntA9dPLCXgvtIgYt5G0HSqx3wSTLolHgWeLA= diff --git a/main.go b/main.go index fc752f8..98dad4b 100644 --- a/main.go +++ b/main.go @@ -6,6 +6,7 @@ import ( "bufio" "context" "crypto/tls" + _ "embed" "encoding/json" "fmt" "io" @@ -31,8 +32,10 @@ import ( "lol.mleku.dev/log" ) -func main() { +//go:embed favicon.ico +var defaultFavicon []byte +func main() { ctx, cancel := signal.NotifyContext(context.Background(), os.Interrupt) defer cancel() if err := run(ctx); err != nil { @@ -448,6 +451,20 @@ func setProxy(mapping map[string]string) (http.Handler, error) { if err := NostrDNS(hn, ba, mux); err != nil { continue } + fin := hn + "/favicon.ico" + var fi []byte + var err error + if fi, err = os.ReadFile(fin); !chk.E(err) { + fi = defaultFavicon + } + mux.HandleFunc( + hn+"/favicon.ico", + func(writer http.ResponseWriter, request *http.Request) { + if _, err = writer.Write(fi); chk.E(err) { + return + } + }, + ) continue } } else if u, err := url.Parse(ba); err == nil {