Fix "no such file" error creating clients on non-default servers

SuggestIPAllocation always looked up the legacy "wg0" server regardless
of which server the request was for, so any setup without a migrated
wg0 (i.e. every fresh multi-server install) failed with
"open db/servers/wg0.json: no such file or directory" when adding a
new client.

Now accepts an optional server_id query param (falling back to wg0 for
the legacy bare routes), and the per-server clients page passes its
own server ID.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
sysops
2026-07-12 23:39:26 +02:00
co-authored by Claude Sonnet 5
parent 8a92958a84
commit 067d0af323
3 changed files with 39 additions and 2 deletions
+33
View File
@@ -2169,3 +2169,36 @@ Keine Commits in dieser Session.
- util/util.go | 63 +++++++++++++++++++++----- - util/util.go | 63 +++++++++++++++++++++-----
--- ---
## 2026-07-12 23:27 23:27 (0m)
**Beschreibung:** Claude Code Session
**Projekt:** wireguard-ui-multi
### Commits
- 8a92958 Update DEVLOG session log
### Geänderte Dateien
- DEVLOG.md | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++
---
## 2026-07-12 23:29 23:30 (1m)
**Beschreibung:** Claude Code Session
**Projekt:** wireguard-ui-multi
### Commits
Keine Commits in dieser Session.
### Geänderte Dateien
- DEVLOG.md | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++
---
## 2026-07-12 23:32 23:34 (2m)
**Beschreibung:** Claude Code Session
**Projekt:** wireguard-ui-multi
### Commits
Keine Commits in dieser Session.
### Geänderte Dateien
- DEVLOG.md | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++
---
+5 -1
View File
@@ -1588,7 +1588,11 @@ func GetOrderedSubnetRanges() echo.HandlerFunc {
// SuggestIPAllocation handler to get the list of ip address for client // SuggestIPAllocation handler to get the list of ip address for client
func SuggestIPAllocation(db store.IStore) echo.HandlerFunc { func SuggestIPAllocation(db store.IStore) echo.HandlerFunc {
return func(c echo.Context) error { return func(c echo.Context) error {
server, err := db.GetServerByID(util.DefaultServerID) serverID := c.QueryParam("server_id")
if serverID == "" {
serverID = util.DefaultServerID
}
server, err := db.GetServerByID(serverID)
if err != nil { if err != nil {
log.Error("Cannot fetch server config from database: ", err) log.Error("Cannot fetch server config from database: ", err)
return c.JSON(http.StatusBadRequest, jsonHTTPResponse{false, err.Error()}) return c.JSON(http.StatusBadRequest, jsonHTTPResponse{false, err.Error()})
+1 -1
View File
@@ -322,7 +322,7 @@ Wireguard Clients
$.ajax({ $.ajax({
cache: false, cache: false,
method: 'GET', method: 'GET',
url: `{{.basePath}}/api/suggest-client-ips?sr=${subnetRange}`, url: `{{.basePath}}/api/suggest-client-ips?sr=${subnetRange}&server_id={{.serverID}}`,
dataType: 'json', dataType: 'json',
contentType: "application/json", contentType: "application/json",
success: function(data) { success: function(data) {