feat: enhance lease management retrieval and clean up unused functions
gosunuts committed
Feb 26, 2026 at 11:09 UTC
f2b3fac1605eb611909ac3b864f0c84760800b19
5 files changed
+2
-45
cmd/relay-server/admin.go
+1
-1
@@ -243,7 +243,7 @@ func (a *Admin) HandleAdminRequest(w http.ResponseWriter, r *http.Request, serv
243
writeJSON(w, serv.GetLeaseManager().GetBannedLeases())
244
case route == "stats" && r.Method == http.MethodGet:
245
writeJSON(w, map[string]interface{}{
246
- "leases_count": len(serv.GetAllLeaseEntries()),
246
+ "leases_count": len(serv.GetLeaseManager().GetAllLeaseEntries()),
247
"uptime": "TODO",
248
})
249
case route == "settings" && r.Method == http.MethodGet:
cmd/relay-server/serve.go
-1
@@ -170,7 +170,6 @@ func proxyToHTTP(w http.ResponseWriter, r *http.Request, serv *portal.RelayServe
170
return
171
}
172
173
- // Find lease by name
173
entry, ok := serv.GetLeaseManager().GetLeaseByName(leaseName)
174
if !ok {
175
http.Error(w, "service not found", http.StatusNotFound)
cmd/relay-server/utils.go
+1
-1
@@ -423,7 +423,7 @@ func (r *leaseRow) fromLeaseEntry(entry *portal.LeaseEntry, admin *Admin, portal
423
// If forAdmin is true, includes all leases with admin-only fields.
424
// If forAdmin is false, filters out banned, unapproved, hidden, and stale leases.
425
func convertLeaseEntriesToRows(serv *portal.RelayServer, admin *Admin, forAdmin bool) []leaseRow {
426
- leaseEntries := serv.GetAllLeaseEntries()
426
+ leaseEntries := serv.GetLeaseManager().GetAllLeaseEntries()
427
rows := []leaseRow{}
428
now := time.Now()
429
portal/lease.go
-27
@@ -235,33 +235,6 @@ func (lm *LeaseManager) GetLeaseByName(name string) (*LeaseEntry, bool) {
235
return nil, false
236
}
237
238
- now := time.Now()
239
- for _, lease := range lm.leases {
240
- if lease.Lease.Name == name {
241
- // Check if banned
242
- if _, banned := lm.bannedLeases[lease.Lease.ID]; banned {
243
- continue
244
- }
245
- // Check if expired
246
- if now.After(lease.Expires) {
247
- continue
248
- }
249
- return lease, true
250
- }
251
- }
252
- return nil, false
253
-}
254
-
255
-// GetLeaseByNameFold returns a lease entry by name using case-insensitive matching.
256
-// This is needed because DNS subdomains are case-insensitive.
257
-func (lm *LeaseManager) GetLeaseByNameFold(name string) (*LeaseEntry, bool) {
258
- lm.leasesLock.RLock()
259
- defer lm.leasesLock.RUnlock()
260
-
261
- if name == "" {
262
- return nil, false
263
- }
264
-
238
now := time.Now()
239
for _, lease := range lm.leases {
240
if strings.EqualFold(lease.Lease.Name, name) {
portal/relay.go
-15
@@ -47,21 +47,6 @@ func (g *RelayServer) GetLeaseManager() *LeaseManager {
47
return g.leaseManager
48
}
49
50
-// GetLeaseByName returns a lease entry by its name.
51
-func (g *RelayServer) GetLeaseByName(name string) (*LeaseEntry, bool) {
52
- return g.leaseManager.GetLeaseByName(name)
53
-}
54
-
55
-// GetLeaseByNameFold returns a lease entry by name using case-insensitive matching.
56
-func (g *RelayServer) GetLeaseByNameFold(name string) (*LeaseEntry, bool) {
57
- return g.leaseManager.GetLeaseByNameFold(name)
58
-}
59
-
60
-// GetAllLeaseEntries returns all lease entries from the lease manager.
61
-func (g *RelayServer) GetAllLeaseEntries() []*LeaseEntry {
62
- return g.leaseManager.GetAllLeaseEntries()
63
-}
64
-
50
// GetReverseHub returns the reverse hub instance.
51
func (g *RelayServer) GetReverseHub() *ReverseHub {
52
return g.reverseHub