comparison libpurple/protocols/irc/parse.c @ 15447:8c81db398f56

This should fix up IRC logins for servers which do not provide an MOTD, which is not required by the spec. All servers MUST send 251 & 255 numerics, so now we key off those. This fixes several IRC bugs in the sourceforge tracker, which should be updated upon release.
author Ethan Blanton <elb@pidgin.im>
date Sun, 28 Jan 2007 17:02:31 +0000
parents 8ff4af28c9f9
children 32c366eeeb99
comparison
equal deleted inserted replaced
15446:910f4be8fc73 15447:8c81db398f56
51 char *name; 51 char *name;
52 char *format; 52 char *format;
53 void (*cb)(struct irc_conn *irc, const char *name, const char *from, char **args); 53 void (*cb)(struct irc_conn *irc, const char *name, const char *from, char **args);
54 } _irc_msgs[] = { 54 } _irc_msgs[] = {
55 { "005", "n*", irc_msg_features }, /* Feature list */ 55 { "005", "n*", irc_msg_features }, /* Feature list */
56 { "251", "n:", irc_msg_luser }, /* Client & Server count */
57 { "255", "n:", irc_msg_luser }, /* Client & Server count Mk. II */
56 { "301", "nn:", irc_msg_away }, /* User is away */ 58 { "301", "nn:", irc_msg_away }, /* User is away */
57 { "303", "n:", irc_msg_ison }, /* ISON reply */ 59 { "303", "n:", irc_msg_ison }, /* ISON reply */
58 { "311", "nnvvv:", irc_msg_whois }, /* Whois user */ 60 { "311", "nnvvv:", irc_msg_whois }, /* Whois user */
59 { "312", "nnv:", irc_msg_whois }, /* Whois server */ 61 { "312", "nnv:", irc_msg_whois }, /* Whois server */
60 { "313", "nn:", irc_msg_whois }, /* Whois ircop */ 62 { "313", "nn:", irc_msg_whois }, /* Whois ircop */
71 { "333", "*", irc_msg_ignore }, /* Topic setter stuff */ 73 { "333", "*", irc_msg_ignore }, /* Topic setter stuff */
72 { "353", "nvc:", irc_msg_names }, /* Names list */ 74 { "353", "nvc:", irc_msg_names }, /* Names list */
73 { "366", "nc:", irc_msg_names }, /* End of names */ 75 { "366", "nc:", irc_msg_names }, /* End of names */
74 { "372", "n:", irc_msg_motd }, /* MOTD */ 76 { "372", "n:", irc_msg_motd }, /* MOTD */
75 { "375", "n:", irc_msg_motd }, /* Start MOTD */ 77 { "375", "n:", irc_msg_motd }, /* Start MOTD */
76 { "376", "n:", irc_msg_endmotd }, /* End of MOTD */ 78 { "376", "n:", irc_msg_motd }, /* End of MOTD */
77 { "391", "nv:", irc_msg_time }, /* Time reply */ 79 { "391", "nv:", irc_msg_time }, /* Time reply */
78 { "401", "nt:", irc_msg_nonick }, /* No such nick/chan */ 80 { "401", "nt:", irc_msg_nonick }, /* No such nick/chan */
79 { "403", "nc:", irc_msg_nochan }, /* No such channel */ 81 { "403", "nc:", irc_msg_nochan }, /* No such channel */
80 { "404", "nt:", irc_msg_nosend }, /* Cannot send to chan */ 82 { "404", "nt:", irc_msg_nosend }, /* Cannot send to chan */
81 { "421", "nv:", irc_msg_unknown }, /* Unknown command */ 83 { "421", "nv:", irc_msg_unknown }, /* Unknown command */
82 { "422", "nv:", irc_msg_endmotd }, /* No MOTD available */
83 { "432", "vn:", irc_msg_badnick }, /* Erroneous nickname */ 84 { "432", "vn:", irc_msg_badnick }, /* Erroneous nickname */
84 { "433", "vn:", irc_msg_nickused }, /* Nickname already in use */ 85 { "433", "vn:", irc_msg_nickused }, /* Nickname already in use */
85 { "437", "nc:", irc_msg_unavailable }, /* Nick/channel is unavailable */ 86 { "437", "nc:", irc_msg_unavailable }, /* Nick/channel is unavailable */
86 { "438", "nn:", irc_msg_nochangenick }, /* Nick may not change */ 87 { "438", "nn:", irc_msg_nochangenick }, /* Nick may not change */
87 { "442", "nc:", irc_msg_notinchan }, /* Not in channel */ 88 { "442", "nc:", irc_msg_notinchan }, /* Not in channel */