Changeset 85 in code for trunk/downstream.go
- Timestamp:
- Mar 11, 2020, 6:09:32 PM (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/downstream.go
r77 r85 7 7 "strings" 8 8 9 "golang.org/x/crypto/bcrypt" 9 10 "gopkg.in/irc.v3" 10 11 ) … … 12 13 type ircError struct { 13 14 Message *irc.Message 15 } 16 17 func (err ircError) Error() string { 18 return err.Message.String() 14 19 } 15 20 … … 36 41 } 37 42 38 func (err ircError) Error() string { 39 return err.Message.String() 40 } 43 var errAuthFailed = ircError{&irc.Message{ 44 Command: irc.ERR_PASSWDMISMATCH, 45 Params: []string{"*", "Invalid username or password"}, 46 }} 41 47 42 48 type consumption struct { … … 59 65 username string 60 66 realname string 67 password string // empty after authentication 61 68 network *network // can be nil 62 69 } … … 290 297 } 291 298 dc.username = "~" + username 299 case "PASS": 300 if err := parseMessageParams(msg, &dc.password); err != nil { 301 return err 302 } 292 303 default: 293 304 dc.logger.Printf("unhandled message: %v", msg) … … 310 321 } 311 322 323 password := dc.password 324 dc.password = "" 325 312 326 u := dc.srv.getUser(username) 313 327 if u == nil { 314 dc.logger.Printf("failed authentication: unknown username %q", username) 315 dc.SendMessage(&irc.Message{ 316 Prefix: dc.srv.prefix(), 317 Command: irc.ERR_PASSWDMISMATCH, 318 Params: []string{"*", "Invalid username or password"}, 319 }) 320 return nil 328 dc.logger.Printf("failed authentication for %q: unknown username", username) 329 return errAuthFailed 330 } 331 332 err := bcrypt.CompareHashAndPassword([]byte(u.Password), []byte(password)) 333 if err != nil { 334 dc.logger.Printf("failed authentication for %q: %v", username, err) 335 return errAuthFailed 321 336 } 322 337
Note:
See TracChangeset
for help on using the changeset viewer.