irc: split AUTHENTICATE message in 400-byte chunks (closes #1459)
parent
bf42a1ebc5
commit
4480c7b7cc
|
@ -35,6 +35,7 @@ Bug fixes::
|
|||
* core: fix memory leak in completion
|
||||
* core: flush stdout/stderr before forking in hook_process function (issue #1441)
|
||||
* core: fix evaluation of condition with nested "if" (issue #1434)
|
||||
* irc: split AUTHENTICATE message in 400-byte chunks (issue #1459)
|
||||
* irc: copy temporary server flag in command /server copy
|
||||
* irc: add nick changes in the hotlist (except self nick change)
|
||||
* irc: case-insensitive comparison on incoming CTCP command, force upper case on CTCP replies (issue #1439)
|
||||
|
|
|
@ -759,6 +759,62 @@ irc_message_split_string (struct t_hashtable *hashtable,
|
|||
return 1;
|
||||
}
|
||||
|
||||
/*
|
||||
* Splits a AUTHENTICATE message: in 400-byte chunks, and adds an extra
|
||||
* message "AUTHENTICATE +" if the last message has exactly 400 bytes.
|
||||
*
|
||||
* Returns:
|
||||
* 1: OK
|
||||
* 0: error
|
||||
*/
|
||||
|
||||
int
|
||||
irc_message_split_authenticate (struct t_hashtable *hashtable,
|
||||
const char *tags, const char *host,
|
||||
const char *command, const char *arguments)
|
||||
{
|
||||
int number, length;
|
||||
char message[1024], *args;
|
||||
const char *ptr_args;
|
||||
|
||||
number = 1;
|
||||
|
||||
length = 0;
|
||||
ptr_args = arguments;
|
||||
while (ptr_args && ptr_args[0])
|
||||
{
|
||||
length = strlen (ptr_args);
|
||||
if (length == 0)
|
||||
break;
|
||||
if (length > 400)
|
||||
length = 400;
|
||||
args = weechat_strndup (ptr_args, length);
|
||||
if (!args)
|
||||
return 0;
|
||||
snprintf (message, sizeof (message), "%s%s%s %s",
|
||||
(host) ? host : "",
|
||||
(host) ? " " : "",
|
||||
command,
|
||||
args);
|
||||
irc_message_split_add (hashtable, number, tags, message, args);
|
||||
free (args);
|
||||
number++;
|
||||
ptr_args += length;
|
||||
}
|
||||
|
||||
if ((length == 0) || (length == 400))
|
||||
{
|
||||
snprintf (message, sizeof (message), "%s%s%s +",
|
||||
(host) ? host : "",
|
||||
(host) ? " " : "",
|
||||
command);
|
||||
irc_message_split_add (hashtable, number, tags, message, "+");
|
||||
number++;
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
/*
|
||||
* Splits a JOIN message, taking care of keeping channel keys with channel
|
||||
* names.
|
||||
|
@ -1125,7 +1181,13 @@ irc_message_split (struct t_irc_server *server, const char *message)
|
|||
max_length_host + /* host */
|
||||
1; /* " " */
|
||||
|
||||
if ((weechat_strcasecmp (command, "ison") == 0)
|
||||
if (weechat_strcasecmp (command, "authenticate") == 0)
|
||||
{
|
||||
/* AUTHENTICATE UzXAmVffxuzFy77XWBGwABBQAgdinelBrKZaR3wE7nsIETuTVY= */
|
||||
split_ok = irc_message_split_authenticate (
|
||||
hashtable, tags, host, command, arguments);
|
||||
}
|
||||
else if ((weechat_strcasecmp (command, "ison") == 0)
|
||||
|| (weechat_strcasecmp (command, "wallops") == 0))
|
||||
{
|
||||
/*
|
||||
|
|
|
@ -106,6 +106,53 @@ extern "C"
|
|||
"4:jkl TEST5:mno TEST6:pqr TEST7:stu TEST8:vwx TEST9:yz ABC:1 DEF:2 GHI:" \
|
||||
"3 JKL:4 MNO:5 PQR:6 STU:7 VWX:8 YT:9 :are supported by this server"
|
||||
|
||||
#define STRING_200 "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCD" \
|
||||
"EFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVW" \
|
||||
"XYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOP" \
|
||||
"QR"
|
||||
|
||||
#define STRING_400 "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCD" \
|
||||
"EFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVW" \
|
||||
"XYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOP" \
|
||||
"QRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHI" \
|
||||
"JKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZAB" \
|
||||
"CDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJ"
|
||||
|
||||
#define STRING_1000 "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABC" \
|
||||
"DEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUV" \
|
||||
"WXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNO" \
|
||||
"PQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGH" \
|
||||
"IJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZA" \
|
||||
"BCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRST" \
|
||||
"UVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLM" \
|
||||
"NOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEF" \
|
||||
"GHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXY" \
|
||||
"ZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQR" \
|
||||
"STUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJK" \
|
||||
"LMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCD" \
|
||||
"EFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVW" \
|
||||
"XYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOP" \
|
||||
"QRSTUVWXYZABCDEFGHIJKL"
|
||||
|
||||
#define STRING_1200 "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABC" \
|
||||
"DEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUV" \
|
||||
"WXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNO" \
|
||||
"PQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGH" \
|
||||
"IJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZA" \
|
||||
"BCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRST" \
|
||||
"UVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLM" \
|
||||
"NOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEF" \
|
||||
"GHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXY" \
|
||||
"ZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQR" \
|
||||
"STUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJK" \
|
||||
"LMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCD" \
|
||||
"EFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVW" \
|
||||
"XYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOP" \
|
||||
"QRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHI" \
|
||||
"JKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZAB" \
|
||||
"CDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTU" \
|
||||
"VWXYZABCD"
|
||||
|
||||
#define WEE_CHECK_PARSE(__tags, __message_without_tags, __nick, __user, \
|
||||
__host, __command, __channel, __arguments, \
|
||||
__text, __pos_command, __pos_arguments, \
|
||||
|
@ -697,6 +744,168 @@ TEST(IrcMessage, Split)
|
|||
(const char *)hashtable_get (hashtable, "msg1"));
|
||||
hashtable_free (hashtable);
|
||||
|
||||
/* AUTHENTICATE with small content: no split */
|
||||
hashtable = irc_message_split (server, "AUTHENTICATE +");
|
||||
CHECK(hashtable);
|
||||
LONGS_EQUAL(3, hashtable->items_count);
|
||||
STRCMP_EQUAL("1",
|
||||
(const char *)hashtable_get (hashtable, "count"));
|
||||
STRCMP_EQUAL("AUTHENTICATE +",
|
||||
(const char *)hashtable_get (hashtable, "msg1"));
|
||||
STRCMP_EQUAL("+",
|
||||
(const char *)hashtable_get (hashtable, "args1"));
|
||||
hashtable_free (hashtable);
|
||||
|
||||
/* AUTHENTICATE with small content: no split */
|
||||
hashtable = irc_message_split (server, "AUTHENTICATE ABCDEFGH");
|
||||
CHECK(hashtable);
|
||||
LONGS_EQUAL(3, hashtable->items_count);
|
||||
STRCMP_EQUAL("1",
|
||||
(const char *)hashtable_get (hashtable, "count"));
|
||||
STRCMP_EQUAL("AUTHENTICATE ABCDEFGH",
|
||||
(const char *)hashtable_get (hashtable, "msg1"));
|
||||
STRCMP_EQUAL("ABCDEFGH",
|
||||
(const char *)hashtable_get (hashtable, "args1"));
|
||||
hashtable_free (hashtable);
|
||||
|
||||
/* AUTHENTICATE with small content: no split */
|
||||
hashtable = irc_message_split (server, "AUTHENTICATE " STRING_200);
|
||||
CHECK(hashtable);
|
||||
LONGS_EQUAL(3, hashtable->items_count);
|
||||
STRCMP_EQUAL("1",
|
||||
(const char *)hashtable_get (hashtable, "count"));
|
||||
STRCMP_EQUAL("AUTHENTICATE " STRING_200,
|
||||
(const char *)hashtable_get (hashtable, "msg1"));
|
||||
STRCMP_EQUAL(STRING_200,
|
||||
(const char *)hashtable_get (hashtable, "args1"));
|
||||
hashtable_free (hashtable);
|
||||
|
||||
/* AUTHENTICATE: 1 split */
|
||||
hashtable = irc_message_split (server, "AUTHENTICATE " STRING_400);
|
||||
CHECK(hashtable);
|
||||
LONGS_EQUAL(5, hashtable->items_count);
|
||||
STRCMP_EQUAL("2",
|
||||
(const char *)hashtable_get (hashtable, "count"));
|
||||
STRCMP_EQUAL("AUTHENTICATE " STRING_400,
|
||||
(const char *)hashtable_get (hashtable, "msg1"));
|
||||
STRCMP_EQUAL(STRING_400,
|
||||
(const char *)hashtable_get (hashtable, "args1"));
|
||||
STRCMP_EQUAL("AUTHENTICATE +",
|
||||
(const char *)hashtable_get (hashtable, "msg2"));
|
||||
STRCMP_EQUAL("+",
|
||||
(const char *)hashtable_get (hashtable, "args2"));
|
||||
hashtable_free (hashtable);
|
||||
|
||||
/* AUTHENTICATE: 3 splits */
|
||||
hashtable = irc_message_split (server, "AUTHENTICATE " STRING_1000);
|
||||
CHECK(hashtable);
|
||||
LONGS_EQUAL(7, hashtable->items_count);
|
||||
STRCMP_EQUAL("3",
|
||||
(const char *)hashtable_get (hashtable, "count"));
|
||||
STRCMP_EQUAL("AUTHENTICATE ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRST"
|
||||
"UVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZA"
|
||||
"BCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGH"
|
||||
"IJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNO"
|
||||
"PQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUV"
|
||||
"WXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABC"
|
||||
"DEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJ",
|
||||
(const char *)hashtable_get (hashtable, "msg1"));
|
||||
STRCMP_EQUAL("ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFG"
|
||||
"HIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMN"
|
||||
"OPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTU"
|
||||
"VWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZAB"
|
||||
"CDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHI"
|
||||
"JKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOP"
|
||||
"QRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJ",
|
||||
(const char *)hashtable_get (hashtable, "args1"));
|
||||
STRCMP_EQUAL("AUTHENTICATE KLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCD"
|
||||
"EFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJK"
|
||||
"LMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQR"
|
||||
"STUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXY"
|
||||
"ZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEF"
|
||||
"GHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLM"
|
||||
"NOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRST",
|
||||
(const char *)hashtable_get (hashtable, "msg2"));
|
||||
STRCMP_EQUAL("KLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQ"
|
||||
"RSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWX"
|
||||
"YZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDE"
|
||||
"FGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKL"
|
||||
"MNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRS"
|
||||
"TUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ"
|
||||
"ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRST",
|
||||
(const char *)hashtable_get (hashtable, "args2"));
|
||||
STRCMP_EQUAL("AUTHENTICATE UVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMN"
|
||||
"OPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTU"
|
||||
"VWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZAB"
|
||||
"CDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKL",
|
||||
(const char *)hashtable_get (hashtable, "msg3"));
|
||||
STRCMP_EQUAL("UVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZA"
|
||||
"BCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGH"
|
||||
"IJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNO"
|
||||
"PQRSTUVWXYZABCDEFGHIJKL",
|
||||
(const char *)hashtable_get (hashtable, "args3"));
|
||||
hashtable_free (hashtable);
|
||||
|
||||
/* AUTHENTICATE: 4 splits */
|
||||
hashtable = irc_message_split (server, "AUTHENTICATE " STRING_1200);
|
||||
CHECK(hashtable);
|
||||
LONGS_EQUAL(9, hashtable->items_count);
|
||||
STRCMP_EQUAL("4",
|
||||
(const char *)hashtable_get (hashtable, "count"));
|
||||
STRCMP_EQUAL("AUTHENTICATE ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRST"
|
||||
"UVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZA"
|
||||
"BCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGH"
|
||||
"IJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNO"
|
||||
"PQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUV"
|
||||
"WXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABC"
|
||||
"DEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJ",
|
||||
(const char *)hashtable_get (hashtable, "msg1"));
|
||||
STRCMP_EQUAL("ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFG"
|
||||
"HIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMN"
|
||||
"OPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTU"
|
||||
"VWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZAB"
|
||||
"CDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHI"
|
||||
"JKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOP"
|
||||
"QRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJ",
|
||||
(const char *)hashtable_get (hashtable, "args1"));
|
||||
STRCMP_EQUAL("AUTHENTICATE KLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCD"
|
||||
"EFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJK"
|
||||
"LMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQR"
|
||||
"STUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXY"
|
||||
"ZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEF"
|
||||
"GHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLM"
|
||||
"NOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRST",
|
||||
(const char *)hashtable_get (hashtable, "msg2"));
|
||||
STRCMP_EQUAL("KLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQ"
|
||||
"RSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWX"
|
||||
"YZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDE"
|
||||
"FGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKL"
|
||||
"MNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRS"
|
||||
"TUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ"
|
||||
"ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRST",
|
||||
(const char *)hashtable_get (hashtable, "args2"));
|
||||
STRCMP_EQUAL("AUTHENTICATE UVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMN"
|
||||
"OPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTU"
|
||||
"VWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZAB"
|
||||
"CDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHI"
|
||||
"JKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOP"
|
||||
"QRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVW"
|
||||
"XYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCD",
|
||||
(const char *)hashtable_get (hashtable, "msg3"));
|
||||
STRCMP_EQUAL("UVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZA"
|
||||
"BCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGH"
|
||||
"IJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNO"
|
||||
"PQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUV"
|
||||
"WXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABC"
|
||||
"DEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJ"
|
||||
"KLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCD",
|
||||
(const char *)hashtable_get (hashtable, "args3"));
|
||||
STRCMP_EQUAL("AUTHENTICATE +",
|
||||
(const char *)hashtable_get (hashtable, "msg4"));
|
||||
STRCMP_EQUAL("+",
|
||||
(const char *)hashtable_get (hashtable, "args4"));
|
||||
hashtable_free (hashtable);
|
||||
|
||||
/* ISON with small content: no split */
|
||||
hashtable = irc_message_split (server, "ISON :nick1 nick2");
|
||||
CHECK(hashtable);
|
||||
|
|
Loading…
Reference in New Issue