Fix DHCP client unable to get IP and config not persisting
- Fixed verifyAssignment being too strict for new clients - Fixed parseRequestedIP string conversion bug - Fixed response sent to 0.0.0.0 instead of broadcast address - Added SO_BROADCAST support for UDP socket - Fixed session persistence after page refresh (localStorage) - Added in-memory session store for auth middleware - Added config reloader so DHCP server picks up web UI changes dynamically
Dieser Commit ist enthalten in:
@@ -0,0 +1,57 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"flag"
|
||||
"log"
|
||||
"dhcp-dns-manager/internal/config"
|
||||
"dhcp-dns-manager/internal/db"
|
||||
"dhcp-dns-manager/internal/dhcp"
|
||||
"dhcp-dns-manager/internal/dns"
|
||||
"dhcp-dns-manager/internal/web"
|
||||
)
|
||||
|
||||
func main() {
|
||||
configPath := flag.String("config", "configs/config.json", "Path to configuration file")
|
||||
flag.Parse()
|
||||
|
||||
// Load configuration
|
||||
cfg, err := config.LoadConfig(*configPath)
|
||||
if err != nil {
|
||||
log.Fatalf("Failed to load config: %v", err)
|
||||
}
|
||||
|
||||
// Initialize database
|
||||
database, err := db.InitDB(cfg.Database.Path)
|
||||
if err != nil {
|
||||
log.Fatalf("Failed to initialize database: %v", err)
|
||||
}
|
||||
|
||||
// Initialize DHCP server
|
||||
dhcpServer := dhcp.NewServer(&cfg.DHCP, database)
|
||||
if err := dhcpServer.Start(); err != nil {
|
||||
log.Printf("Warning: DHCP server failed to start: %v", err)
|
||||
} else {
|
||||
log.Println("DHCP server started")
|
||||
}
|
||||
|
||||
// Initialize DNS server
|
||||
dnsServer := dns.NewServer(&cfg.DNS, database)
|
||||
if err := dnsServer.Start(); err != nil {
|
||||
log.Printf("Warning: DNS server failed to start: %v", err)
|
||||
} else {
|
||||
log.Println("DNS server started")
|
||||
}
|
||||
|
||||
// Initialize Config Manager
|
||||
configManager, err := web.NewConfigManager(*configPath)
|
||||
if err != nil {
|
||||
log.Fatalf("Failed to initialize config manager: %v", err)
|
||||
}
|
||||
|
||||
// Initialize Web server
|
||||
webServer := web.NewServer(&cfg.Web, database, dhcpServer, dnsServer, configManager)
|
||||
log.Printf("Starting web interface on %s:%d", cfg.Web.Host, cfg.Web.Port)
|
||||
if err := webServer.Start(); err != nil {
|
||||
log.Fatalf("Web server failed to start: %v", err)
|
||||
}
|
||||
}
|
||||
In neuem Issue referenzieren
Einen Benutzer sperren