fix(go): repair migration wire contracts and runtime lifecycle; document incomplete port
This commit is contained in:
1 parent
e43a310617
commit
32e47014b5
35 files changed
+16826
-438
No files matched your search
+12
-2
@@ -6,6 +6,7 @@ import (
|
||||
"fmt"
|
||||
"html/template"
|
||||
"log"
|
||||
"net"
|
||||
"net/http"
|
||||
"sync"
|
||||
"time"
|
||||
@@ -43,15 +44,24 @@ func (a *AdminServer) Start() error {
|
||||
mux.HandleFunc("/api/command", a.handleCommand)
|
||||
mux.HandleFunc("/api/sessions", a.handleSessions)
|
||||
|
||||
addr := fmt.Sprintf("%s:%d", a.cfg.Network.BindHost, a.cfg.Admin.Port)
|
||||
host := a.cfg.Admin.Host
|
||||
if host == "" {
|
||||
host = "127.0.0.1"
|
||||
}
|
||||
addr := net.JoinHostPort(host, fmt.Sprint(a.cfg.Admin.Port))
|
||||
a.httpSrv = &http.Server{
|
||||
Addr: addr,
|
||||
Handler: mux,
|
||||
}
|
||||
|
||||
ln, err := net.Listen("tcp", addr)
|
||||
if err != nil {
|
||||
cancel()
|
||||
return err
|
||||
}
|
||||
go func() {
|
||||
log.Printf("[ADMIN-GM] Admin Web Panel running at http://%s:%d/", a.cfg.Network.AdvertisedHost, a.cfg.Admin.Port)
|
||||
if err := a.httpSrv.ListenAndServe(); err != nil && err != http.ErrServerClosed {
|
||||
if err := a.httpSrv.Serve(ln); err != nil && err != http.ErrServerClosed {
|
||||
log.Printf("[ADMIN-GM] Web server error: %v", err)
|
||||
}
|
||||
}()
|
||||
|
||||
@@ -5,6 +5,7 @@ import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"log"
|
||||
"net"
|
||||
"net/http"
|
||||
"time"
|
||||
|
||||
@@ -40,9 +41,14 @@ func (d *DebugServer) Start() error {
|
||||
Handler: mux,
|
||||
}
|
||||
|
||||
ln, err := net.Listen("tcp", addr)
|
||||
if err != nil {
|
||||
cancel()
|
||||
return err
|
||||
}
|
||||
go func() {
|
||||
log.Printf("[DEBUG-API] Debug WebUI panel at http://%s:5809/", d.cfg.Network.AdvertisedHost)
|
||||
if err := d.httpSrv.ListenAndServe(); err != nil && err != http.ErrServerClosed {
|
||||
if err := d.httpSrv.Serve(ln); err != nil && err != http.ErrServerClosed {
|
||||
log.Printf("[DEBUG-API] Debug server error: %v", err)
|
||||
}
|
||||
}()
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
package web
|
||||
|
||||
import (
|
||||
"ananta-ps/internal/config"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestAdminHonorsConfiguredHost(t *testing.T) {
|
||||
cfg := &config.Config{Network: config.NetworkConfig{BindHost: "0.0.0.0"}, Admin: config.AdminConfig{Enabled: true, Host: "127.0.0.1"}}
|
||||
a := NewAdmin(cfg, nil)
|
||||
if err := a.Start(); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
defer a.Stop()
|
||||
if a.httpSrv.Addr != "127.0.0.1:0" {
|
||||
t.Fatalf("admin bind ignored: %s", a.httpSrv.Addr)
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user