refact: remove unused codes

rabbitprincess committed Mar 30, 2026 at 00:30 UTC 1432292dea9b2af7ab310dd1ad0db22efc57fd5e
8 files changed +79 -112
portal/api_server.go
+3 -3
@@ -390,7 +390,7 @@ func (s *Server) handleQUICTunnelConn(conn *quic.Conn) {
390 return
391 }
392 _ = stream.SetReadDeadline(time.Time{})
393 - if strings.TrimSpace(msg.LeaseID) == "" || strings.TrimSpace(msg.ReverseToken) == "" {
393 + if msg.LeaseID == "" || msg.ReverseToken == "" {
394 _ = json.NewEncoder(stream).Encode(types.QUICControlResponse{OK: false, Error: "invalid_control_message"})
395 _ = conn.CloseWithError(1, "invalid control message")
396 return
@@ -550,7 +550,7 @@ func (s *Server) renewLease(req types.RenewRequest, clientIP string) (types.Rene
550 if req.TTL > 0 {
551 ttl = time.Duration(req.TTL) * time.Second
552 }
553 - record, err := s.registry.Renew(req.LeaseID, req.ReverseToken, ttl, clientIP, utils.SanitizeReportedIP(req.ReportedIP))
553 + record, err := s.registry.Renew(strings.TrimSpace(req.LeaseID), req.ReverseToken, ttl, clientIP, utils.SanitizeReportedIP(req.ReportedIP))
554 if err != nil {
555 return types.RenewResponse{}, err
556 }
@@ -559,7 +559,7 @@ func (s *Server) renewLease(req types.RenewRequest, clientIP string) (types.Rene
559 }
560
561 func (s *Server) unregisterLease(req types.UnregisterRequest) error {
562 - record, err := s.registry.Unregister(req.LeaseID, req.ReverseToken)
562 + record, err := s.registry.Unregister(strings.TrimSpace(req.LeaseID), req.ReverseToken)
563 if err != nil {
564 return err
565 }
portal/discovery/discovery.go
+21 -40
@@ -18,12 +18,6 @@ import (
18
19 const defaultRequestTimeout = 15 * time.Second
20
21 -type RelayIdentity struct {
22 - RelayID string
23 - APIHTTPSAddr string
24 - SignerPublicKey string
25 -}
26 -
21 func NormalizeDescriptor(desc types.RelayDescriptor) (types.RelayDescriptor, error) {
22 desc.RelayID = strings.TrimSpace(desc.RelayID)
23 desc.SignerPublicKey = strings.ToLower(strings.TrimSpace(desc.SignerPublicKey))
@@ -188,57 +182,44 @@ func ValidateRelayDiscoveryResponse(resp types.DiscoveryResponse, now time.Time)
182 return self, relays, validateErr
183 }
184
191 -func RelayIdentityFromDescriptor(desc types.RelayDescriptor) (RelayIdentity, error) {
185 +// ValidateDescriptorTarget checks if a descriptor matches expected target identity.
186 +func ValidateDescriptorTarget(desc types.RelayDescriptor, targetRelayID, targetURL string) error {
187 normalized, err := NormalizeDescriptor(desc)
188 if err != nil {
194 - return RelayIdentity{}, err
195 - }
196 -
197 - identity := RelayIdentity{
198 - RelayID: strings.TrimSpace(normalized.RelayID),
199 - APIHTTPSAddr: strings.TrimSpace(normalized.APIHTTPSAddr),
200 - SignerPublicKey: strings.ToLower(strings.TrimSpace(normalized.SignerPublicKey)),
189 + return err
190 }
202 - switch {
203 - case identity.RelayID == "":
204 - return RelayIdentity{}, errors.New("descriptor relay_id is required")
205 - case identity.APIHTTPSAddr == "":
206 - return RelayIdentity{}, errors.New("descriptor api_https_addr is required")
207 - case identity.SignerPublicKey == "":
208 - return RelayIdentity{}, errors.New("descriptor signer_public_key is required")
209 - }
210 - return identity, nil
211 -}
191
213 -func MatchTargetRelayIdentity(identity RelayIdentity, targetRelayID, targetURL string) error {
214 - targetRelayID = strings.TrimSpace(targetRelayID)
215 - if targetRelayID != "" && identity.RelayID != targetRelayID {
192 + relayID := strings.TrimSpace(normalized.RelayID)
193 + if targetRelayID != "" && relayID != targetRelayID {
194 return errors.New("descriptor relay_id does not match target relay")
195 }
196
219 - targetURL = strings.TrimSpace(targetURL)
220 - if targetURL == "" {
221 - return nil
197 + if targetURL != "" {
198 + normalizedTargetURL, err := utils.NormalizeRelayURL(targetURL)
199 + if err != nil {
200 + return err
201 + }
202 + if normalized.APIHTTPSAddr != normalizedTargetURL {
203 + return errors.New("descriptor api_https_addr does not match target url")
204 + }
205 }
206 + return nil
207 +}
208
224 - normalizedTargetURL, err := utils.NormalizeRelayURL(targetURL)
209 +// ValidateDescriptorMatch checks if a descriptor matches a pinned descriptor.
210 +func ValidateDescriptorMatch(desc, pinned types.RelayDescriptor) error {
211 + normalized, err := NormalizeDescriptor(desc)
212 if err != nil {
213 return err
214 }
228 - if identity.APIHTTPSAddr != normalizedTargetURL {
229 - return errors.New("descriptor api_https_addr does not match target url")
230 - }
231 - return nil
232 -}
215
234 -func MatchPinnedRelayIdentity(identity, pinned RelayIdentity) error {
235 - if relayID := strings.TrimSpace(pinned.RelayID); relayID != "" && identity.RelayID != relayID {
216 + if relayID := strings.TrimSpace(pinned.RelayID); relayID != "" && normalized.RelayID != relayID {
217 return errors.New("descriptor relay_id does not match pinned relay id")
218 }
238 - if apiURL := strings.TrimSpace(pinned.APIHTTPSAddr); apiURL != "" && identity.APIHTTPSAddr != apiURL {
219 + if apiURL := strings.TrimSpace(pinned.APIHTTPSAddr); apiURL != "" && normalized.APIHTTPSAddr != apiURL {
220 return errors.New("descriptor api_https_addr does not match pinned relay url")
221 }
241 - if signerPublicKey := strings.ToLower(strings.TrimSpace(pinned.SignerPublicKey)); signerPublicKey != "" && identity.SignerPublicKey != signerPublicKey {
222 + if signerKey := strings.ToLower(strings.TrimSpace(pinned.SignerPublicKey)); signerKey != "" && normalized.SignerPublicKey != signerKey {
223 return errors.New("descriptor signer_public_key does not match pinned signer")
224 }
225 return nil
portal/discovery/relayset.go
+23 -27
@@ -45,7 +45,7 @@ type RelaySummary struct {
45 }
46
47 // RelaySet owns the shared relay discovery view: known relay URLs, pinned relay
48 -// identities, the latest validated descriptor seen for each relay, and common
48 +// descriptors, the latest validated descriptor seen for each relay, and common
49 // process-local relay state such as ban/reachability/failure tracking.
50 //
51 // Runtime-specific policy such as bootstrap classification, relay lifecycle, or
@@ -53,7 +53,7 @@ type RelaySummary struct {
53 type RelaySet struct {
54 mu sync.RWMutex
55 knownRelayURLs []string
56 - pinnedByRelayID map[string]RelayIdentity
56 + pinnedByRelayID map[string]types.RelayDescriptor
57 relayIDsByURL map[string]string
58 relays map[string]RelayView
59 localByURL map[string]RelayLocalState
@@ -64,7 +64,7 @@ type RelaySet struct {
64
65 func NewRelaySet() *RelaySet {
66 return &RelaySet{
67 - pinnedByRelayID: make(map[string]RelayIdentity),
67 + pinnedByRelayID: make(map[string]types.RelayDescriptor),
68 relayIDsByURL: make(map[string]string),
69 relays: make(map[string]RelayView),
70 localByURL: make(map[string]RelayLocalState),
@@ -448,17 +448,13 @@ func (s *RelaySet) pinTarget(targetRelayID, targetURL string, desc types.RelayDe
448 if s == nil {
449 return nil
450 }
451 - identity, err := RelayIdentityFromDescriptor(desc)
452 - if err != nil {
453 - return err
454 - }
455 - if err := MatchTargetRelayIdentity(identity, targetRelayID, targetURL); err != nil {
451 + if err := ValidateDescriptorTarget(desc, targetRelayID, targetURL); err != nil {
452 return err
453 }
458 - if err := s.matchPinned(identity); err != nil {
454 + if err := s.matchPinned(desc); err != nil {
455 return err
456 }
461 - s.pin(identity)
457 + s.pin(desc)
458 return nil
459 }
460
@@ -466,20 +462,21 @@ func (s *RelaySet) registerDescriptor(desc types.RelayDescriptor, now time.Time)
462 if s == nil {
463 return "", false, false, nil
464 }
469 - identity, err := RelayIdentityFromDescriptor(desc)
465 + normalized, err := NormalizeDescriptor(desc)
466 if err != nil {
467 return "", false, false, err
468 }
473 - if err := s.matchPinned(identity); err != nil {
469 + if err := s.matchPinned(normalized); err != nil {
470 return "", false, false, err
471 }
476 - s.pin(identity)
472 + s.pin(normalized)
473
474 if now.IsZero() {
475 now = time.Now().UTC()
476 }
477
482 - view, ok := s.relays[identity.RelayID]
478 + relayID := normalized.RelayID
479 + view, ok := s.relays[relayID]
480 added := !ok
481 if !ok {
482 view.FirstSeenAt = now
@@ -487,10 +484,10 @@ func (s *RelaySet) registerDescriptor(desc types.RelayDescriptor, now time.Time)
484 previousDescriptor := view.Descriptor
485 view.Descriptor = desc
486 view.LastSeenAt = now
490 - s.relays[identity.RelayID] = view
487 + s.relays[relayID] = view
488
489 changed := added || !reflect.DeepEqual(previousDescriptor, desc)
493 - return identity.RelayID, added, changed, nil
490 + return relayID, added, changed, nil
491 }
492
493 func relayDiscoveryURLs(selfDescriptor types.RelayDescriptor, relayDescriptors []types.RelayDescriptor) []string {
@@ -719,29 +716,28 @@ func (s *RelaySet) RecordDiscoveryFailure(relayID, relayURL string, err error, r
716 return false, "", localState.ConsecutiveFailures
717 }
718
722 -func (s *RelaySet) matchPinned(identity RelayIdentity) error {
719 +func (s *RelaySet) matchPinned(desc types.RelayDescriptor) error {
720 if s == nil {
721 return nil
722 }
726 - if pinned, ok := s.pinnedByRelayID[identity.RelayID]; ok {
727 - if err := MatchPinnedRelayIdentity(identity, pinned); err != nil {
723 + if pinned, ok := s.pinnedByRelayID[desc.RelayID]; ok {
724 + if err := ValidateDescriptorMatch(desc, pinned); err != nil {
725 return err
726 }
727 }
731 - if pinnedRelayID, ok := s.relayIDsByURL[identity.APIHTTPSAddr]; ok && pinnedRelayID != identity.RelayID {
732 - return MatchPinnedRelayIdentity(identity, RelayIdentity{
733 - RelayID: pinnedRelayID,
734 - APIHTTPSAddr: identity.APIHTTPSAddr,
735 - SignerPublicKey: "",
728 + if pinnedRelayID, ok := s.relayIDsByURL[desc.APIHTTPSAddr]; ok && pinnedRelayID != desc.RelayID {
729 + return ValidateDescriptorMatch(desc, types.RelayDescriptor{
730 + RelayID: pinnedRelayID,
731 + APIHTTPSAddr: desc.APIHTTPSAddr,
732 })
733 }
734 return nil
735 }
736
741 -func (s *RelaySet) pin(identity RelayIdentity) {
737 +func (s *RelaySet) pin(desc types.RelayDescriptor) {
738 if s == nil {
739 return
740 }
745 - s.pinnedByRelayID[identity.RelayID] = identity
746 - s.relayIDsByURL[identity.APIHTTPSAddr] = identity.RelayID
741 + s.pinnedByRelayID[desc.RelayID] = desc
742 + s.relayIDsByURL[desc.APIHTTPSAddr] = desc.RelayID
743 }
portal/lease.go
+12 -8
@@ -64,12 +64,16 @@ func (r *leaseRegistry) RunJanitor(ctx context.Context, interval time.Duration)
64 }
65 }
66
67 +func (r *leaseRegistry) lookup(leaseID string) (*leaseRecord, bool) {
68 + record, ok := r.leaseByID[leaseID]
69 + return record, ok
70 +}
71 +
72 func (r *leaseRegistry) Get(leaseID string) (*leaseRecord, bool) {
73 r.mu.RLock()
74 defer r.mu.RUnlock()
75
71 - record, ok := r.leaseByID[strings.TrimSpace(leaseID)]
72 - return record, ok
76 + return r.lookup(leaseID)
77 }
78
79 func (r *leaseRegistry) Lookup(host string) (*leaseRecord, bool) {
@@ -94,7 +98,7 @@ func (r *leaseRegistry) Register(record *leaseRecord) error {
98 return errors.New("lease record is required")
99 }
100
97 - leaseID := strings.TrimSpace(record.ID)
101 + leaseID := record.ID
102 if leaseID == "" {
103 return errors.New("lease id is required")
104 }
@@ -124,7 +128,7 @@ func (r *leaseRegistry) Renew(leaseID, reverseToken string, ttl time.Duration, c
128 r.mu.Lock()
129 defer r.mu.Unlock()
130
127 - record, ok := r.leaseByID[strings.TrimSpace(leaseID)]
131 + record, ok := r.lookup(leaseID)
132 if !ok {
133 return nil, errLeaseNotFound
134 }
@@ -149,7 +153,7 @@ func (r *leaseRegistry) Unregister(leaseID, reverseToken string) (*leaseRecord,
153 r.mu.Lock()
154 defer r.mu.Unlock()
155
152 - record, ok := r.leaseByID[strings.TrimSpace(leaseID)]
156 + record, ok := r.lookup(leaseID)
157 if !ok {
158 return nil, errLeaseNotFound
159 }
@@ -167,7 +171,7 @@ func (r *leaseRegistry) FindByID(leaseID string) (*leaseRecord, error) {
171 r.mu.RLock()
172 defer r.mu.RUnlock()
173
170 - record, ok := r.leaseByID[strings.TrimSpace(leaseID)]
174 + record, ok := r.lookup(leaseID)
175 if !ok || time.Now().After(record.ExpiresAt) {
176 return nil, errLeaseNotFound
177 }
@@ -178,8 +182,8 @@ func (r *leaseRegistry) Touch(leaseID, clientIP string, now time.Time) *leaseRec
182 r.mu.Lock()
183 defer r.mu.Unlock()
184
181 - record := r.leaseByID[strings.TrimSpace(leaseID)]
182 - if record == nil {
185 + record, ok := r.lookup(leaseID)
186 + if !ok {
187 return nil
188 }
189 record.LastSeenAt = now
portal/policy/approver.go
-3
@@ -2,7 +2,6 @@ package policy
2
3 import (
4 "fmt"
5 - "strings"
5 "sync"
6 )
7
@@ -111,7 +110,6 @@ func (a *Approver) SetDecisions(approvedLeases, deniedLeases []string) {
110
111 approved := make(map[string]struct{}, len(approvedLeases))
112 for _, leaseID := range approvedLeases {
114 - leaseID = strings.TrimSpace(leaseID)
113 if leaseID == "" {
114 continue
115 }
@@ -120,7 +118,6 @@ func (a *Approver) SetDecisions(approvedLeases, deniedLeases []string) {
118
119 denied := make(map[string]struct{}, len(deniedLeases))
120 for _, leaseID := range deniedLeases {
123 - leaseID = strings.TrimSpace(leaseID)
121 if leaseID == "" {
122 continue
123 }
portal/policy/bps_manager.go
+5 -12
@@ -2,7 +2,6 @@ package policy
2
3 import (
4 "maps"
5 - "strings"
5 "sync"
6 )
7
@@ -18,22 +17,17 @@ func NewBPSManager() *BPSManager {
17 }
18
19 func (m *BPSManager) LeaseBPS(leaseID string) int64 {
21 - if m == nil {
20 + if m == nil || leaseID == "" {
21 return 0
22 }
23
24 m.mu.RLock()
25 defer m.mu.RUnlock()
27 - return m.leaseBPS[strings.TrimSpace(leaseID)]
26 + return m.leaseBPS[leaseID]
27 }
28
29 func (m *BPSManager) SetLeaseBPS(leaseID string, bps int64) {
31 - if m == nil {
32 - return
33 - }
34 -
35 - leaseID = strings.TrimSpace(leaseID)
36 - if leaseID == "" {
30 + if m == nil || leaseID == "" {
31 return
32 }
33
@@ -47,13 +41,13 @@ func (m *BPSManager) SetLeaseBPS(leaseID string, bps int64) {
41 }
42
43 func (m *BPSManager) DeleteLeaseBPS(leaseID string) {
50 - if m == nil {
44 + if m == nil || leaseID == "" {
45 return
46 }
47
48 m.mu.Lock()
49 defer m.mu.Unlock()
56 - delete(m.leaseBPS, strings.TrimSpace(leaseID))
50 + delete(m.leaseBPS, leaseID)
51 }
52
53 func (m *BPSManager) LeaseBPSLimits() map[string]int64 {
@@ -76,7 +70,6 @@ func (m *BPSManager) SetLeaseBPSLimits(limits map[string]int64) {
70
71 next := make(map[string]int64, len(limits))
72 for leaseID, bps := range limits {
79 - leaseID = strings.TrimSpace(leaseID)
73 if leaseID == "" || bps <= 0 {
74 continue
75 }
portal/policy/ip_filter.go
+7 -4
@@ -66,8 +66,6 @@ func (f *IPFilter) SetBannedIPs(ips []string) {
66 func (f *IPFilter) RegisterLeaseIP(leaseID, ip string) {
67 f.mu.Lock()
68 defer f.mu.Unlock()
69 - leaseID = strings.TrimSpace(leaseID)
70 - ip = strings.TrimSpace(ip)
69 if leaseID == "" || ip == "" {
70 return
71 }
@@ -90,14 +88,19 @@ func (f *IPFilter) RegisterLeaseIP(leaseID, ip string) {
88 func (f *IPFilter) LeaseIP(leaseID string) string {
89 f.mu.RLock()
90 defer f.mu.RUnlock()
93 - return f.leaseToIP[strings.TrimSpace(leaseID)]
91 + if leaseID == "" {
92 + return ""
93 + }
94 + return f.leaseToIP[leaseID]
95 }
96
97 func (f *IPFilter) RemoveLeaseIP(leaseID string) {
98 f.mu.Lock()
99 defer f.mu.Unlock()
100
100 - leaseID = strings.TrimSpace(leaseID)
101 + if leaseID == "" {
102 + return
103 + }
104 ip, ok := f.leaseToIP[leaseID]
105 if !ok {
106 return
portal/policy/runtime.go
+8 -15
@@ -1,7 +1,6 @@
1 package policy
2
3 import (
4 - "strings"
4 "sync"
5 )
6
@@ -46,11 +45,7 @@ func (r *Runtime) BPSManager() *BPSManager {
45 }
46
47 func (r *Runtime) BanLease(leaseID string) {
49 - if r == nil {
50 - return
51 - }
52 - leaseID = strings.TrimSpace(leaseID)
53 - if leaseID == "" {
48 + if r == nil || leaseID == "" {
49 return
50 }
51 r.mu.Lock()
@@ -59,22 +54,21 @@ func (r *Runtime) BanLease(leaseID string) {
54 }
55
56 func (r *Runtime) UnbanLease(leaseID string) {
62 - if r == nil {
57 + if r == nil || leaseID == "" {
58 return
59 }
65 - leaseID = strings.TrimSpace(leaseID)
60 r.mu.Lock()
61 defer r.mu.Unlock()
62 delete(r.bannedLeases, leaseID)
63 }
64
65 func (r *Runtime) IsLeaseBanned(leaseID string) bool {
72 - if r == nil {
66 + if r == nil || leaseID == "" {
67 return false
68 }
69 r.mu.RLock()
70 defer r.mu.RUnlock()
77 - _, ok := r.bannedLeases[strings.TrimSpace(leaseID)]
71 + _, ok := r.bannedLeases[leaseID]
72 return ok
73 }
74
@@ -98,7 +92,6 @@ func (r *Runtime) SetBannedLeases(leaseIDs []string) {
92
93 bannedLeases := make(map[string]struct{}, len(leaseIDs))
94 for _, leaseID := range leaseIDs {
101 - leaseID = strings.TrimSpace(leaseID)
95 if leaseID == "" {
96 continue
97 }
@@ -111,20 +104,20 @@ func (r *Runtime) SetBannedLeases(leaseIDs []string) {
104 }
105
106 func (r *Runtime) EffectiveApproval(leaseID string) bool {
114 - if r == nil || r.approver == nil {
107 + if r == nil || r.approver == nil || leaseID == "" {
108 return true
109 }
110 if r.approver.Mode() == ModeAuto {
111 return true
112 }
120 - return r.approver.IsApproved(strings.TrimSpace(leaseID))
113 + return r.approver.IsApproved(leaseID)
114 }
115
116 func (r *Runtime) IsLeaseDenied(leaseID string) bool {
124 - if r == nil || r.approver == nil {
117 + if r == nil || r.approver == nil || leaseID == "" {
118 return false
119 }
127 - return r.approver.IsDenied(strings.TrimSpace(leaseID))
120 + return r.approver.IsDenied(leaseID)
121 }
122
123 func (r *Runtime) IsLeaseRoutable(leaseID string) bool {