package ssh import ( "github.com/Neur0toxine/sshpoke/internal/server/driver/ssh/sshtun" "github.com/Neur0toxine/sshpoke/internal/server/driver/ssh/types" "github.com/Neur0toxine/sshpoke/internal/server/driver/util" ) type Params struct { Address string `mapstructure:"address" validate:"required"` HostKeys string `mapstructure:"host_keys"` DefaultHost *string `mapstructure:"default_host,omitempty"` ForwardPort uint16 `mapstructure:"forward_port"` Auth types.Auth `mapstructure:"auth"` KeepAlive types.KeepAlive `mapstructure:"keepalive"` DomainExtractRegex string `mapstructure:"domain_extract_regex" validate:"validregexp"` ReadRawPackets bool `mapstructure:"read_raw_packets"` ReadSessionsOutput *bool `mapstructure:"read_sessions_output"` Mode types.DomainMode `mapstructure:"mode" validate:"required,oneof=single multi"` FakeRemoteHost bool `mapstructure:"fake_remote_host"` Shell *sshtun.BoolOrStr `mapstructure:"shell"` ClientVersion string `mapstructure:"client_version"` Commands types.Commands `mapstructure:"commands"` } func (p *Params) Validate() error { if err := util.Validator.Struct(p); err != nil { return err } return p.Auth.Validate() }