tclient/login.go

47 lines
832 B
Go

package tclient
// Login is a simple wrapper for login/password auth
func (c *TelnetClient) Login(login string, password string) (string, error) {
// wait for login
result := ""
out, err := c.ReadUntil(c.denialMsg)
result = out
if err == nil {
lockederr := errors.New("Locked: Denied Entry")
return result, lockederr
}
out, err := c.ReadUntil(c.loginPrompt)
result = out
if err != nil {
return result, err
}
err = c.Write([]byte(login))
if err != nil {
return result, err
}
// and for password
out, err = c.ReadUntil(c.passwordPrompt)
result += out
if err != nil {
return result, err
}
err = c.Write([]byte(password))
if err != nil {
return result, err
}
// and wait for prompt
out, err = c.ReadUntil(c.prompt)
result += out
if err != nil {
return result, err
}
return result, nil
}