Skip to content

Commit

Permalink
Merge pull request #6 from LeeEirc/perf_code
Browse files Browse the repository at this point in the history
update code
  • Loading branch information
LeeEirc authored Nov 11, 2021
2 parents 2db8d8f + d807a52 commit 1e7d5a2
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 11 deletions.
13 changes: 10 additions & 3 deletions client.go
Original file line number Diff line number Diff line change
Expand Up @@ -42,13 +42,15 @@ func (c *Client) loginAuthentication() error {
_, _ = c.Write([]byte("\r\n"))
return nil
case AuthFailed:
return errors.New("failed login")
return ErrFailedLogin
default:
continue
}
}
}

var ErrFailedLogin = errors.New("failed login")

func (c *Client) handleLoginData(data []byte) AuthStatus {
if !c.loginStatus.usernameDone && c.conf.UsernameRegex.Match(data) {
_, _ = c.sock.Write([]byte(c.conf.Username))
Expand All @@ -66,12 +68,17 @@ func (c *Client) handleLoginData(data []byte) AuthStatus {
return AuthPartial
}

if c.conf.LoginSuccessRegex.Match(data) {
if c.conf.BuiltinSuccessRegex.Match(data) {
traceLogf("Success pattern match: %s \r\n", bytes.TrimSpace(data))
return AuthSuccess
}

if c.conf.LoginSuccessRegex != nil && c.conf.LoginSuccessRegex.Match(data) {
traceLogf("Success pattern match: %s \r\n", bytes.TrimSpace(data))
return AuthSuccess
}

if c.conf.LoginFailureRegex.Match(data) {
if c.conf.BuiltinFailureRegex.Match(data) {
traceLogf("Incorrect pattern match:%s \r\n", bytes.TrimSpace(data))
c.loginStatus.usernameDone = false
c.loginStatus.passwordDone = false
Expand Down
17 changes: 9 additions & 8 deletions config.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,11 +25,12 @@ type Config struct {
Timeout time.Duration
TTYOptions *TerminalOptions

UsernameRegex *regexp.Regexp
PasswordRegex *regexp.Regexp
LoginFailureRegex *regexp.Regexp
LoginSuccessRegex *regexp.Regexp
UsernameRegex *regexp.Regexp
PasswordRegex *regexp.Regexp
BuiltinFailureRegex *regexp.Regexp
BuiltinSuccessRegex *regexp.Regexp

LoginSuccessRegex *regexp.Regexp
}

func (conf *Config) SetDefaults() {
Expand Down Expand Up @@ -59,11 +60,11 @@ func (conf *Config) SetDefaults() {
conf.PasswordRegex = DefaultPasswordPattern
}

if conf.LoginSuccessRegex == nil {
conf.LoginSuccessRegex = DefaultLoginSuccessPattern
if conf.BuiltinSuccessRegex == nil {
conf.BuiltinSuccessRegex = DefaultLoginSuccessPattern
}
if conf.LoginFailureRegex == nil {
conf.LoginFailureRegex = DefaultLoginFailedPattern
if conf.BuiltinFailureRegex == nil {
conf.BuiltinFailureRegex = DefaultLoginFailedPattern
}
}

Expand Down

0 comments on commit 1e7d5a2

Please sign in to comment.