Add support for ircd-seven identify-msg (author unknown)

This commit is contained in:
Berke Viktor 2012-10-24 18:52:13 +02:00
parent 464b005c97
commit d9b5900525
1 changed files with 36 additions and 0 deletions

View File

@ -49,6 +49,7 @@ irc_login (server *serv, char *user, char *realname)
{ {
if (serv->password[0]) if (serv->password[0])
tcp_sendf (serv, "PASS %s\r\n", serv->password); tcp_sendf (serv, "PASS %s\r\n", serv->password);
tcp_sendf (serv, "CAP LS\r\n");
tcp_sendf (serv, tcp_sendf (serv,
"NICK %s\r\n" "NICK %s\r\n"
@ -1114,6 +1115,41 @@ process_named_msg (session *sess, char *type, char *word[], char *word_eol[])
} }
} }
else if (len == 3)
{
guint32 t;
t = WORDL((guint8)type[0], (guint8)type[1], (guint8)type[2], (guint8)type[3]);
switch (t)
{
case WORDL('C','A','P','\0'):
if (strncasecmp (word[4], "ACK", 3) == 0)
{
if (strncasecmp (word[5][0]==':' ? word[5] + 1 : word[5], "identify-msg", 12) == 0)
{
serv->have_idmsg = TRUE;
tcp_send_len (serv, "CAP END\r\n", 9);
}
}
else if (strncasecmp (word[4], "LS", 2) == 0)
{
if (strstr (word_eol[5], "identify-msg") != 0)
{
tcp_send_len (serv, "CAP REQ :identify-msg\r\n", 23);
}
else
{
tcp_send_len (serv, "CAP END\r\n", 9);
}
}
else if (strncasecmp (word[4], "NAK",3) == 0)
{
tcp_send_len (serv, "CAP END\r\n", 9);
}
return;
}
}
garbage: garbage:
/* unknown message */ /* unknown message */
PrintTextf (sess, "GARBAGE: %s\n", word_eol[1]); PrintTextf (sess, "GARBAGE: %s\n", word_eol[1]);