63 lines
1.2 KiB
Go
63 lines
1.2 KiB
Go
package adapter
|
|
|
|
import (
|
|
"net/netip"
|
|
"time"
|
|
)
|
|
|
|
const (
|
|
OpenConnectStateConnecting = "connecting"
|
|
OpenConnectStateAuthPending = "auth-pending"
|
|
OpenConnectStateConnected = "connected"
|
|
OpenConnectStateError = "error"
|
|
)
|
|
|
|
type OpenConnectEndpoint interface {
|
|
Endpoint
|
|
OpenConnectStatus() OpenConnectStatus
|
|
StatusUpdated() <-chan struct{}
|
|
CompleteAuthForm(formID string, values map[string]string) error
|
|
CancelAuthForm(formID string) error
|
|
}
|
|
|
|
type OpenConnectStatus struct {
|
|
State string
|
|
AuthForm *OpenConnectAuthForm
|
|
Error string
|
|
TunnelInfo *OpenConnectTunnelInfo
|
|
}
|
|
|
|
type OpenConnectTunnelInfo struct {
|
|
Server string
|
|
Flavor string
|
|
Transport string
|
|
IPv4 []netip.Prefix
|
|
IPv6 []netip.Prefix
|
|
DNS []netip.Addr
|
|
MTU uint32
|
|
ConnectedSince time.Time
|
|
}
|
|
|
|
type OpenConnectAuthForm struct {
|
|
ID string
|
|
Banner string
|
|
Message string
|
|
Error string
|
|
URL string
|
|
Fields []OpenConnectAuthFormField
|
|
}
|
|
|
|
type OpenConnectAuthFormField struct {
|
|
SubmissionKey string
|
|
Name string
|
|
Label string
|
|
Kind string
|
|
Value string
|
|
Options []OpenConnectAuthFormChoice
|
|
}
|
|
|
|
type OpenConnectAuthFormChoice struct {
|
|
Value string
|
|
Label string
|
|
}
|