Files
navi/internal/core/engine.go

29 lines
852 B
Go

package core
import (
"context"
"vpnclient/internal/config"
)
// Engine runs one protocol backend (e.g. official naive.exe).
type Engine interface {
Protocol() config.Protocol
Start(ctx context.Context, profile config.Profile, binDir string) error
Stop() error
Running() bool
LocalHTTPProxy() (hostPort string, ok bool)
LocalSOCKSProxy() (hostPort string, ok bool)
}
// Status is a snapshot of the connection manager.
type Status struct {
Connected bool `json:"connected"`
Profile string `json:"profile,omitempty"`
Protocol config.Protocol `json:"protocol,omitempty"`
HTTPProxy string `json:"http_proxy,omitempty"`
SOCKSProxy string `json:"socks_proxy,omitempty"`
SystemProxy bool `json:"system_proxy"`
Extra map[string]string `json:"extra,omitempty"`
}