add keepalive for ssh
This commit is contained in:
@ -10,8 +10,12 @@ import (
|
||||
)
|
||||
|
||||
type metadata struct {
|
||||
handshakeTimeout time.Duration
|
||||
signer ssh.Signer
|
||||
handshakeTimeout time.Duration
|
||||
signer ssh.Signer
|
||||
keepalive bool
|
||||
keepaliveInterval time.Duration
|
||||
keepaliveTimeout time.Duration
|
||||
keepaliveRetries int
|
||||
}
|
||||
|
||||
func (d *sshDialer) parseMetadata(md mdata.Metadata) (err error) {
|
||||
@ -27,11 +31,10 @@ func (d *sshDialer) parseMetadata(md mdata.Metadata) (err error) {
|
||||
return err
|
||||
}
|
||||
|
||||
pp := mdutil.GetString(md, passphrase)
|
||||
if pp == "" {
|
||||
d.md.signer, err = ssh.ParsePrivateKey(data)
|
||||
} else {
|
||||
if pp := mdutil.GetString(md, passphrase); pp != "" {
|
||||
d.md.signer, err = ssh.ParsePrivateKeyWithPassphrase(data, []byte(pp))
|
||||
} else {
|
||||
d.md.signer, err = ssh.ParsePrivateKey(data)
|
||||
}
|
||||
if err != nil {
|
||||
return err
|
||||
@ -40,5 +43,11 @@ func (d *sshDialer) parseMetadata(md mdata.Metadata) (err error) {
|
||||
|
||||
d.md.handshakeTimeout = mdutil.GetDuration(md, handshakeTimeout)
|
||||
|
||||
if d.md.keepalive = mdutil.GetBool(md, "keepalive"); d.md.keepalive {
|
||||
d.md.keepaliveInterval = mdutil.GetDuration(md, "ttl", "keepalive.interval")
|
||||
d.md.keepaliveTimeout = mdutil.GetDuration(md, "keepalive.timeout")
|
||||
d.md.keepaliveRetries = mdutil.GetInt(md, "keepalive.retries")
|
||||
}
|
||||
|
||||
return
|
||||
}
|
||||
|
Reference in New Issue
Block a user