Files
elmprodvpn/selective-vpn-api/app/transport_shared.go

47 lines
1.1 KiB
Go

package app
import (
"net/netip"
transporttoken "selective-vpn-api/app/transporttoken"
"sync"
"time"
)
const (
transportStateVersion = 1
transportDefaultIfaceID = "shared"
transportConfirmTTL = 10 * time.Minute
transportMarkStart uint64 = 0x100
transportMarkEnd uint64 = 0x1ff
transportMarkReserveEnd uint64 = 0x10f
transportPrefStart = 13000
transportPrefStep = 50
transportPrefEnd = 19999
transportPrefReserveEnd = 13249
)
type transportClientsState struct {
Version int `json:"version"`
UpdatedAt string `json:"updated_at,omitempty"`
Items []TransportClient `json:"items,omitempty"`
}
type cidrIntent struct {
ClientID string
Prefix netip.Prefix
Key string
}
type transportValidationResult struct {
Normalized []TransportPolicyIntent
Conflicts []TransportConflictRecord
Summary TransportPolicyValidateSummary
Diff TransportPolicyDiff
Valid bool
}
var (
transportMu sync.Mutex
transportConfirmStore = transporttoken.NewStore(transportConfirmTTL)
)