Changeset 129 in code for trunk/downstream.go
- Timestamp:
- Mar 20, 2020, 9:11:27 AM (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/downstream.go
r128 r129 151 151 } 152 152 153 func (dc *downstreamConn) marshalEntity(uc *upstreamConn, name string) string { 154 for _, r := range name { 155 switch r { 156 // TODO: support upstream ISUPPORT channel prefixes 157 case '#', '&', '+', '!': 158 return dc.marshalChannel(uc, name) 159 } 160 break 161 } 162 return dc.marshalNick(uc, name) 153 func (dc *downstreamConn) marshalEntity(uc *upstreamConn, entity string) string { 154 if uc.isChannel(entity) { 155 return dc.marshalChannel(uc, entity) 156 } 157 return dc.marshalNick(uc, entity) 163 158 } 164 159 … … 853 848 } 854 849 case "MODE": 855 if msg.Prefix == nil {856 return fmt.Errorf("missing prefix")857 }858 859 850 var name string 860 851 if err := parseMessageParams(msg, &name); err != nil { … … 867 858 } 868 859 869 if msg.Prefix.Name != name { 870 uc, upstreamName, err := dc.unmarshalEntity(name) 871 if err != nil { 872 return err 873 } 874 860 uc, upstreamName, err := dc.unmarshalEntity(name) 861 if err != nil { 862 return err 863 } 864 865 if uc.isChannel(upstreamName) { 866 // TODO: handle MODE channel mode arguments 875 867 if modeStr != "" { 876 868 uc.SendMessage(&irc.Message{ … … 883 875 return ircError{&irc.Message{ 884 876 Command: irc.ERR_NOSUCHCHANNEL, 885 Params: []string{ name, "No such channel"},877 Params: []string{dc.nick, name, "No such channel"}, 886 878 }} 887 879 } … … 890 882 Prefix: dc.srv.prefix(), 891 883 Command: irc.RPL_CHANNELMODEIS, 892 Params: []string{ name, string(ch.modes)},884 Params: []string{dc.nick, name, string(ch.modes)}, 893 885 }) 894 886 } … … 912 904 Prefix: dc.srv.prefix(), 913 905 Command: irc.RPL_UMODEIS, 914 Params: []string{ ""}, // TODO906 Params: []string{dc.nick, ""}, // TODO 915 907 }) 916 908 }
Note:
See TracChangeset
for help on using the changeset viewer.