diff --git a/cmd/diagd/diagd.go b/cmd/diagd/diagd.go index e46c1b3..312a65f 100644 --- a/cmd/diagd/diagd.go +++ b/cmd/diagd/diagd.go @@ -7,12 +7,33 @@ import ( "html" "io" "log" + "net" "net/http" + "os" + "os/signal" "sync" + "syscall" + + "github.com/gokrazy/gokrazy" "router7/internal/diag" + "router7/internal/multilisten" ) +var httpListeners = multilisten.NewPool() + +func updateListeners() error { + hosts, err := gokrazy.PrivateInterfaceAddrs() + if err != nil { + return err + } + + httpListeners.ListenAndServe(hosts, func(host string) multilisten.Listener { + return &http.Server{Addr: net.JoinHostPort(host, "7733")} + }) + return nil +} + func dump(w io.Writer, re *diag.EvalResult) { symbol := "✔" if re.Error { @@ -50,8 +71,15 @@ func logic() error { fmt.Fprintf(w, `