Changeset 128 in code for trunk/upstream.go
- Timestamp:
- Mar 20, 2020, 9:11:27 AM (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/upstream.go
r127 r128 604 604 Prefix: dc.srv.prefix(), 605 605 Command: irc.RPL_ENDOFWHO, 606 Params: []string{dc.nick, name, "End of /WHO list."}, 606 Params: []string{dc.nick, name, "End of WHO list"}, 607 }) 608 }) 609 case irc.RPL_WHOISUSER: 610 var nick, username, host, realname string 611 if err := parseMessageParams(msg, nil, &nick, &username, &host, nil, &realname); err != nil { 612 return err 613 } 614 615 uc.forEachDownstream(func(dc *downstreamConn) { 616 nick := dc.marshalNick(uc, nick) 617 dc.SendMessage(&irc.Message{ 618 Prefix: dc.srv.prefix(), 619 Command: irc.RPL_WHOISUSER, 620 Params: []string{dc.nick, nick, username, host, "*", realname}, 621 }) 622 }) 623 case irc.RPL_WHOISSERVER: 624 var nick, server, serverInfo string 625 if err := parseMessageParams(msg, nil, &nick, &server, &serverInfo); err != nil { 626 return err 627 } 628 629 uc.forEachDownstream(func(dc *downstreamConn) { 630 nick := dc.marshalNick(uc, nick) 631 dc.SendMessage(&irc.Message{ 632 Prefix: dc.srv.prefix(), 633 Command: irc.RPL_WHOISSERVER, 634 Params: []string{dc.nick, nick, server, serverInfo}, 635 }) 636 }) 637 case irc.RPL_WHOISOPERATOR: 638 var nick string 639 if err := parseMessageParams(msg, nil, &nick); err != nil { 640 return err 641 } 642 643 uc.forEachDownstream(func(dc *downstreamConn) { 644 nick := dc.marshalNick(uc, nick) 645 dc.SendMessage(&irc.Message{ 646 Prefix: dc.srv.prefix(), 647 Command: irc.RPL_WHOISOPERATOR, 648 Params: []string{dc.nick, nick, "is an IRC operator"}, 649 }) 650 }) 651 case irc.RPL_WHOISIDLE: 652 var nick string 653 if err := parseMessageParams(msg, nil, &nick, nil); err != nil { 654 return err 655 } 656 657 uc.forEachDownstream(func(dc *downstreamConn) { 658 nick := dc.marshalNick(uc, nick) 659 params := []string{dc.nick, nick} 660 params = append(params, msg.Params[2:]...) 661 dc.SendMessage(&irc.Message{ 662 Prefix: dc.srv.prefix(), 663 Command: irc.RPL_WHOISIDLE, 664 Params: params, 665 }) 666 }) 667 case irc.RPL_WHOISCHANNELS: 668 var nick, channelList string 669 if err := parseMessageParams(msg, nil, &nick, &channelList); err != nil { 670 return err 671 } 672 channels := strings.Split(channelList, " ") 673 674 uc.forEachDownstream(func(dc *downstreamConn) { 675 nick := dc.marshalNick(uc, nick) 676 channelList := make([]string, len(channels)) 677 for i, channel := range channels { 678 prefix, channel := parseMembershipPrefix(channel) 679 channel = dc.marshalChannel(uc, channel) 680 channelList[i] = prefix.String() + channel 681 } 682 channels := strings.Join(channelList, " ") 683 dc.SendMessage(&irc.Message{ 684 Prefix: dc.srv.prefix(), 685 Command: irc.RPL_WHOISCHANNELS, 686 Params: []string{dc.nick, nick, channels}, 687 }) 688 }) 689 case irc.RPL_ENDOFWHOIS: 690 var nick string 691 if err := parseMessageParams(msg, nil, &nick); err != nil { 692 return err 693 } 694 695 uc.forEachDownstream(func(dc *downstreamConn) { 696 nick := dc.marshalNick(uc, nick) 697 dc.SendMessage(&irc.Message{ 698 Prefix: dc.srv.prefix(), 699 Command: irc.RPL_ENDOFWHOIS, 700 Params: []string{dc.nick, nick, "End of WHOIS list"}, 607 701 }) 608 702 })
Note:
See TracChangeset
for help on using the changeset viewer.