Changeset 183 in code
- Timestamp:
- Mar 28, 2020, 4:25:48 PM (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/downstream.go
r182 r183 73 73 rawUsername string 74 74 networkName string 75 clientName string 75 76 realname string 76 77 hostname string … … 575 576 } 576 577 577 func unmarshalUsername(rawUsername string) (username, network string) {578 func unmarshalUsername(rawUsername string) (username, client, network string) { 578 579 username = rawUsername 579 if i := strings.LastIndexAny(username, "/@"); i >= 0 { 580 network = username[i+1:] 581 } 582 if i := strings.IndexAny(username, "/@"); i >= 0 { 583 username = username[:i] 584 } 585 return username, network 580 581 i := strings.IndexAny(username, "/@") 582 j := strings.LastIndexAny(username, "/@") 583 if i >= 0 { 584 username = rawUsername[:i] 585 } 586 if j >= 0 { 587 network = rawUsername[j+1:] 588 } 589 if i >= 0 && j >= 0 && i < j { 590 client = rawUsername[i+1 : j] 591 } 592 593 return username, client, network 586 594 } 587 595 588 596 func (dc *downstreamConn) authenticate(username, password string) error { 589 username, networkName := unmarshalUsername(username)597 username, clientName, networkName := unmarshalUsername(username) 590 598 591 599 u, err := dc.srv.db.GetUser(username) … … 606 614 return errAuthFailed 607 615 } 616 dc.clientName = clientName 608 617 dc.networkName = networkName 609 618 return nil … … 623 632 } 624 633 625 if dc. networkName == "" {626 _, dc. networkName = unmarshalUsername(dc.rawUsername)634 if dc.clientName == "" && dc.networkName == "" { 635 _, dc.clientName, dc.networkName = unmarshalUsername(dc.rawUsername) 627 636 } 628 637
Note:
See TracChangeset
for help on using the changeset viewer.