1
0
mirror of https://github.com/irssi/irssi.git synced 2024-12-04 14:46:39 -05:00

Fix a problem with multiline responses

Do not clear the whole table every time a response is received.
This commit is contained in:
LemonBoy 2017-10-30 17:41:16 +01:00
parent 4b9fcbc15a
commit fed791ed91
2 changed files with 7 additions and 2 deletions

View File

@ -148,8 +148,12 @@ static void event_cap (IRC_SERVER_REC *server, char *args, char *nick, char *add
caps_length = g_strv_length(caps); caps_length = g_strv_length(caps);
if (!g_ascii_strcasecmp(evt, "LS")) { if (!g_ascii_strcasecmp(evt, "LS")) {
if (!server->cap_in_multiline) {
/* Throw away everything and start from scratch */ /* Throw away everything and start from scratch */
g_hash_table_remove_all(server->cap_supported); g_hash_table_remove_all(server->cap_supported);
}
server->cap_in_multiline = multiline;
/* Create a list of the supported caps */ /* Create a list of the supported caps */
for (i = 0; i < caps_length; i++) { for (i = 0; i < caps_length; i++) {

View File

@ -68,6 +68,7 @@ struct _IRC_SERVER_REC {
unsigned int motd_got:1; /* We've received MOTD */ unsigned int motd_got:1; /* We've received MOTD */
unsigned int isupport_sent:1; /* Server has sent us an isupport reply */ unsigned int isupport_sent:1; /* Server has sent us an isupport reply */
unsigned int cap_complete:1; /* We've done the initial CAP negotiation */ unsigned int cap_complete:1; /* We've done the initial CAP negotiation */
unsigned int cap_in_multiline:1; /* We're waiting for the multiline response to end */
unsigned int sasl_success:1; /* Did we authenticate successfully ? */ unsigned int sasl_success:1; /* Did we authenticate successfully ? */
int max_kicks_in_cmd; /* max. number of people to kick with one /KICK command */ int max_kicks_in_cmd; /* max. number of people to kick with one /KICK command */