2 * send1.c: Test sendto_* under various conditions
3 * Copyright 2017 Simon Arlott
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or
8 * (at your option) any later version.
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
15 * You should have received a copy of the GNU General Public License
16 * along with this program; if not, write to the Free Software
17 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
24 #include "tap/basic.h"
26 #include "ircd_util.h"
27 #include "client_util.h"
34 #define MSG "%s:%d (%s)", __FILE__, __LINE__, __FUNCTION__
37 #define ADVENTURE_TIME "2017-07-14T02:40:00.000Z"
39 int rb_gettimeofday(struct timeval
*tv
, void *tz
)
45 tv
->tv_sec
= 1500000000;
50 unsigned int CAP_ACCOUNT_TAG
;
51 unsigned int CAP_SERVER_TIME
;
52 unsigned int CAP_MULTI_PREFIX
;
54 static struct Client
*user
;
55 static struct Client
*server
;
56 static struct Client
*remote
;
57 static struct Client
*server2
;
58 static struct Client
*remote2
;
59 static struct Client
*server3
;
60 static struct Client
*remote3
;
61 static struct Channel
*channel
;
62 static struct Channel
*lchannel
;
64 static struct Client
*local_chan_o
;
65 static struct Client
*local_chan_ov
;
66 static struct Client
*local_chan_v
;
67 static struct Client
*local_chan_p
;
68 static struct Client
*local_chan_d
;
69 static struct Client
*local_no_chan
;
71 static struct Client
*remote_chan_o
;
72 static struct Client
*remote_chan_ov
;
73 static struct Client
*remote_chan_v
;
74 static struct Client
*remote_chan_p
;
75 static struct Client
*remote_chan_d
;
77 static struct Client
*remote2_chan_p
;
78 static struct Client
*remote2_chan_d
;
80 static void standard_init(void)
82 user
= make_local_person();
83 server
= make_remote_server(&me
);
84 remote
= make_remote_person(server
);
85 server2
= make_remote_server_name(&me
, TEST_SERVER2_NAME
);
86 remote2
= make_remote_person_nick(server2
, TEST_REMOTE2_NICK
);
87 server3
= make_remote_server_name(&me
, TEST_SERVER3_NAME
);
88 remote3
= make_remote_person_nick(server3
, TEST_REMOTE3_NICK
);
90 // Expose potential bugs in overlapping capabilities
91 server
->localClient
->caps
|= CAP_ACCOUNT_TAG
;
92 server
->localClient
->caps
|= CAP_SERVER_TIME
;
93 server2
->localClient
->caps
|= CAP_ACCOUNT_TAG
;
94 server2
->localClient
->caps
|= CAP_SERVER_TIME
;
95 server3
->localClient
->caps
|= CAP_ACCOUNT_TAG
;
96 server3
->localClient
->caps
|= CAP_SERVER_TIME
;
98 local_chan_o
= make_local_person_nick("LChanOp");
99 local_chan_ov
= make_local_person_nick("LChanOpVoice");
100 local_chan_v
= make_local_person_nick("LChanVoice");
101 local_chan_p
= make_local_person_nick("LChanPeon");
102 local_chan_d
= make_local_person_nick("LChanDeaf");
103 local_chan_d
->umodes
|= UMODE_DEAF
;
104 local_no_chan
= make_local_person_nick("LNoChan");
106 remote_chan_o
= make_remote_person_nick(server
, "RChanOp");
107 remote_chan_ov
= make_remote_person_nick(server
, "RChanOpVoice");
108 remote_chan_v
= make_remote_person_nick(server
, "RChanVoice");
109 remote_chan_p
= make_remote_person_nick(server
, "RChanPeon");
110 remote_chan_d
= make_remote_person_nick(server
, "RChanDeaf");
111 remote_chan_d
->umodes
|= UMODE_DEAF
;
113 remote2_chan_p
= make_remote_person_nick(server2
, "R2ChanPeon");
114 remote2_chan_d
= make_remote_person_nick(server2
, "R2ChanDeaf");
115 remote2_chan_d
->umodes
|= UMODE_DEAF
;
117 channel
= make_channel();
119 add_user_to_channel(channel
, local_chan_o
, CHFL_CHANOP
);
120 add_user_to_channel(channel
, local_chan_ov
, CHFL_CHANOP
| CHFL_VOICE
);
121 add_user_to_channel(channel
, local_chan_v
, CHFL_VOICE
);
122 add_user_to_channel(channel
, local_chan_p
, CHFL_PEON
);
123 add_user_to_channel(channel
, local_chan_d
, CHFL_CHANOP
| CHFL_VOICE
);
125 add_user_to_channel(channel
, remote_chan_o
, CHFL_CHANOP
);
126 add_user_to_channel(channel
, remote_chan_ov
, CHFL_CHANOP
| CHFL_VOICE
);
127 add_user_to_channel(channel
, remote_chan_v
, CHFL_VOICE
);
128 add_user_to_channel(channel
, remote_chan_p
, CHFL_PEON
);
129 add_user_to_channel(channel
, remote_chan_d
, CHFL_CHANOP
| CHFL_VOICE
);
131 add_user_to_channel(channel
, remote2_chan_p
, CHFL_PEON
);
132 add_user_to_channel(channel
, remote2_chan_d
, CHFL_CHANOP
| CHFL_VOICE
);
134 lchannel
= allocate_channel("&test");
136 add_user_to_channel(lchannel
, user
, CHFL_PEON
);
137 add_user_to_channel(lchannel
, remote
, CHFL_PEON
);
138 add_user_to_channel(lchannel
, remote2
, CHFL_PEON
);
139 add_user_to_channel(lchannel
, remote3
, CHFL_PEON
);
142 static void standard_ids(void)
144 strcpy(user
->id
, TEST_ID
);
145 strcpy(server
->id
, TEST_SERVER_ID
);
146 strcpy(remote
->id
, TEST_REMOTE_ID
);
147 strcpy(server2
->id
, TEST_SERVER2_ID
);
148 strcpy(remote2
->id
, TEST_REMOTE2_ID
);
149 strcpy(server3
->id
, TEST_SERVER3_ID
);
150 strcpy(remote3
->id
, TEST_REMOTE3_ID
);
152 strcpy(local_chan_o
->id
, TEST_ME_ID
"90001");
153 strcpy(local_chan_ov
->id
, TEST_ME_ID
"90002");
154 strcpy(local_chan_v
->id
, TEST_ME_ID
"90003");
155 strcpy(local_chan_p
->id
, TEST_ME_ID
"90004");
156 strcpy(local_chan_d
->id
, TEST_ME_ID
"90005");
158 strcpy(remote_chan_o
->id
, TEST_SERVER_ID
"90101");
159 strcpy(remote_chan_ov
->id
, TEST_SERVER_ID
"90102");
160 strcpy(remote_chan_v
->id
, TEST_SERVER_ID
"90103");
161 strcpy(remote_chan_p
->id
, TEST_SERVER_ID
"90104");
162 strcpy(remote_chan_d
->id
, TEST_SERVER_ID
"90105");
164 strcpy(remote2_chan_p
->id
, TEST_SERVER2_ID
"90204");
165 strcpy(remote2_chan_d
->id
, TEST_SERVER2_ID
"90205");
168 static void standard_server_caps(unsigned int add
, unsigned int remove
)
170 server
->localClient
->caps
|= add
;
171 server2
->localClient
->caps
|= add
;
172 server3
->localClient
->caps
|= add
;
174 server
->localClient
->caps
&= ~remove
;
175 server2
->localClient
->caps
&= ~remove
;
176 server3
->localClient
->caps
&= ~remove
;
179 static void standard_free(void)
181 remove_remote_person(remote2_chan_p
);
182 remove_remote_person(remote2_chan_d
);
184 remove_remote_person(remote_chan_o
);
185 remove_remote_person(remote_chan_ov
);
186 remove_remote_person(remote_chan_v
);
187 remove_remote_person(remote_chan_p
);
188 remove_remote_person(remote_chan_d
);
190 remove_local_person(local_chan_o
);
191 remove_local_person(local_chan_ov
);
192 remove_local_person(local_chan_v
);
193 remove_local_person(local_chan_p
);
194 remove_local_person(local_chan_d
);
195 remove_local_person(local_no_chan
);
197 remove_remote_person(remote3
);
198 remove_remote_server(server3
);
199 remove_remote_person(remote2
);
200 remove_remote_server(server2
);
201 remove_remote_person(remote
);
202 remove_remote_server(server
);
203 remove_local_person(user
);
206 static void sendto_one1(void)
210 sendto_one(user
, "Hello %s!", "World");
211 is_client_sendq("Hello World!" CRLF
, user
, MSG
);
213 sendto_one(server
, "Hello %s!", "World");
214 is_client_sendq("Hello World!" CRLF
, server
, MSG
);
216 sendto_one(remote
, "Hello %s!", "World");
217 is_client_sendq("Hello World!" CRLF
, server
, MSG
);
222 static void sendto_one1__tags(void)
226 local_chan_o
->localClient
->caps
|= CAP_ACCOUNT_TAG
;
227 local_chan_o
->localClient
->caps
|= CAP_SERVER_TIME
;
228 local_chan_ov
->localClient
->caps
|= CAP_SERVER_TIME
;
229 local_chan_v
->localClient
->caps
|= CAP_ACCOUNT_TAG
;
231 sendto_one(local_chan_o
, "Hello %s!", "World");
232 is_client_sendq("@time=" ADVENTURE_TIME
" Hello World!" CRLF
, local_chan_o
, MSG
);
234 sendto_one(local_chan_ov
, "Hello %s!", "World");
235 is_client_sendq("@time=" ADVENTURE_TIME
" Hello World!" CRLF
, local_chan_ov
, MSG
);
237 sendto_one(local_chan_v
, "Hello %s!", "World");
238 is_client_sendq("Hello World!" CRLF
, local_chan_v
, MSG
);
240 sendto_one(local_chan_p
, "Hello %s!", "World");
241 is_client_sendq("Hello World!" CRLF
, local_chan_p
, MSG
);
246 static void sendto_one_prefix1(void)
251 sendto_one_prefix(user
, &me
, "TEST", ":Hello %s!", "World");
252 is_client_sendq(":" TEST_ME_NAME
" TEST " TEST_NICK
" :Hello World!" CRLF
, user
, MSG
);
254 sendto_one_prefix(user
, user
, "TEST", ":Hello %s!", "World");
255 is_client_sendq(":" TEST_NICK
" TEST " TEST_NICK
" :Hello World!" CRLF
, user
, MSG
);
257 sendto_one_prefix(user
, remote
, "TEST", ":Hello %s!", "World");
258 is_client_sendq(":" TEST_REMOTE_NICK
" TEST " TEST_NICK
" :Hello World!" CRLF
, user
, MSG
);
260 sendto_one_prefix(user
, server
, "TEST", ":Hello %s!", "World");
261 is_client_sendq(":" TEST_SERVER_NAME
" TEST " TEST_NICK
" :Hello World!" CRLF
, user
, MSG
);
263 // Remote (without ID)
264 sendto_one_prefix(remote
, &me
, "TEST", ":Hello %s!", "World");
265 is_client_sendq(":" TEST_ME_NAME
" TEST " TEST_REMOTE_NICK
" :Hello World!" CRLF
, server
, MSG
);
267 sendto_one_prefix(remote
, user
, "TEST", ":Hello %s!", "World");
268 is_client_sendq(":" TEST_NICK
" TEST " TEST_REMOTE_NICK
" :Hello World!" CRLF
, server
, MSG
);
270 sendto_one_prefix(remote
, remote
, "TEST", ":Hello %s!", "World");
271 is_client_sendq(":" TEST_REMOTE_NICK
" TEST " TEST_REMOTE_NICK
" :Hello World!" CRLF
, server
, MSG
);
273 sendto_one_prefix(remote
, server
, "TEST", ":Hello %s!", "World");
274 is_client_sendq(":" TEST_SERVER_NAME
" TEST " TEST_REMOTE_NICK
" :Hello World!" CRLF
, server
, MSG
);
279 sendto_one_prefix(remote
, &me
, "TEST", ":Hello %s!", "World");
280 is_client_sendq(":" TEST_ME_ID
" TEST " TEST_REMOTE_ID
" :Hello World!" CRLF
, server
, MSG
);
282 sendto_one_prefix(remote
, user
, "TEST", ":Hello %s!", "World");
283 is_client_sendq(":" TEST_ID
" TEST " TEST_REMOTE_ID
" :Hello World!" CRLF
, server
, MSG
);
285 sendto_one_prefix(remote
, remote
, "TEST", ":Hello %s!", "World");
286 is_client_sendq(":" TEST_REMOTE_ID
" TEST " TEST_REMOTE_ID
" :Hello World!" CRLF
, server
, MSG
);
288 sendto_one_prefix(remote
, server
, "TEST", ":Hello %s!", "World");
289 is_client_sendq(":" TEST_SERVER_ID
" TEST " TEST_REMOTE_ID
" :Hello World!" CRLF
, server
, MSG
);
294 static void sendto_one_prefix1__tags(void)
298 strcpy(user
->user
->suser
, "test");
299 strcpy(remote
->user
->suser
, "rtest");
300 local_chan_o
->localClient
->caps
|= CAP_ACCOUNT_TAG
;
301 local_chan_o
->localClient
->caps
|= CAP_SERVER_TIME
;
302 local_chan_ov
->localClient
->caps
|= CAP_SERVER_TIME
;
303 local_chan_v
->localClient
->caps
|= CAP_ACCOUNT_TAG
;
305 sendto_one_prefix(user
, &me
, "TEST", ":Hello %s!", "World");
306 is_client_sendq(":" TEST_ME_NAME
" TEST " TEST_NICK
" :Hello World!" CRLF
, user
, MSG
);
308 sendto_one_prefix(user
, user
, "TEST", ":Hello %s!", "World");
309 is_client_sendq(":" TEST_NICK
" TEST " TEST_NICK
" :Hello World!" CRLF
, user
, MSG
);
311 sendto_one_prefix(user
, remote
, "TEST", ":Hello %s!", "World");
312 is_client_sendq(":" TEST_REMOTE_NICK
" TEST " TEST_NICK
" :Hello World!" CRLF
, user
, MSG
);
314 sendto_one_prefix(user
, server
, "TEST", ":Hello %s!", "World");
315 is_client_sendq(":" TEST_SERVER_NAME
" TEST " TEST_NICK
" :Hello World!" CRLF
, user
, MSG
);
318 sendto_one_prefix(local_chan_o
, &me
, "TEST", ":Hello %s!", "World");
319 is_client_sendq("@time=" ADVENTURE_TIME
" :" TEST_ME_NAME
" TEST LChanOp :Hello World!" CRLF
, local_chan_o
, MSG
);
321 sendto_one_prefix(local_chan_o
, user
, "TEST", ":Hello %s!", "World");
322 is_client_sendq("@time=" ADVENTURE_TIME
";account=test :" TEST_NICK
" TEST LChanOp :Hello World!" CRLF
, local_chan_o
, MSG
);
324 sendto_one_prefix(local_chan_o
, remote
, "TEST", ":Hello %s!", "World");
325 is_client_sendq("@time=" ADVENTURE_TIME
";account=rtest :" TEST_REMOTE_NICK
" TEST LChanOp :Hello World!" CRLF
, local_chan_o
, MSG
);
327 sendto_one_prefix(local_chan_o
, server
, "TEST", ":Hello %s!", "World");
328 is_client_sendq("@time=" ADVENTURE_TIME
" :" TEST_SERVER_NAME
" TEST LChanOp :Hello World!" CRLF
, local_chan_o
, MSG
);
331 sendto_one_prefix(local_chan_ov
, &me
, "TEST", ":Hello %s!", "World");
332 is_client_sendq("@time=" ADVENTURE_TIME
" :" TEST_ME_NAME
" TEST LChanOpVoice :Hello World!" CRLF
, local_chan_ov
, MSG
);
334 sendto_one_prefix(local_chan_ov
, user
, "TEST", ":Hello %s!", "World");
335 is_client_sendq("@time=" ADVENTURE_TIME
" :" TEST_NICK
" TEST LChanOpVoice :Hello World!" CRLF
, local_chan_ov
, MSG
);
337 sendto_one_prefix(local_chan_ov
, remote
, "TEST", ":Hello %s!", "World");
338 is_client_sendq("@time=" ADVENTURE_TIME
" :" TEST_REMOTE_NICK
" TEST LChanOpVoice :Hello World!" CRLF
, local_chan_ov
, MSG
);
340 sendto_one_prefix(local_chan_ov
, server
, "TEST", ":Hello %s!", "World");
341 is_client_sendq("@time=" ADVENTURE_TIME
" :" TEST_SERVER_NAME
" TEST LChanOpVoice :Hello World!" CRLF
, local_chan_ov
, MSG
);
344 sendto_one_prefix(local_chan_v
, &me
, "TEST", ":Hello %s!", "World");
345 is_client_sendq(":" TEST_ME_NAME
" TEST LChanVoice :Hello World!" CRLF
, local_chan_v
, MSG
);
347 sendto_one_prefix(local_chan_v
, user
, "TEST", ":Hello %s!", "World");
348 is_client_sendq("@account=test :" TEST_NICK
" TEST LChanVoice :Hello World!" CRLF
, local_chan_v
, MSG
);
350 sendto_one_prefix(local_chan_v
, remote
, "TEST", ":Hello %s!", "World");
351 is_client_sendq("@account=rtest :" TEST_REMOTE_NICK
" TEST LChanVoice :Hello World!" CRLF
, local_chan_v
, MSG
);
353 sendto_one_prefix(local_chan_v
, server
, "TEST", ":Hello %s!", "World");
354 is_client_sendq(":" TEST_SERVER_NAME
" TEST LChanVoice :Hello World!" CRLF
, local_chan_v
, MSG
);
357 sendto_one_prefix(local_chan_p
, &me
, "TEST", ":Hello %s!", "World");
358 is_client_sendq(":" TEST_ME_NAME
" TEST LChanPeon :Hello World!" CRLF
, local_chan_p
, MSG
);
360 sendto_one_prefix(local_chan_p
, user
, "TEST", ":Hello %s!", "World");
361 is_client_sendq(":" TEST_NICK
" TEST LChanPeon :Hello World!" CRLF
, local_chan_p
, MSG
);
363 sendto_one_prefix(local_chan_p
, remote
, "TEST", ":Hello %s!", "World");
364 is_client_sendq(":" TEST_REMOTE_NICK
" TEST LChanPeon :Hello World!" CRLF
, local_chan_p
, MSG
);
366 sendto_one_prefix(local_chan_p
, server
, "TEST", ":Hello %s!", "World");
367 is_client_sendq(":" TEST_SERVER_NAME
" TEST LChanPeon :Hello World!" CRLF
, local_chan_p
, MSG
);
372 static void sendto_one_notice1(void)
377 sendto_one_notice(user
, ":Hello %s!", "World");
378 is_client_sendq(":" TEST_ME_NAME
" NOTICE " TEST_NICK
" :Hello World!" CRLF
, user
, MSG
);
380 // Remote (without ID)
381 sendto_one_notice(remote
, ":Hello %s!", "World");
382 is_client_sendq(":" TEST_ME_NAME
" NOTICE " TEST_REMOTE_NICK
" :Hello World!" CRLF
, server
, MSG
);
387 sendto_one_notice(remote
, ":Hello %s!", "World");
388 is_client_sendq(":" TEST_ME_ID
" NOTICE " TEST_REMOTE_ID
" :Hello World!" CRLF
, server
, MSG
);
390 // Local (unregistered)
391 user
->name
[0] = '\0';
392 sendto_one_notice(user
, ":Hello %s!", "World");
393 is_client_sendq(":" TEST_ME_NAME
" NOTICE * :Hello World!" CRLF
, user
, MSG
);
398 static void sendto_one_notice1__tags(void)
402 local_chan_o
->localClient
->caps
|= CAP_ACCOUNT_TAG
;
403 local_chan_o
->localClient
->caps
|= CAP_SERVER_TIME
;
404 local_chan_ov
->localClient
->caps
|= CAP_SERVER_TIME
;
405 local_chan_v
->localClient
->caps
|= CAP_ACCOUNT_TAG
;
407 sendto_one_notice(local_chan_o
, ":Hello %s!", "World");
408 is_client_sendq("@time=" ADVENTURE_TIME
" :" TEST_ME_NAME
" NOTICE LChanOp :Hello World!" CRLF
, local_chan_o
, MSG
);
410 sendto_one_notice(local_chan_ov
, ":Hello %s!", "World");
411 is_client_sendq("@time=" ADVENTURE_TIME
" :" TEST_ME_NAME
" NOTICE LChanOpVoice :Hello World!" CRLF
, local_chan_ov
, MSG
);
413 sendto_one_notice(local_chan_v
, ":Hello %s!", "World");
414 is_client_sendq(":" TEST_ME_NAME
" NOTICE LChanVoice :Hello World!" CRLF
, local_chan_v
, MSG
);
417 local_chan_o
->name
[0] = '\0';
418 local_chan_ov
->name
[0] = '\0';
419 local_chan_v
->name
[0] = '\0';
421 sendto_one_notice(local_chan_o
, ":Hello %s!", "World");
422 is_client_sendq("@time=" ADVENTURE_TIME
" :" TEST_ME_NAME
" NOTICE * :Hello World!" CRLF
, local_chan_o
, MSG
);
424 sendto_one_notice(local_chan_ov
, ":Hello %s!", "World");
425 is_client_sendq("@time=" ADVENTURE_TIME
" :" TEST_ME_NAME
" NOTICE * :Hello World!" CRLF
, local_chan_ov
, MSG
);
427 sendto_one_notice(local_chan_v
, ":Hello %s!", "World");
428 is_client_sendq(":" TEST_ME_NAME
" NOTICE * :Hello World!" CRLF
, local_chan_v
, MSG
);
433 static void sendto_one_numeric1(void)
438 sendto_one_numeric(user
, 1, "Hello %s!", "World");
439 is_client_sendq(":" TEST_ME_NAME
" 001 " TEST_NICK
" Hello World!" CRLF
, user
, MSG
);
441 // Remote (without ID)
442 sendto_one_numeric(server
, 1, "Hello %s!", "World");
443 is_client_sendq(":" TEST_ME_NAME
" 001 " TEST_SERVER_NAME
" Hello World!" CRLF
, server
, MSG
);
445 sendto_one_numeric(remote
, 1, "Hello %s!", "World");
446 is_client_sendq(":" TEST_ME_NAME
" 001 " TEST_REMOTE_NICK
" Hello World!" CRLF
, server
, MSG
);
451 sendto_one_numeric(server
, 1, "Hello %s!", "World");
452 is_client_sendq(":" TEST_ME_ID
" 001 " TEST_SERVER_ID
" Hello World!" CRLF
, server
, MSG
);
454 sendto_one_numeric(remote
, 1, "Hello %s!", "World");
455 is_client_sendq(":" TEST_ME_ID
" 001 " TEST_REMOTE_ID
" Hello World!" CRLF
, server
, MSG
);
457 // Local (unregistered)
458 user
->name
[0] = '\0';
459 sendto_one_numeric(user
, 1, "Hello %s!", "World");
460 is_client_sendq(":" TEST_ME_NAME
" 001 * Hello World!" CRLF
, user
, MSG
);
465 static void sendto_one_numeric1__tags(void)
469 local_chan_o
->localClient
->caps
|= CAP_ACCOUNT_TAG
;
470 local_chan_o
->localClient
->caps
|= CAP_SERVER_TIME
;
471 local_chan_ov
->localClient
->caps
|= CAP_SERVER_TIME
;
472 local_chan_v
->localClient
->caps
|= CAP_ACCOUNT_TAG
;
474 sendto_one_numeric(local_chan_o
, 1, "Hello %s!", "World");
475 is_client_sendq("@time=" ADVENTURE_TIME
" :" TEST_ME_NAME
" 001 LChanOp Hello World!" CRLF
, local_chan_o
, MSG
);
477 sendto_one_numeric(local_chan_ov
, 1, "Hello %s!", "World");
478 is_client_sendq("@time=" ADVENTURE_TIME
" :" TEST_ME_NAME
" 001 LChanOpVoice Hello World!" CRLF
, local_chan_ov
, MSG
);
480 sendto_one_numeric(local_chan_v
, 1, "Hello %s!", "World");
481 is_client_sendq(":" TEST_ME_NAME
" 001 LChanVoice Hello World!" CRLF
, local_chan_v
, MSG
);
484 local_chan_o
->name
[0] = '\0';
485 local_chan_ov
->name
[0] = '\0';
486 local_chan_v
->name
[0] = '\0';
488 sendto_one_numeric(local_chan_o
, 1, "Hello %s!", "World");
489 is_client_sendq("@time=" ADVENTURE_TIME
" :" TEST_ME_NAME
" 001 * Hello World!" CRLF
, local_chan_o
, MSG
);
491 sendto_one_numeric(local_chan_ov
, 1, "Hello %s!", "World");
492 is_client_sendq("@time=" ADVENTURE_TIME
" :" TEST_ME_NAME
" 001 * Hello World!" CRLF
, local_chan_ov
, MSG
);
494 sendto_one_numeric(local_chan_v
, 1, "Hello %s!", "World");
495 is_client_sendq(":" TEST_ME_NAME
" 001 * Hello World!" CRLF
, local_chan_v
, MSG
);
500 static void sendto_server1(void)
504 // TODO test capabilities
507 sendto_server(NULL
, channel
, 0, 0, "Hello %s!", "World");
508 is_client_sendq("Hello World!" CRLF
, server
, MSG
);
509 is_client_sendq("Hello World!" CRLF
, server2
, MSG
);
510 is_client_sendq("Hello World!" CRLF
, server3
, MSG
);
512 sendto_server(NULL
, lchannel
, 0, 0, "Hello %s!", "World");
513 is_client_sendq_empty(server
, MSG
);
514 is_client_sendq_empty(server2
, MSG
);
515 is_client_sendq_empty(server3
, MSG
);
517 sendto_server(NULL
, NULL
, 0, 0, "Hello %s!", "World");
518 is_client_sendq("Hello World!" CRLF
, server
, MSG
);
519 is_client_sendq("Hello World!" CRLF
, server2
, MSG
);
520 is_client_sendq("Hello World!" CRLF
, server3
, MSG
);
522 sendto_server(user
, channel
, 0, 0, "Hello %s!", "World");
523 is_client_sendq("Hello World!" CRLF
, server
, MSG
);
524 is_client_sendq("Hello World!" CRLF
, server2
, MSG
);
525 is_client_sendq("Hello World!" CRLF
, server3
, MSG
);
527 sendto_server(user
, lchannel
, 0, 0, "Hello %s!", "World");
528 is_client_sendq_empty(server
, MSG
);
529 is_client_sendq_empty(server2
, MSG
);
530 is_client_sendq_empty(server3
, MSG
);
532 sendto_server(user
, NULL
, 0, 0, "Hello %s!", "World");
533 is_client_sendq("Hello World!" CRLF
, server
, MSG
);
534 is_client_sendq("Hello World!" CRLF
, server2
, MSG
);
535 is_client_sendq("Hello World!" CRLF
, server3
, MSG
);
538 sendto_server(remote
, channel
, 0, 0, "Hello %s!", "World");
539 is_client_sendq_empty(server
, MSG
);
540 is_client_sendq("Hello World!" CRLF
, server2
, MSG
);
541 is_client_sendq("Hello World!" CRLF
, server3
, MSG
);
543 sendto_server(remote
, lchannel
, 0, 0, "Hello %s!", "World");
544 is_client_sendq_empty(server
, MSG
);
545 is_client_sendq_empty(server2
, MSG
);
546 is_client_sendq_empty(server3
, MSG
);
548 sendto_server(remote
, NULL
, 0, 0, "Hello %s!", "World");
549 is_client_sendq_empty(server
, MSG
);
550 is_client_sendq("Hello World!" CRLF
, server2
, MSG
);
551 is_client_sendq("Hello World!" CRLF
, server3
, MSG
);
553 sendto_server(remote2
, channel
, 0, 0, "Hello %s!", "World");
554 is_client_sendq("Hello World!" CRLF
, server
, MSG
);
555 is_client_sendq_empty(server2
, MSG
);
556 is_client_sendq("Hello World!" CRLF
, server3
, MSG
);
558 sendto_server(remote2
, lchannel
, 0, 0, "Hello %s!", "World");
559 is_client_sendq_empty(server
, MSG
);
560 is_client_sendq_empty(server2
, MSG
);
561 is_client_sendq_empty(server3
, MSG
);
563 sendto_server(remote2
, NULL
, 0, 0, "Hello %s!", "World");
564 is_client_sendq("Hello World!" CRLF
, server
, MSG
);
565 is_client_sendq_empty(server2
, MSG
);
566 is_client_sendq("Hello World!" CRLF
, server3
, MSG
);
568 sendto_server(remote3
, channel
, 0, 0, "Hello %s!", "World");
569 is_client_sendq("Hello World!" CRLF
, server
, MSG
);
570 is_client_sendq("Hello World!" CRLF
, server2
, MSG
);
571 is_client_sendq_empty(server3
, MSG
);
573 sendto_server(remote3
, lchannel
, 0, 0, "Hello %s!", "World");
574 is_client_sendq_empty(server
, MSG
);
575 is_client_sendq_empty(server2
, MSG
);
576 is_client_sendq_empty(server3
, MSG
);
578 sendto_server(remote3
, NULL
, 0, 0, "Hello %s!", "World");
579 is_client_sendq("Hello World!" CRLF
, server
, MSG
);
580 is_client_sendq("Hello World!" CRLF
, server2
, MSG
);
581 is_client_sendq_empty(server3
, MSG
);
586 static void sendto_server1__tags(void)
590 // TODO test capabilities
592 strcpy(user
->user
->suser
, "test");
593 strcpy(remote
->user
->suser
, "rtest");
594 strcpy(remote2
->user
->suser
, "r2test");
595 strcpy(remote3
->user
->suser
, "r3test");
598 sendto_server(NULL
, channel
, 0, 0, "Hello %s!", "World");
599 is_client_sendq("Hello World!" CRLF
, server
, MSG
);
600 is_client_sendq("Hello World!" CRLF
, server2
, MSG
);
601 is_client_sendq("Hello World!" CRLF
, server3
, MSG
);
603 sendto_server(NULL
, lchannel
, 0, 0, "Hello %s!", "World");
604 is_client_sendq_empty(server
, MSG
);
605 is_client_sendq_empty(server2
, MSG
);
606 is_client_sendq_empty(server3
, MSG
);
608 sendto_server(NULL
, NULL
, 0, 0, "Hello %s!", "World");
609 is_client_sendq("Hello World!" CRLF
, server
, MSG
);
610 is_client_sendq("Hello World!" CRLF
, server2
, MSG
);
611 is_client_sendq("Hello World!" CRLF
, server3
, MSG
);
613 sendto_server(user
, channel
, 0, 0, "Hello %s!", "World");
614 is_client_sendq("Hello World!" CRLF
, server
, MSG
);
615 is_client_sendq("Hello World!" CRLF
, server2
, MSG
);
616 is_client_sendq("Hello World!" CRLF
, server3
, MSG
);
618 sendto_server(user
, lchannel
, 0, 0, "Hello %s!", "World");
619 is_client_sendq_empty(server
, MSG
);
620 is_client_sendq_empty(server2
, MSG
);
621 is_client_sendq_empty(server3
, MSG
);
623 sendto_server(user
, NULL
, 0, 0, "Hello %s!", "World");
624 is_client_sendq("Hello World!" CRLF
, server
, MSG
);
625 is_client_sendq("Hello World!" CRLF
, server2
, MSG
);
626 is_client_sendq("Hello World!" CRLF
, server3
, MSG
);
629 sendto_server(remote
, channel
, 0, 0, "Hello %s!", "World");
630 is_client_sendq_empty(server
, MSG
);
631 is_client_sendq("Hello World!" CRLF
, server2
, MSG
);
632 is_client_sendq("Hello World!" CRLF
, server3
, MSG
);
634 sendto_server(remote
, lchannel
, 0, 0, "Hello %s!", "World");
635 is_client_sendq_empty(server
, MSG
);
636 is_client_sendq_empty(server2
, MSG
);
637 is_client_sendq_empty(server3
, MSG
);
639 sendto_server(remote
, NULL
, 0, 0, "Hello %s!", "World");
640 is_client_sendq_empty(server
, MSG
);
641 is_client_sendq("Hello World!" CRLF
, server2
, MSG
);
642 is_client_sendq("Hello World!" CRLF
, server3
, MSG
);
644 sendto_server(remote2
, channel
, 0, 0, "Hello %s!", "World");
645 is_client_sendq("Hello World!" CRLF
, server
, MSG
);
646 is_client_sendq_empty(server2
, MSG
);
647 is_client_sendq("Hello World!" CRLF
, server3
, MSG
);
649 sendto_server(remote2
, lchannel
, 0, 0, "Hello %s!", "World");
650 is_client_sendq_empty(server
, MSG
);
651 is_client_sendq_empty(server2
, MSG
);
652 is_client_sendq_empty(server3
, MSG
);
654 sendto_server(remote2
, NULL
, 0, 0, "Hello %s!", "World");
655 is_client_sendq("Hello World!" CRLF
, server
, MSG
);
656 is_client_sendq_empty(server2
, MSG
);
657 is_client_sendq("Hello World!" CRLF
, server3
, MSG
);
659 sendto_server(remote3
, channel
, 0, 0, "Hello %s!", "World");
660 is_client_sendq("Hello World!" CRLF
, server
, MSG
);
661 is_client_sendq("Hello World!" CRLF
, server2
, MSG
);
662 is_client_sendq_empty(server3
, MSG
);
664 sendto_server(remote3
, lchannel
, 0, 0, "Hello %s!", "World");
665 is_client_sendq_empty(server
, MSG
);
666 is_client_sendq_empty(server2
, MSG
);
667 is_client_sendq_empty(server3
, MSG
);
669 sendto_server(remote3
, NULL
, 0, 0, "Hello %s!", "World");
670 is_client_sendq("Hello World!" CRLF
, server
, MSG
);
671 is_client_sendq("Hello World!" CRLF
, server2
, MSG
);
672 is_client_sendq_empty(server3
, MSG
);
677 static void sendto_channel_flags__local__all_members(void)
681 sendto_channel_flags(local_chan_p
, ALL_MEMBERS
, local_chan_p
, channel
, "TEST #placeholder :Hello %s!", "World");
682 is_client_sendq_empty(user
, "Not on channel; " MSG
);
683 is_client_sendq(":LChanPeon" TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_o
, "On channel; " MSG
);
684 is_client_sendq(":LChanPeon" TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_ov
, "On channel; " MSG
);
685 is_client_sendq(":LChanPeon" TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_v
, "On channel; " MSG
);
686 is_client_sendq_empty(local_chan_p
, "Message source; " MSG
);
687 is_client_sendq_empty(local_chan_d
, "Deaf; " MSG
);
688 is_client_sendq(":LChanPeon TEST #placeholder :Hello World!" CRLF
, server
, MSG
);
689 is_client_sendq(":LChanPeon TEST #placeholder :Hello World!" CRLF
, server2
, MSG
);
693 sendto_channel_flags(local_chan_p
, ALL_MEMBERS
, local_chan_p
, channel
, "TEST #placeholder :Hello %s!", "World");
694 is_client_sendq_empty(user
, "Not on channel; " MSG
);
695 is_client_sendq(":LChanPeon" TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_o
, "On channel; " MSG
);
696 is_client_sendq(":LChanPeon" TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_ov
, "On channel; " MSG
);
697 is_client_sendq(":LChanPeon" TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_v
, "On channel; " MSG
);
698 is_client_sendq_empty(local_chan_p
, "Message source; " MSG
);
699 is_client_sendq_empty(local_chan_d
, "Deaf; " MSG
);
700 is_client_sendq(":" TEST_ME_ID
"90004 TEST #placeholder :Hello World!" CRLF
, server
, MSG
);
701 is_client_sendq(":" TEST_ME_ID
"90004 TEST #placeholder :Hello World!" CRLF
, server2
, MSG
);
706 static void sendto_channel_flags__remote__all_members(void)
710 sendto_channel_flags(server
, ALL_MEMBERS
, remote_chan_p
, channel
, "TEST #placeholder :Hello %s!", "World");
711 is_client_sendq(":RChanPeon" TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_o
, "On channel; " MSG
);
712 is_client_sendq(":RChanPeon" TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_ov
, "On channel; " MSG
);
713 is_client_sendq(":RChanPeon" TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_v
, "On channel; " MSG
);
714 is_client_sendq(":RChanPeon" TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_p
, "On channel; " MSG
);
715 is_client_sendq_empty(local_chan_d
, "Deaf; " MSG
);
716 is_client_sendq_empty(server
, "Message source; " MSG
);
717 is_client_sendq(":RChanPeon TEST #placeholder :Hello World!" CRLF
, server2
, MSG
);
721 sendto_channel_flags(server
, ALL_MEMBERS
, remote_chan_p
, channel
, "TEST #placeholder :Hello %s!", "World");
722 is_client_sendq(":RChanPeon" TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_o
, "On channel; " MSG
);
723 is_client_sendq(":RChanPeon" TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_ov
, "On channel; " MSG
);
724 is_client_sendq(":RChanPeon" TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_v
, "On channel; " MSG
);
725 is_client_sendq(":RChanPeon" TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_p
, "On channel; " MSG
);
726 is_client_sendq_empty(local_chan_d
, "Deaf; " MSG
);
727 is_client_sendq_empty(server
, "Message source; " MSG
);
728 is_client_sendq(":" TEST_SERVER_ID
"90104 TEST #placeholder :Hello World!" CRLF
, server2
, MSG
);
733 static void sendto_channel_flags__local__all_members__tags(void)
737 strcpy(local_chan_p
->user
->suser
, "test");
738 local_chan_o
->localClient
->caps
|= CAP_ACCOUNT_TAG
;
739 local_chan_o
->localClient
->caps
|= CAP_SERVER_TIME
;
740 local_chan_ov
->localClient
->caps
|= CAP_SERVER_TIME
;
741 local_chan_v
->localClient
->caps
|= CAP_ACCOUNT_TAG
;
743 sendto_channel_flags(local_chan_p
, ALL_MEMBERS
, local_chan_p
, channel
, "TEST #placeholder :Hello %s!", "World");
744 is_client_sendq_empty(user
, "Not on channel; " MSG
);
745 is_client_sendq("@time=" ADVENTURE_TIME
";account=test :LChanPeon" TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_o
, "On channel; " MSG
);
746 is_client_sendq("@time=" ADVENTURE_TIME
" :LChanPeon" TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_ov
, "On channel; " MSG
);
747 is_client_sendq("@account=test :LChanPeon" TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_v
, "On channel; " MSG
);
748 is_client_sendq_empty(local_chan_p
, "Message source; " MSG
);
749 is_client_sendq_empty(local_chan_d
, "Deaf; " MSG
);
750 is_client_sendq(":LChanPeon TEST #placeholder :Hello World!" CRLF
, server
, MSG
);
751 is_client_sendq(":LChanPeon TEST #placeholder :Hello World!" CRLF
, server2
, MSG
);
755 sendto_channel_flags(local_chan_p
, ALL_MEMBERS
, local_chan_p
, channel
, "TEST #placeholder :Hello %s!", "World");
756 is_client_sendq_empty(user
, "Not on channel; " MSG
);
757 is_client_sendq("@time=" ADVENTURE_TIME
";account=test :LChanPeon" TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_o
, "On channel; " MSG
);
758 is_client_sendq("@time=" ADVENTURE_TIME
" :LChanPeon" TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_ov
, "On channel; " MSG
);
759 is_client_sendq("@account=test :LChanPeon" TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_v
, "On channel; " MSG
);
760 is_client_sendq_empty(local_chan_p
, "Message source; " MSG
);
761 is_client_sendq_empty(local_chan_d
, "Deaf; " MSG
);
762 is_client_sendq(":" TEST_ME_ID
"90004 TEST #placeholder :Hello World!" CRLF
, server
, MSG
);
763 is_client_sendq(":" TEST_ME_ID
"90004 TEST #placeholder :Hello World!" CRLF
, server2
, MSG
);
768 static void sendto_channel_flags__remote__all_members__tags(void)
772 strcpy(remote_chan_p
->user
->suser
, "test");
773 local_chan_o
->localClient
->caps
|= CAP_ACCOUNT_TAG
;
774 local_chan_o
->localClient
->caps
|= CAP_SERVER_TIME
;
775 local_chan_ov
->localClient
->caps
|= CAP_SERVER_TIME
;
776 local_chan_v
->localClient
->caps
|= CAP_ACCOUNT_TAG
;
778 sendto_channel_flags(server
, ALL_MEMBERS
, remote_chan_p
, channel
, "TEST #placeholder :Hello %s!", "World");
779 is_client_sendq("@time=" ADVENTURE_TIME
";account=test :RChanPeon" TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_o
, "On channel; " MSG
);
780 is_client_sendq("@time=" ADVENTURE_TIME
" :RChanPeon" TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_ov
, "On channel; " MSG
);
781 is_client_sendq("@account=test :RChanPeon" TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_v
, "On channel; " MSG
);
782 is_client_sendq(":RChanPeon" TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_p
, "On channel; " MSG
);
783 is_client_sendq_empty(local_chan_d
, "Deaf; " MSG
);
784 is_client_sendq_empty(server
, "Message source; " MSG
);
785 is_client_sendq(":RChanPeon TEST #placeholder :Hello World!" CRLF
, server2
, MSG
);
789 sendto_channel_flags(server
, ALL_MEMBERS
, remote_chan_p
, channel
, "TEST #placeholder :Hello %s!", "World");
790 is_client_sendq("@time=" ADVENTURE_TIME
";account=test :RChanPeon" TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_o
, "On channel; " MSG
);
791 is_client_sendq("@time=" ADVENTURE_TIME
" :RChanPeon" TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_ov
, "On channel; " MSG
);
792 is_client_sendq("@account=test :RChanPeon" TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_v
, "On channel; " MSG
);
793 is_client_sendq(":RChanPeon" TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_p
, "On channel; " MSG
);
794 is_client_sendq_empty(local_chan_d
, "Deaf; " MSG
);
795 is_client_sendq_empty(server
, "Message source; " MSG
);
796 is_client_sendq(":" TEST_SERVER_ID
"90104 TEST #placeholder :Hello World!" CRLF
, server2
, MSG
);
801 static void sendto_channel_flags__local__voice(void)
806 standard_server_caps(0, CAP_CHW
);
808 sendto_channel_flags(user
, CHFL_VOICE
, user
, channel
, "TEST #placeholder :Hello %s!", "World");
809 is_client_sendq_empty(user
, "Not on channel; " MSG
);
810 is_client_sendq_empty(local_chan_o
, "Not +v; " MSG
);
811 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_ov
, "Has +v; " MSG
);
812 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_v
, "Has +v; " MSG
);
813 is_client_sendq_empty(local_chan_p
, "Not +v; " MSG
);
814 is_client_sendq_empty(local_chan_d
, "Deaf; " MSG
);
815 is_client_sendq_empty(server
, "No users to receive message; " MSG
);
816 is_client_sendq_empty(server2
, "No users to receive message; " MSG
);
819 standard_server_caps(CAP_CHW
, 0);
821 sendto_channel_flags(user
, CHFL_VOICE
, user
, channel
, "TEST #placeholder :Hello %s!", "World");
822 is_client_sendq_empty(user
, "Not on channel; " MSG
);
823 is_client_sendq_empty(local_chan_o
, "Not +v; " MSG
);
824 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_ov
, "Has +v; " MSG
);
825 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_v
, "Has +v; " MSG
);
826 is_client_sendq_empty(local_chan_p
, "Not +v; " MSG
);
827 is_client_sendq_empty(local_chan_d
, "Deaf; " MSG
);
828 is_client_sendq(":" TEST_NICK
" TEST #placeholder :Hello World!" CRLF
, server
, MSG
);
829 is_client_sendq_empty(server2
, "No users to receive message; " MSG
);
834 standard_server_caps(0, CAP_CHW
);
836 sendto_channel_flags(user
, CHFL_VOICE
, user
, channel
, "TEST #placeholder :Hello %s!", "World");
837 is_client_sendq_empty(user
, "Not on channel; " MSG
);
838 is_client_sendq_empty(local_chan_o
, "Not +v; " MSG
);
839 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_ov
, "Has +v; " MSG
);
840 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_v
, "Has +v; " MSG
);
841 is_client_sendq_empty(local_chan_p
, "Not +v; " MSG
);
842 is_client_sendq_empty(local_chan_d
, "Deaf; " MSG
);
843 is_client_sendq_empty(server
, "No users to receive message; " MSG
);
844 is_client_sendq_empty(server2
, "No users to receive message; " MSG
);
847 standard_server_caps(CAP_CHW
, 0);
849 sendto_channel_flags(user
, CHFL_VOICE
, user
, channel
, "TEST #placeholder :Hello %s!", "World");
850 is_client_sendq_empty(user
, "Not on channel; " MSG
);
851 is_client_sendq_empty(local_chan_o
, "Not +v; " MSG
);
852 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_ov
, "Has +v; " MSG
);
853 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_v
, "Has +v; " MSG
);
854 is_client_sendq_empty(local_chan_p
, "Not +v; " MSG
);
855 is_client_sendq_empty(local_chan_d
, "Deaf; " MSG
);
856 is_client_sendq(":" TEST_ID
" TEST #placeholder :Hello World!" CRLF
, server
, MSG
);
857 is_client_sendq_empty(server2
, "No users to receive message; " MSG
);
862 static void sendto_channel_flags__remote__voice(void)
867 standard_server_caps(0, CAP_CHW
);
869 sendto_channel_flags(server3
, CHFL_VOICE
, remote3
, channel
, "TEST #placeholder :Hello %s!", "World");
870 is_client_sendq_empty(local_chan_o
, "Not +v; " MSG
);
871 is_client_sendq(":" TEST_REMOTE3_NICK TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_ov
, "Has +v; " MSG
);
872 is_client_sendq(":" TEST_REMOTE3_NICK TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_v
, "Has +v; " MSG
);
873 is_client_sendq_empty(local_chan_p
, "Not +v; " MSG
);
874 is_client_sendq_empty(local_chan_d
, "Deaf; " MSG
);
875 is_client_sendq_empty(server
, "No users to receive message; " MSG
);
876 is_client_sendq_empty(server2
, "No users to receive message; " MSG
);
879 standard_server_caps(CAP_CHW
, 0);
881 sendto_channel_flags(server3
, CHFL_VOICE
, remote3
, channel
, "TEST #placeholder :Hello %s!", "World");
882 is_client_sendq_empty(local_chan_o
, "Not +v; " MSG
);
883 is_client_sendq(":" TEST_REMOTE3_NICK TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_ov
, "Has +v; " MSG
);
884 is_client_sendq(":" TEST_REMOTE3_NICK TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_v
, "Has +v; " MSG
);
885 is_client_sendq_empty(local_chan_p
, "Not +v; " MSG
);
886 is_client_sendq_empty(local_chan_d
, "Deaf; " MSG
);
887 is_client_sendq(":" TEST_REMOTE3_NICK
" TEST #placeholder :Hello World!" CRLF
, server
, "On channel; " MSG
);
888 is_client_sendq_empty(server2
, "No users to receive message; " MSG
);
893 standard_server_caps(0, CAP_CHW
);
895 sendto_channel_flags(server3
, CHFL_VOICE
, remote3
, channel
, "TEST #placeholder :Hello %s!", "World");
896 is_client_sendq_empty(local_chan_o
, "Not +v; " MSG
);
897 is_client_sendq(":" TEST_REMOTE3_NICK TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_ov
, "Has +v; " MSG
);
898 is_client_sendq(":" TEST_REMOTE3_NICK TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_v
, "Has +v; " MSG
);
899 is_client_sendq_empty(local_chan_p
, "Not +v; " MSG
);
900 is_client_sendq_empty(local_chan_d
, "Deaf; " MSG
);
901 is_client_sendq_empty(server
, "No users to receive message; " MSG
);
902 is_client_sendq_empty(server2
, "No users to receive message; " MSG
);
905 standard_server_caps(CAP_CHW
, 0);
907 sendto_channel_flags(server3
, CHFL_VOICE
, remote3
, channel
, "TEST #placeholder :Hello %s!", "World");
908 is_client_sendq_empty(local_chan_o
, "Not +v; " MSG
);
909 is_client_sendq(":" TEST_REMOTE3_NICK TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_ov
, "Has +v; " MSG
);
910 is_client_sendq(":" TEST_REMOTE3_NICK TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_v
, "Has +v; " MSG
);
911 is_client_sendq_empty(local_chan_p
, "Not +v; " MSG
);
912 is_client_sendq_empty(local_chan_d
, "Deaf; " MSG
);
913 is_client_sendq(":" TEST_REMOTE3_ID
" TEST #placeholder :Hello World!" CRLF
, server
, "On channel; " MSG
);
914 is_client_sendq_empty(server2
, "No users to receive message; " MSG
);
919 static void sendto_channel_flags__local__chanop(void)
924 standard_server_caps(0, CAP_CHW
);
926 sendto_channel_flags(user
, CHFL_CHANOP
, user
, channel
, "TEST #placeholder :Hello %s!", "World");
927 is_client_sendq_empty(user
, "Not on channel; " MSG
);
928 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_o
, "Has +o; " MSG
);
929 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_ov
, "Has +o; " MSG
);
930 is_client_sendq_empty(local_chan_v
, "Not +o; " MSG
);
931 is_client_sendq_empty(local_chan_p
, "Not +v; " MSG
);
932 is_client_sendq_empty(local_chan_d
, "Deaf; " MSG
);
933 is_client_sendq_empty(server
, "No users to receive message; " MSG
);
934 is_client_sendq_empty(server2
, "No users to receive message; " MSG
);
937 standard_server_caps(CAP_CHW
, 0);
939 sendto_channel_flags(user
, CHFL_CHANOP
, user
, channel
, "TEST #placeholder :Hello %s!", "World");
940 is_client_sendq_empty(user
, "Not on channel; " MSG
);
941 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_o
, "Has +o; " MSG
);
942 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_ov
, "Has +o; " MSG
);
943 is_client_sendq_empty(local_chan_v
, "Not +o; " MSG
);
944 is_client_sendq_empty(local_chan_p
, "Not +o; " MSG
);
945 is_client_sendq_empty(local_chan_d
, "Deaf; " MSG
);
946 is_client_sendq(":" TEST_NICK
" TEST #placeholder :Hello World!" CRLF
, server
, MSG
);
947 is_client_sendq_empty(server2
, "No users to receive message; " MSG
);
952 standard_server_caps(0, CAP_CHW
);
954 sendto_channel_flags(user
, CHFL_CHANOP
, user
, channel
, "TEST #placeholder :Hello %s!", "World");
955 is_client_sendq_empty(user
, "Not on channel; " MSG
);
956 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_o
, "Has +o; " MSG
);
957 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_ov
, "Has +o; " MSG
);
958 is_client_sendq_empty(local_chan_v
, "Not +o; " MSG
);
959 is_client_sendq_empty(local_chan_p
, "Not +o; " MSG
);
960 is_client_sendq_empty(local_chan_d
, "Deaf; " MSG
);
961 is_client_sendq_empty(server
, "No users to receive message; " MSG
);
962 is_client_sendq_empty(server2
, "No users to receive message; " MSG
);
965 standard_server_caps(CAP_CHW
, 0);
967 sendto_channel_flags(user
, CHFL_CHANOP
, user
, channel
, "TEST #placeholder :Hello %s!", "World");
968 is_client_sendq_empty(user
, "Not on channel; " MSG
);
969 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_o
, "Has +o; " MSG
);
970 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_ov
, "Has +o; " MSG
);
971 is_client_sendq_empty(local_chan_v
, "Not +o; " MSG
);
972 is_client_sendq_empty(local_chan_p
, "Not +o; " MSG
);
973 is_client_sendq_empty(local_chan_d
, "Deaf; " MSG
);
974 is_client_sendq(":" TEST_ID
" TEST #placeholder :Hello World!" CRLF
, server
, MSG
);
975 is_client_sendq_empty(server2
, "No users to receive message; " MSG
);
980 static void sendto_channel_flags__remote__chanop(void)
985 standard_server_caps(0, CAP_CHW
);
987 sendto_channel_flags(server3
, CHFL_CHANOP
, remote3
, channel
, "TEST #placeholder :Hello %s!", "World");
988 is_client_sendq(":" TEST_REMOTE3_NICK TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_o
, "Has +o; " MSG
);
989 is_client_sendq(":" TEST_REMOTE3_NICK TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_ov
, "Has +o; " MSG
);
990 is_client_sendq_empty(local_chan_v
, "Not +o; " MSG
);
991 is_client_sendq_empty(local_chan_p
, "Not +o; " MSG
);
992 is_client_sendq_empty(local_chan_d
, "Deaf; " MSG
);
993 is_client_sendq_empty(server
, "No users to receive message; " MSG
);
994 is_client_sendq_empty(server2
, "No users to receive message; " MSG
);
997 standard_server_caps(CAP_CHW
, 0);
999 sendto_channel_flags(server3
, CHFL_CHANOP
, remote3
, channel
, "TEST #placeholder :Hello %s!", "World");
1000 is_client_sendq(":" TEST_REMOTE3_NICK TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_o
, "Has +o; " MSG
);
1001 is_client_sendq(":" TEST_REMOTE3_NICK TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_ov
, "Has +o; " MSG
);
1002 is_client_sendq_empty(local_chan_v
, "Not +o; " MSG
);
1003 is_client_sendq_empty(local_chan_p
, "Not +o; " MSG
);
1004 is_client_sendq_empty(local_chan_d
, "Deaf; " MSG
);
1005 is_client_sendq(":" TEST_REMOTE3_NICK
" TEST #placeholder :Hello World!" CRLF
, server
, "On channel; " MSG
);
1006 is_client_sendq_empty(server2
, "No users to receive message; " MSG
);
1011 standard_server_caps(0, CAP_CHW
);
1013 sendto_channel_flags(server3
, CHFL_CHANOP
, remote3
, channel
, "TEST #placeholder :Hello %s!", "World");
1014 is_client_sendq(":" TEST_REMOTE3_NICK TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_o
, "Has +o; " MSG
);
1015 is_client_sendq(":" TEST_REMOTE3_NICK TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_ov
, "Has +o; " MSG
);
1016 is_client_sendq_empty(local_chan_v
, "Not +o; " MSG
);
1017 is_client_sendq_empty(local_chan_p
, "Not +o; " MSG
);
1018 is_client_sendq_empty(local_chan_d
, "Deaf; " MSG
);
1019 is_client_sendq_empty(server
, "No users to receive message; " MSG
);
1020 is_client_sendq_empty(server2
, "No users to receive message; " MSG
);
1023 standard_server_caps(CAP_CHW
, 0);
1025 sendto_channel_flags(server3
, CHFL_CHANOP
, remote3
, channel
, "TEST #placeholder :Hello %s!", "World");
1026 is_client_sendq(":" TEST_REMOTE3_NICK TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_o
, "Has +o; " MSG
);
1027 is_client_sendq(":" TEST_REMOTE3_NICK TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_ov
, "Has +o; " MSG
);
1028 is_client_sendq_empty(local_chan_v
, "Not +o; " MSG
);
1029 is_client_sendq_empty(local_chan_p
, "Not +o; " MSG
);
1030 is_client_sendq_empty(local_chan_d
, "Deaf; " MSG
);
1031 is_client_sendq(":" TEST_REMOTE3_ID
" TEST #placeholder :Hello World!" CRLF
, server
, "On channel; " MSG
);
1032 is_client_sendq_empty(server2
, "No users to receive message; " MSG
);
1037 static void sendto_channel_flags__local__chanop_voice(void)
1042 standard_server_caps(0, CAP_CHW
);
1044 sendto_channel_flags(user
, CHFL_CHANOP
| CHFL_VOICE
, user
, channel
, "TEST #placeholder :Hello %s!", "World");
1045 is_client_sendq_empty(user
, "Not on channel; " MSG
);
1046 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_o
, "Has +o/+v; " MSG
);
1047 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_ov
, "Has +o/+v; " MSG
);
1048 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_v
, "Has +o/+v; " MSG
);
1049 is_client_sendq_empty(local_chan_p
, "Not +o/+v; " MSG
);
1050 is_client_sendq_empty(local_chan_d
, "Deaf; " MSG
);
1051 is_client_sendq_empty(server
, "No users to receive message; " MSG
);
1052 is_client_sendq_empty(server2
, "No users to receive message; " MSG
);
1055 standard_server_caps(CAP_CHW
, 0);
1057 sendto_channel_flags(user
, CHFL_CHANOP
| CHFL_VOICE
, user
, channel
, "TEST #placeholder :Hello %s!", "World");
1058 is_client_sendq_empty(user
, "Not on channel; " MSG
);
1059 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_o
, "Has +o/+v; " MSG
);
1060 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_ov
, "Has +o/+v; " MSG
);
1061 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_v
, "Has +o/+v; " MSG
);
1062 is_client_sendq_empty(local_chan_p
, "Not +o/+v; " MSG
);
1063 is_client_sendq_empty(local_chan_d
, "Deaf; " MSG
);
1064 is_client_sendq(":" TEST_NICK
" TEST #placeholder :Hello World!" CRLF
, server
, MSG
);
1065 is_client_sendq_empty(server2
, "No users to receive message; " MSG
);
1070 standard_server_caps(0, CAP_CHW
);
1072 sendto_channel_flags(user
, CHFL_CHANOP
| CHFL_VOICE
, user
, channel
, "TEST #placeholder :Hello %s!", "World");
1073 is_client_sendq_empty(user
, "Not on channel; " MSG
);
1074 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_o
, "Has +o/+v; " MSG
);
1075 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_ov
, "Has +o/+v; " MSG
);
1076 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_v
, "Has +o/+v; " MSG
);
1077 is_client_sendq_empty(local_chan_p
, "Not +o/+v; " MSG
);
1078 is_client_sendq_empty(local_chan_d
, "Deaf; " MSG
);
1079 is_client_sendq_empty(server
, "No users to receive message; " MSG
);
1080 is_client_sendq_empty(server2
, "No users to receive message; " MSG
);
1083 standard_server_caps(CAP_CHW
, 0);
1085 sendto_channel_flags(user
, CHFL_CHANOP
| CHFL_VOICE
, user
, channel
, "TEST #placeholder :Hello %s!", "World");
1086 is_client_sendq_empty(user
, "Not on channel; " MSG
);
1087 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_o
, "Has +o/+v; " MSG
);
1088 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_ov
, "Has +o/+v; " MSG
);
1089 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_v
, "Has +o/+v; " MSG
);
1090 is_client_sendq_empty(local_chan_p
, "Not +o/+v; " MSG
);
1091 is_client_sendq_empty(local_chan_d
, "Deaf; " MSG
);
1092 is_client_sendq(":" TEST_ID
" TEST #placeholder :Hello World!" CRLF
, server
, MSG
);
1093 is_client_sendq_empty(server2
, "No users to receive message; " MSG
);
1098 static void sendto_channel_flags__remote__chanop_voice(void)
1103 standard_server_caps(0, CAP_CHW
);
1105 sendto_channel_flags(server3
, CHFL_CHANOP
| CHFL_VOICE
, remote3
, channel
, "TEST #placeholder :Hello %s!", "World");
1106 is_client_sendq(":" TEST_REMOTE3_NICK TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_o
, "Has +o/+v; " MSG
);
1107 is_client_sendq(":" TEST_REMOTE3_NICK TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_ov
, "Has +o/+v; " MSG
);
1108 is_client_sendq(":" TEST_REMOTE3_NICK TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_v
, "Has +o/+v; " MSG
);
1109 is_client_sendq_empty(local_chan_p
, "Not +o/+v; " MSG
);
1110 is_client_sendq_empty(local_chan_d
, "Deaf; " MSG
);
1111 is_client_sendq_empty(server
, "No users to receive message; " MSG
);
1112 is_client_sendq_empty(server2
, "No users to receive message; " MSG
);
1115 standard_server_caps(CAP_CHW
, 0);
1117 sendto_channel_flags(server3
, CHFL_CHANOP
| CHFL_VOICE
, remote3
, channel
, "TEST #placeholder :Hello %s!", "World");
1118 is_client_sendq(":" TEST_REMOTE3_NICK TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_o
, "Has +o/+v; " MSG
);
1119 is_client_sendq(":" TEST_REMOTE3_NICK TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_ov
, "Has +o/+v; " MSG
);
1120 is_client_sendq(":" TEST_REMOTE3_NICK TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_v
, "Has +o/+v; " MSG
);
1121 is_client_sendq_empty(local_chan_p
, "Not +o/+v; " MSG
);
1122 is_client_sendq_empty(local_chan_d
, "Deaf; " MSG
);
1123 is_client_sendq(":" TEST_REMOTE3_NICK
" TEST #placeholder :Hello World!" CRLF
, server
, "On channel; " MSG
);
1124 is_client_sendq_empty(server2
, "No users to receive message; " MSG
);
1129 standard_server_caps(0, CAP_CHW
);
1131 sendto_channel_flags(server3
, CHFL_CHANOP
| CHFL_VOICE
, remote3
, channel
, "TEST #placeholder :Hello %s!", "World");
1132 is_client_sendq(":" TEST_REMOTE3_NICK TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_o
, "Has +o/+v; " MSG
);
1133 is_client_sendq(":" TEST_REMOTE3_NICK TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_ov
, "Has +o/+v; " MSG
);
1134 is_client_sendq(":" TEST_REMOTE3_NICK TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_v
, "Has +o/+v; " MSG
);
1135 is_client_sendq_empty(local_chan_p
, "Not +o/+v; " MSG
);
1136 is_client_sendq_empty(local_chan_d
, "Deaf; " MSG
);
1137 is_client_sendq_empty(server
, "No users to receive message; " MSG
);
1138 is_client_sendq_empty(server2
, "No users to receive message; " MSG
);
1141 standard_server_caps(CAP_CHW
, 0);
1143 sendto_channel_flags(server3
, CHFL_CHANOP
| CHFL_VOICE
, remote3
, channel
, "TEST #placeholder :Hello %s!", "World");
1144 is_client_sendq(":" TEST_REMOTE3_NICK TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_o
, "Has +o/+v; " MSG
);
1145 is_client_sendq(":" TEST_REMOTE3_NICK TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_ov
, "Has +o/+v; " MSG
);
1146 is_client_sendq(":" TEST_REMOTE3_NICK TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_v
, "Has +o/+v; " MSG
);
1147 is_client_sendq_empty(local_chan_p
, "Not +o/+v; " MSG
);
1148 is_client_sendq_empty(local_chan_d
, "Deaf; " MSG
);
1149 is_client_sendq(":" TEST_REMOTE3_ID
" TEST #placeholder :Hello World!" CRLF
, server
, "On channel; " MSG
);
1150 is_client_sendq_empty(server2
, "No users to receive message; " MSG
);
1155 static void sendto_channel_opmod__local(void)
1159 // This function does not support TS5...
1162 // Without CAP_CHW | CAP_EOPMOD
1163 standard_server_caps(0, CAP_CHW
| CAP_EOPMOD
);
1165 sendto_channel_opmod(local_chan_p
, local_chan_p
, channel
, "TEST", "Hello World!");
1166 is_client_sendq_empty(user
, "Not on channel; " MSG
);
1167 is_client_sendq(":LChanPeon" TEST_ID_SUFFIX
" TEST " TEST_CHANNEL
" :Hello World!" CRLF
, local_chan_o
, "On channel; " MSG
);
1168 is_client_sendq(":LChanPeon" TEST_ID_SUFFIX
" TEST " TEST_CHANNEL
" :Hello World!" CRLF
, local_chan_ov
, "On channel; " MSG
);
1169 is_client_sendq_empty(local_chan_v
, "Not +o; " MSG
);
1170 is_client_sendq_empty(local_chan_p
, "Message source; " MSG
);
1171 is_client_sendq_empty(local_chan_d
, "Deaf; " MSG
);
1172 is_client_sendq_empty(server
, "No users to receive message; " MSG
);
1173 is_client_sendq_empty(server2
, "No users to receive message; " MSG
);
1175 // With CAP_CHW, without CAP_EOPMOD
1176 standard_server_caps(CAP_CHW
, CAP_EOPMOD
);
1178 sendto_channel_opmod(local_chan_p
, local_chan_p
, channel
, "TEST", "Hello World!");
1179 is_client_sendq_empty(user
, "Not on channel; " MSG
);
1180 is_client_sendq(":LChanPeon" TEST_ID_SUFFIX
" TEST " TEST_CHANNEL
" :Hello World!" CRLF
, local_chan_o
, "On channel; " MSG
);
1181 is_client_sendq(":LChanPeon" TEST_ID_SUFFIX
" TEST " TEST_CHANNEL
" :Hello World!" CRLF
, local_chan_ov
, "On channel; " MSG
);
1182 is_client_sendq_empty(local_chan_v
, "Not +o; " MSG
);
1183 is_client_sendq_empty(local_chan_p
, "Message source; " MSG
);
1184 is_client_sendq_empty(local_chan_d
, "Deaf; " MSG
);
1185 is_client_sendq(":" TEST_ME_ID
" NOTICE @" TEST_CHANNEL
" :<LChanPeon:" TEST_CHANNEL
"> Hello World!" CRLF
, server
, MSG
);
1186 is_client_sendq_empty(server2
, "No users to receive message; " MSG
);
1188 // Moderated channel
1189 channel
->mode
.mode
|= MODE_MODERATED
;
1191 sendto_channel_opmod(local_chan_p
, local_chan_p
, channel
, "TEST", "Hello World!");
1192 is_client_sendq_empty(user
, "Not on channel; " MSG
);
1193 is_client_sendq(":LChanPeon" TEST_ID_SUFFIX
" TEST " TEST_CHANNEL
" :Hello World!" CRLF
, local_chan_o
, "On channel; " MSG
);
1194 is_client_sendq(":LChanPeon" TEST_ID_SUFFIX
" TEST " TEST_CHANNEL
" :Hello World!" CRLF
, local_chan_ov
, "On channel; " MSG
);
1195 is_client_sendq_empty(local_chan_v
, "Not +o; " MSG
);
1196 is_client_sendq_empty(local_chan_p
, "Message source; " MSG
);
1197 is_client_sendq_empty(local_chan_d
, "Deaf; " MSG
);
1198 is_client_sendq(":" TEST_ME_ID
"90004 TEST " TEST_CHANNEL
" :Hello World!" CRLF
, server
, MSG
);
1199 is_client_sendq_empty(server2
, "No users to receive message; " MSG
);
1201 // With CAP_CHW | CAP_EOPMOD
1202 channel
->mode
.mode
&= ~MODE_MODERATED
;
1203 standard_server_caps(CAP_CHW
| CAP_EOPMOD
, 0);
1205 sendto_channel_opmod(local_chan_p
, local_chan_p
, channel
, "TEST", "Hello World!");
1206 is_client_sendq_empty(user
, "Not on channel; " MSG
);
1207 is_client_sendq(":LChanPeon" TEST_ID_SUFFIX
" TEST " TEST_CHANNEL
" :Hello World!" CRLF
, local_chan_o
, "On channel; " MSG
);
1208 is_client_sendq(":LChanPeon" TEST_ID_SUFFIX
" TEST " TEST_CHANNEL
" :Hello World!" CRLF
, local_chan_ov
, "On channel; " MSG
);
1209 is_client_sendq_empty(local_chan_v
, "Not +o; " MSG
);
1210 is_client_sendq_empty(local_chan_p
, "Message source; " MSG
);
1211 is_client_sendq_empty(local_chan_d
, "Deaf; " MSG
);
1212 is_client_sendq(":" TEST_ME_ID
"90004 TEST =" TEST_CHANNEL
" :Hello World!" CRLF
, server
, MSG
);
1213 is_client_sendq_empty(server2
, "No users to receive message; " MSG
);
1218 static void sendto_channel_opmod_statusmsg__local(void)
1221 ConfigChannel
.opmod_send_statusmsg
= true;
1223 // This function does not support TS5...
1226 // Without CAP_CHW | CAP_EOPMOD
1227 standard_server_caps(0, CAP_CHW
| CAP_EOPMOD
);
1229 sendto_channel_opmod(local_chan_p
, local_chan_p
, channel
, "TEST", "Hello World!");
1230 is_client_sendq_empty(user
, "Not on channel; " MSG
);
1231 is_client_sendq(":LChanPeon" TEST_ID_SUFFIX
" TEST @" TEST_CHANNEL
" :Hello World!" CRLF
, local_chan_o
, "On channel; " MSG
);
1232 is_client_sendq(":LChanPeon" TEST_ID_SUFFIX
" TEST @" TEST_CHANNEL
" :Hello World!" CRLF
, local_chan_ov
, "On channel; " MSG
);
1233 is_client_sendq_empty(local_chan_v
, "Not +o; " MSG
);
1234 is_client_sendq_empty(local_chan_p
, "Message source; " MSG
);
1235 is_client_sendq_empty(local_chan_d
, "Deaf; " MSG
);
1236 is_client_sendq_empty(server
, "No users to receive message; " MSG
);
1237 is_client_sendq_empty(server2
, "No users to receive message; " MSG
);
1239 // With CAP_CHW, without CAP_EOPMOD
1240 standard_server_caps(CAP_CHW
, CAP_EOPMOD
);
1242 sendto_channel_opmod(local_chan_p
, local_chan_p
, channel
, "TEST", "Hello World!");
1243 is_client_sendq_empty(user
, "Not on channel; " MSG
);
1244 is_client_sendq(":LChanPeon" TEST_ID_SUFFIX
" TEST @" TEST_CHANNEL
" :Hello World!" CRLF
, local_chan_o
, "On channel; " MSG
);
1245 is_client_sendq(":LChanPeon" TEST_ID_SUFFIX
" TEST @" TEST_CHANNEL
" :Hello World!" CRLF
, local_chan_ov
, "On channel; " MSG
);
1246 is_client_sendq_empty(local_chan_v
, "Not +o; " MSG
);
1247 is_client_sendq_empty(local_chan_p
, "Message source; " MSG
);
1248 is_client_sendq_empty(local_chan_d
, "Deaf; " MSG
);
1249 is_client_sendq(":" TEST_ME_ID
" NOTICE @" TEST_CHANNEL
" :<LChanPeon:" TEST_CHANNEL
"> Hello World!" CRLF
, server
, MSG
);
1250 is_client_sendq_empty(server2
, "No users to receive message; " MSG
);
1252 // Moderated channel
1253 channel
->mode
.mode
|= MODE_MODERATED
;
1255 sendto_channel_opmod(local_chan_p
, local_chan_p
, channel
, "TEST", "Hello World!");
1256 is_client_sendq_empty(user
, "Not on channel; " MSG
);
1257 is_client_sendq(":LChanPeon" TEST_ID_SUFFIX
" TEST @" TEST_CHANNEL
" :Hello World!" CRLF
, local_chan_o
, "On channel; " MSG
);
1258 is_client_sendq(":LChanPeon" TEST_ID_SUFFIX
" TEST @" TEST_CHANNEL
" :Hello World!" CRLF
, local_chan_ov
, "On channel; " MSG
);
1259 is_client_sendq_empty(local_chan_v
, "Not +o; " MSG
);
1260 is_client_sendq_empty(local_chan_p
, "Message source; " MSG
);
1261 is_client_sendq_empty(local_chan_d
, "Deaf; " MSG
);
1262 is_client_sendq(":" TEST_ME_ID
"90004 TEST @" TEST_CHANNEL
" :Hello World!" CRLF
, server
, MSG
);
1263 is_client_sendq_empty(server2
, "No users to receive message; " MSG
);
1265 // With CAP_CHW | CAP_EOPMOD
1266 channel
->mode
.mode
&= ~MODE_MODERATED
;
1267 standard_server_caps(CAP_CHW
| CAP_EOPMOD
, 0);
1269 sendto_channel_opmod(local_chan_p
, local_chan_p
, channel
, "TEST", "Hello World!");
1270 is_client_sendq_empty(user
, "Not on channel; " MSG
);
1271 is_client_sendq(":LChanPeon" TEST_ID_SUFFIX
" TEST @" TEST_CHANNEL
" :Hello World!" CRLF
, local_chan_o
, "On channel; " MSG
);
1272 is_client_sendq(":LChanPeon" TEST_ID_SUFFIX
" TEST @" TEST_CHANNEL
" :Hello World!" CRLF
, local_chan_ov
, "On channel; " MSG
);
1273 is_client_sendq_empty(local_chan_v
, "Not +o; " MSG
);
1274 is_client_sendq_empty(local_chan_p
, "Message source; " MSG
);
1275 is_client_sendq_empty(local_chan_d
, "Deaf; " MSG
);
1276 is_client_sendq(":" TEST_ME_ID
"90004 TEST =" TEST_CHANNEL
" :Hello World!" CRLF
, server
, MSG
);
1277 is_client_sendq_empty(server2
, "No users to receive message; " MSG
);
1279 ConfigChannel
.opmod_send_statusmsg
= false;
1283 static void sendto_channel_opmod__local__tags(void)
1287 strcpy(local_chan_p
->user
->suser
, "test");
1288 local_chan_o
->localClient
->caps
|= CAP_ACCOUNT_TAG
;
1289 local_chan_o
->localClient
->caps
|= CAP_SERVER_TIME
;
1290 local_chan_ov
->localClient
->caps
|= CAP_SERVER_TIME
;
1292 // This function does not support TS5...
1295 // Without CAP_CHW | CAP_EOPMOD
1296 standard_server_caps(0, CAP_CHW
| CAP_EOPMOD
);
1298 sendto_channel_opmod(local_chan_p
, local_chan_p
, channel
, "TEST", "Hello World!");
1299 is_client_sendq_empty(user
, "Not on channel; " MSG
);
1300 is_client_sendq("@time=" ADVENTURE_TIME
";account=test :LChanPeon" TEST_ID_SUFFIX
" TEST " TEST_CHANNEL
" :Hello World!" CRLF
, local_chan_o
, "On channel; " MSG
);
1301 is_client_sendq("@time=" ADVENTURE_TIME
" :LChanPeon" TEST_ID_SUFFIX
" TEST " TEST_CHANNEL
" :Hello World!" CRLF
, local_chan_ov
, "On channel; " MSG
);
1302 is_client_sendq_empty(local_chan_v
, "Not +o; " MSG
);
1303 is_client_sendq_empty(local_chan_p
, "Message source; " MSG
);
1304 is_client_sendq_empty(local_chan_d
, "Deaf; " MSG
);
1305 is_client_sendq_empty(server
, "No users to receive message; " MSG
);
1306 is_client_sendq_empty(server2
, "No users to receive message; " MSG
);
1308 // With CAP_CHW, without CAP_EOPMOD
1309 standard_server_caps(CAP_CHW
, CAP_EOPMOD
);
1311 sendto_channel_opmod(local_chan_p
, local_chan_p
, channel
, "TEST", "Hello World!");
1312 is_client_sendq_empty(user
, "Not on channel; " MSG
);
1313 is_client_sendq("@time=" ADVENTURE_TIME
";account=test :LChanPeon" TEST_ID_SUFFIX
" TEST " TEST_CHANNEL
" :Hello World!" CRLF
, local_chan_o
, "On channel; " MSG
);
1314 is_client_sendq("@time=" ADVENTURE_TIME
" :LChanPeon" TEST_ID_SUFFIX
" TEST " TEST_CHANNEL
" :Hello World!" CRLF
, local_chan_ov
, "On channel; " MSG
);
1315 is_client_sendq_empty(local_chan_v
, "Not +o; " MSG
);
1316 is_client_sendq_empty(local_chan_p
, "Message source; " MSG
);
1317 is_client_sendq_empty(local_chan_d
, "Deaf; " MSG
);
1318 is_client_sendq(":" TEST_ME_ID
" NOTICE @" TEST_CHANNEL
" :<LChanPeon:" TEST_CHANNEL
"> Hello World!" CRLF
, server
, MSG
);
1319 is_client_sendq_empty(server2
, "No users to receive message; " MSG
);
1321 // Moderated channel
1322 channel
->mode
.mode
|= MODE_MODERATED
;
1324 local_chan_o
->localClient
->caps
&= ~CAP_ACCOUNT_TAG
;
1325 local_chan_o
->localClient
->caps
&= ~CAP_SERVER_TIME
;
1326 local_chan_ov
->localClient
->caps
|= CAP_ACCOUNT_TAG
;
1327 local_chan_ov
->localClient
->caps
&= ~CAP_SERVER_TIME
;
1329 sendto_channel_opmod(local_chan_p
, local_chan_p
, channel
, "TEST", "Hello World!");
1330 is_client_sendq_empty(user
, "Not on channel; " MSG
);
1331 is_client_sendq(":LChanPeon" TEST_ID_SUFFIX
" TEST " TEST_CHANNEL
" :Hello World!" CRLF
, local_chan_o
, "On channel; " MSG
);
1332 is_client_sendq("@account=test :LChanPeon" TEST_ID_SUFFIX
" TEST " TEST_CHANNEL
" :Hello World!" CRLF
, local_chan_ov
, "On channel; " MSG
);
1333 is_client_sendq_empty(local_chan_v
, "Not +o; " MSG
);
1334 is_client_sendq_empty(local_chan_p
, "Message source; " MSG
);
1335 is_client_sendq_empty(local_chan_d
, "Deaf; " MSG
);
1336 is_client_sendq(":" TEST_ME_ID
"90004 TEST " TEST_CHANNEL
" :Hello World!" CRLF
, server
, MSG
);
1337 is_client_sendq_empty(server2
, "No users to receive message; " MSG
);
1339 // With CAP_CHW | CAP_EOPMOD
1340 channel
->mode
.mode
&= ~MODE_MODERATED
;
1341 standard_server_caps(CAP_CHW
| CAP_EOPMOD
, 0);
1343 sendto_channel_opmod(local_chan_p
, local_chan_p
, channel
, "TEST", "Hello World!");
1344 is_client_sendq_empty(user
, "Not on channel; " MSG
);
1345 is_client_sendq(":LChanPeon" TEST_ID_SUFFIX
" TEST " TEST_CHANNEL
" :Hello World!" CRLF
, local_chan_o
, "On channel; " MSG
);
1346 is_client_sendq("@account=test :LChanPeon" TEST_ID_SUFFIX
" TEST " TEST_CHANNEL
" :Hello World!" CRLF
, local_chan_ov
, "On channel; " MSG
);
1347 is_client_sendq_empty(local_chan_v
, "Not +o; " MSG
);
1348 is_client_sendq_empty(local_chan_p
, "Message source; " MSG
);
1349 is_client_sendq_empty(local_chan_d
, "Deaf; " MSG
);
1350 is_client_sendq(":" TEST_ME_ID
"90004 TEST =" TEST_CHANNEL
" :Hello World!" CRLF
, server
, MSG
);
1351 is_client_sendq_empty(server2
, "No users to receive message; " MSG
);
1356 static void sendto_channel_opmod__remote(void)
1360 // This function does not support TS5...
1363 // Without CAP_CHW | CAP_EOPMOD
1364 standard_server_caps(0, CAP_CHW
| CAP_EOPMOD
);
1366 sendto_channel_opmod(server2
, remote2_chan_d
, channel
, "TEST", "Hello World!");
1367 is_client_sendq(":R2ChanDeaf" TEST_ID_SUFFIX
" TEST " TEST_CHANNEL
" :Hello World!" CRLF
, local_chan_o
, "On channel; " MSG
);
1368 is_client_sendq(":R2ChanDeaf" TEST_ID_SUFFIX
" TEST " TEST_CHANNEL
" :Hello World!" CRLF
, local_chan_ov
, "On channel; " MSG
);
1369 is_client_sendq_empty(local_chan_v
, "Not +o; " MSG
);
1370 is_client_sendq_empty(local_chan_d
, "Deaf; " MSG
);
1371 is_client_sendq_empty(server
, "Message source; " MSG
);
1372 is_client_sendq_empty(server2
, "No users to receive message; " MSG
);
1374 // With CAP_CHW, without CAP_EOPMOD
1375 standard_server_caps(CAP_CHW
, CAP_EOPMOD
);
1377 sendto_channel_opmod(server2
, remote2_chan_d
, channel
, "TEST", "Hello World!");
1378 is_client_sendq(":R2ChanDeaf" TEST_ID_SUFFIX
" TEST " TEST_CHANNEL
" :Hello World!" CRLF
, local_chan_o
, "On channel; " MSG
);
1379 is_client_sendq(":R2ChanDeaf" TEST_ID_SUFFIX
" TEST " TEST_CHANNEL
" :Hello World!" CRLF
, local_chan_ov
, "On channel; " MSG
);
1380 is_client_sendq_empty(local_chan_v
, "Not +o; " MSG
);
1381 is_client_sendq_empty(local_chan_d
, "Deaf; " MSG
);
1382 is_client_sendq(":" TEST_SERVER2_ID
" NOTICE @" TEST_CHANNEL
" :<R2ChanDeaf:" TEST_CHANNEL
"> Hello World!" CRLF
, server
, MSG
);
1383 is_client_sendq_empty(server2
, "Message source; " MSG
);
1385 // Moderated channel
1386 channel
->mode
.mode
|= MODE_MODERATED
;
1388 sendto_channel_opmod(server2
, remote2_chan_d
, channel
, "TEST", "Hello World!");
1389 is_client_sendq(":R2ChanDeaf" TEST_ID_SUFFIX
" TEST " TEST_CHANNEL
" :Hello World!" CRLF
, local_chan_o
, "On channel; " MSG
);
1390 is_client_sendq(":R2ChanDeaf" TEST_ID_SUFFIX
" TEST " TEST_CHANNEL
" :Hello World!" CRLF
, local_chan_ov
, "On channel; " MSG
);
1391 is_client_sendq_empty(local_chan_v
, "Not +o; " MSG
);
1392 is_client_sendq_empty(local_chan_d
, "Deaf; " MSG
);
1393 is_client_sendq(":" TEST_SERVER2_ID
"90205 TEST " TEST_CHANNEL
" :Hello World!" CRLF
, server
, MSG
);
1394 is_client_sendq_empty(server2
, "Message source; " MSG
);
1396 // With CAP_CHW | CAP_EOPMOD
1397 channel
->mode
.mode
&= ~MODE_MODERATED
;
1398 standard_server_caps(CAP_CHW
| CAP_EOPMOD
, 0);
1400 sendto_channel_opmod(server2
, remote2_chan_d
, channel
, "TEST", "Hello World!");
1401 is_client_sendq(":R2ChanDeaf" TEST_ID_SUFFIX
" TEST " TEST_CHANNEL
" :Hello World!" CRLF
, local_chan_o
, "On channel; " MSG
);
1402 is_client_sendq(":R2ChanDeaf" TEST_ID_SUFFIX
" TEST " TEST_CHANNEL
" :Hello World!" CRLF
, local_chan_ov
, "On channel; " MSG
);
1403 is_client_sendq_empty(local_chan_v
, "Not +o; " MSG
);
1404 is_client_sendq_empty(local_chan_d
, "Deaf; " MSG
);
1405 is_client_sendq(":" TEST_SERVER2_ID
"90205 TEST =" TEST_CHANNEL
" :Hello World!" CRLF
, server
, MSG
);
1406 is_client_sendq_empty(server2
, "Message source; " MSG
);
1411 static void sendto_channel_opmod_statusmsg__remote(void)
1414 ConfigChannel
.opmod_send_statusmsg
= true;
1416 // This function does not support TS5...
1419 // Without CAP_CHW | CAP_EOPMOD
1420 standard_server_caps(0, CAP_CHW
| CAP_EOPMOD
);
1422 sendto_channel_opmod(server2
, remote2_chan_d
, channel
, "TEST", "Hello World!");
1423 is_client_sendq(":R2ChanDeaf" TEST_ID_SUFFIX
" TEST @" TEST_CHANNEL
" :Hello World!" CRLF
, local_chan_o
, "On channel; " MSG
);
1424 is_client_sendq(":R2ChanDeaf" TEST_ID_SUFFIX
" TEST @" TEST_CHANNEL
" :Hello World!" CRLF
, local_chan_ov
, "On channel; " MSG
);
1425 is_client_sendq_empty(local_chan_v
, "Not +o; " MSG
);
1426 is_client_sendq_empty(local_chan_d
, "Deaf; " MSG
);
1427 is_client_sendq_empty(server
, "Message source; " MSG
);
1428 is_client_sendq_empty(server2
, "No users to receive message; " MSG
);
1430 // With CAP_CHW, without CAP_EOPMOD
1431 standard_server_caps(CAP_CHW
, CAP_EOPMOD
);
1433 sendto_channel_opmod(server2
, remote2_chan_d
, channel
, "TEST", "Hello World!");
1434 is_client_sendq(":R2ChanDeaf" TEST_ID_SUFFIX
" TEST @" TEST_CHANNEL
" :Hello World!" CRLF
, local_chan_o
, "On channel; " MSG
);
1435 is_client_sendq(":R2ChanDeaf" TEST_ID_SUFFIX
" TEST @" TEST_CHANNEL
" :Hello World!" CRLF
, local_chan_ov
, "On channel; " MSG
);
1436 is_client_sendq_empty(local_chan_v
, "Not +o; " MSG
);
1437 is_client_sendq_empty(local_chan_d
, "Deaf; " MSG
);
1438 is_client_sendq(":" TEST_SERVER2_ID
" NOTICE @" TEST_CHANNEL
" :<R2ChanDeaf:" TEST_CHANNEL
"> Hello World!" CRLF
, server
, MSG
);
1439 is_client_sendq_empty(server2
, "Message source; " MSG
);
1441 // Moderated channel
1442 channel
->mode
.mode
|= MODE_MODERATED
;
1444 sendto_channel_opmod(server2
, remote2_chan_d
, channel
, "TEST", "Hello World!");
1445 is_client_sendq(":R2ChanDeaf" TEST_ID_SUFFIX
" TEST @" TEST_CHANNEL
" :Hello World!" CRLF
, local_chan_o
, "On channel; " MSG
);
1446 is_client_sendq(":R2ChanDeaf" TEST_ID_SUFFIX
" TEST @" TEST_CHANNEL
" :Hello World!" CRLF
, local_chan_ov
, "On channel; " MSG
);
1447 is_client_sendq_empty(local_chan_v
, "Not +o; " MSG
);
1448 is_client_sendq_empty(local_chan_d
, "Deaf; " MSG
);
1449 is_client_sendq(":" TEST_SERVER2_ID
"90205 TEST @" TEST_CHANNEL
" :Hello World!" CRLF
, server
, MSG
);
1450 is_client_sendq_empty(server2
, "Message source; " MSG
);
1452 // With CAP_CHW | CAP_EOPMOD
1453 channel
->mode
.mode
&= ~MODE_MODERATED
;
1454 standard_server_caps(CAP_CHW
| CAP_EOPMOD
, 0);
1456 sendto_channel_opmod(server2
, remote2_chan_d
, channel
, "TEST", "Hello World!");
1457 is_client_sendq(":R2ChanDeaf" TEST_ID_SUFFIX
" TEST @" TEST_CHANNEL
" :Hello World!" CRLF
, local_chan_o
, "On channel; " MSG
);
1458 is_client_sendq(":R2ChanDeaf" TEST_ID_SUFFIX
" TEST @" TEST_CHANNEL
" :Hello World!" CRLF
, local_chan_ov
, "On channel; " MSG
);
1459 is_client_sendq_empty(local_chan_v
, "Not +o; " MSG
);
1460 is_client_sendq_empty(local_chan_d
, "Deaf; " MSG
);
1461 is_client_sendq(":" TEST_SERVER2_ID
"90205 TEST =" TEST_CHANNEL
" :Hello World!" CRLF
, server
, MSG
);
1462 is_client_sendq_empty(server2
, "Message source; " MSG
);
1464 ConfigChannel
.opmod_send_statusmsg
= false;
1468 static void sendto_channel_opmod__remote__tags(void)
1472 strcpy(remote2_chan_d
->user
->suser
, "test");
1473 local_chan_o
->localClient
->caps
|= CAP_ACCOUNT_TAG
;
1474 local_chan_o
->localClient
->caps
|= CAP_SERVER_TIME
;
1475 local_chan_ov
->localClient
->caps
|= CAP_SERVER_TIME
;
1477 // This function does not support TS5...
1480 // Without CAP_CHW | CAP_EOPMOD
1481 standard_server_caps(0, CAP_CHW
| CAP_EOPMOD
);
1483 sendto_channel_opmod(server2
, remote2_chan_d
, channel
, "TEST", "Hello World!");
1484 is_client_sendq("@time=" ADVENTURE_TIME
";account=test :R2ChanDeaf" TEST_ID_SUFFIX
" TEST " TEST_CHANNEL
" :Hello World!" CRLF
, local_chan_o
, "On channel; " MSG
);
1485 is_client_sendq("@time=" ADVENTURE_TIME
" :R2ChanDeaf" TEST_ID_SUFFIX
" TEST " TEST_CHANNEL
" :Hello World!" CRLF
, local_chan_ov
, "On channel; " MSG
);
1486 is_client_sendq_empty(local_chan_v
, "Not +o; " MSG
);
1487 is_client_sendq_empty(local_chan_d
, "Deaf; " MSG
);
1488 is_client_sendq_empty(server
, "Message source; " MSG
);
1489 is_client_sendq_empty(server2
, "No users to receive message; " MSG
);
1491 // With CAP_CHW, without CAP_EOPMOD
1492 standard_server_caps(CAP_CHW
, CAP_EOPMOD
);
1494 sendto_channel_opmod(server2
, remote2_chan_d
, channel
, "TEST", "Hello World!");
1495 is_client_sendq("@time=" ADVENTURE_TIME
";account=test :R2ChanDeaf" TEST_ID_SUFFIX
" TEST " TEST_CHANNEL
" :Hello World!" CRLF
, local_chan_o
, "On channel; " MSG
);
1496 is_client_sendq("@time=" ADVENTURE_TIME
" :R2ChanDeaf" TEST_ID_SUFFIX
" TEST " TEST_CHANNEL
" :Hello World!" CRLF
, local_chan_ov
, "On channel; " MSG
);
1497 is_client_sendq_empty(local_chan_v
, "Not +o; " MSG
);
1498 is_client_sendq_empty(local_chan_d
, "Deaf; " MSG
);
1499 is_client_sendq(":" TEST_SERVER2_ID
" NOTICE @" TEST_CHANNEL
" :<R2ChanDeaf:" TEST_CHANNEL
"> Hello World!" CRLF
, server
, MSG
);
1500 is_client_sendq_empty(server2
, "Message source; " MSG
);
1502 // Moderated channel
1503 channel
->mode
.mode
|= MODE_MODERATED
;
1505 local_chan_o
->localClient
->caps
&= ~CAP_ACCOUNT_TAG
;
1506 local_chan_o
->localClient
->caps
&= ~CAP_SERVER_TIME
;
1507 local_chan_ov
->localClient
->caps
|= CAP_ACCOUNT_TAG
;
1508 local_chan_ov
->localClient
->caps
&= ~CAP_SERVER_TIME
;
1510 sendto_channel_opmod(server2
, remote2_chan_d
, channel
, "TEST", "Hello World!");
1511 is_client_sendq(":R2ChanDeaf" TEST_ID_SUFFIX
" TEST " TEST_CHANNEL
" :Hello World!" CRLF
, local_chan_o
, "On channel; " MSG
);
1512 is_client_sendq("@account=test :R2ChanDeaf" TEST_ID_SUFFIX
" TEST " TEST_CHANNEL
" :Hello World!" CRLF
, local_chan_ov
, "On channel; " MSG
);
1513 is_client_sendq_empty(local_chan_v
, "Not +o; " MSG
);
1514 is_client_sendq_empty(local_chan_d
, "Deaf; " MSG
);
1515 is_client_sendq(":" TEST_SERVER2_ID
"90205 TEST " TEST_CHANNEL
" :Hello World!" CRLF
, server
, MSG
);
1516 is_client_sendq_empty(server2
, "Message source; " MSG
);
1518 // With CAP_CHW | CAP_EOPMOD
1519 channel
->mode
.mode
&= ~MODE_MODERATED
;
1520 standard_server_caps(CAP_CHW
| CAP_EOPMOD
, 0);
1522 sendto_channel_opmod(server2
, remote2_chan_d
, channel
, "TEST", "Hello World!");
1523 is_client_sendq(":R2ChanDeaf" TEST_ID_SUFFIX
" TEST " TEST_CHANNEL
" :Hello World!" CRLF
, local_chan_o
, "On channel; " MSG
);
1524 is_client_sendq("@account=test :R2ChanDeaf" TEST_ID_SUFFIX
" TEST " TEST_CHANNEL
" :Hello World!" CRLF
, local_chan_ov
, "On channel; " MSG
);
1525 is_client_sendq_empty(local_chan_v
, "Not +o; " MSG
);
1526 is_client_sendq_empty(local_chan_d
, "Deaf; " MSG
);
1527 is_client_sendq(":" TEST_SERVER2_ID
"90205 TEST =" TEST_CHANNEL
" :Hello World!" CRLF
, server
, MSG
);
1528 is_client_sendq_empty(server2
, "Message source; " MSG
);
1533 static void sendto_channel_local1(void)
1537 sendto_channel_local(user
, ALL_MEMBERS
, channel
, "Hello %s!", "World");
1538 is_client_sendq_empty(user
, "Not on channel; " MSG
);
1539 is_client_sendq("Hello World!" CRLF
, local_chan_o
, "On channel; " MSG
);
1540 is_client_sendq("Hello World!" CRLF
, local_chan_ov
, "On channel; " MSG
);
1541 is_client_sendq("Hello World!" CRLF
, local_chan_v
, "On channel; " MSG
);
1542 is_client_sendq("Hello World!" CRLF
, local_chan_p
, "On channel; " MSG
);
1543 is_client_sendq("Hello World!" CRLF
, local_chan_d
, "On channel; " MSG
);
1544 is_client_sendq_empty(server
, MSG
);
1545 is_client_sendq_empty(server2
, MSG
);
1547 sendto_channel_local(user
, CHFL_VOICE
, channel
, "Hello %s!", "World");
1548 is_client_sendq_empty(user
, "Not on channel; " MSG
);
1549 is_client_sendq_empty(local_chan_o
, "Not +v; " MSG
);
1550 is_client_sendq("Hello World!" CRLF
, local_chan_ov
, "Has +v; " MSG
);
1551 is_client_sendq("Hello World!" CRLF
, local_chan_v
, "Has +v; " MSG
);
1552 is_client_sendq_empty(local_chan_p
, "Not +v; " MSG
);
1553 is_client_sendq("Hello World!" CRLF
, local_chan_d
, "Has +v; " MSG
);
1554 is_client_sendq_empty(server
, MSG
);
1555 is_client_sendq_empty(server2
, MSG
);
1557 sendto_channel_local(user
, CHFL_CHANOP
, channel
, "Hello %s!", "World");
1558 is_client_sendq_empty(user
, "Not on channel; " MSG
);
1559 is_client_sendq("Hello World!" CRLF
, local_chan_o
, "Has +o; " MSG
);
1560 is_client_sendq("Hello World!" CRLF
, local_chan_ov
, "Has +o; " MSG
);
1561 is_client_sendq_empty(local_chan_v
, "Not +o; " MSG
);
1562 is_client_sendq_empty(local_chan_p
, "Not +o; " MSG
);
1563 is_client_sendq("Hello World!" CRLF
, local_chan_d
, "Has +o; " MSG
);
1564 is_client_sendq_empty(server
, MSG
);
1565 is_client_sendq_empty(server2
, MSG
);
1567 sendto_channel_local(user
, CHFL_CHANOP
| CHFL_VOICE
, channel
, "Hello %s!", "World");
1568 is_client_sendq_empty(user
, "Not on channel; " MSG
);
1569 is_client_sendq("Hello World!" CRLF
, local_chan_o
, "Has +o/+v; " MSG
);
1570 is_client_sendq("Hello World!" CRLF
, local_chan_ov
, "Has +o/+v; " MSG
);
1571 is_client_sendq("Hello World!" CRLF
, local_chan_v
, "Has +o/+v; " MSG
);
1572 is_client_sendq_empty(local_chan_p
, "Not +o/+v; " MSG
);
1573 is_client_sendq("Hello World!" CRLF
, local_chan_d
, "Has +o/+v; " MSG
);
1574 is_client_sendq_empty(server
, MSG
);
1575 is_client_sendq_empty(server2
, MSG
);
1577 sendto_channel_local(user
, ONLY_OPERS
, channel
, "Hello %s!", "World");
1578 is_client_sendq_empty(user
, "Not an oper; " MSG
);
1579 is_client_sendq_empty(local_chan_o
, "Not an oper; " MSG
);
1580 is_client_sendq_empty(local_chan_ov
, "Not an oper; " MSG
);
1581 is_client_sendq_empty(local_chan_v
, "Not an oper; " MSG
);
1582 is_client_sendq_empty(local_chan_p
, "Not an oper; " MSG
);
1583 is_client_sendq_empty(local_chan_d
, "Not an oper; " MSG
);
1584 is_client_sendq_empty(server
, MSG
);
1585 is_client_sendq_empty(server2
, MSG
);
1587 struct Client
*oper1
= make_local_person_nick("oper1");
1588 struct Client
*oper2
= make_local_person_nick("oper2");
1590 make_local_person_oper(oper1
);
1591 make_local_person_oper(oper2
);
1593 oper2
->umodes
|= UMODE_ADMIN
;
1595 add_user_to_channel(lchannel
, oper1
, CHFL_PEON
);
1596 add_user_to_channel(lchannel
, oper2
, CHFL_PEON
);
1598 sendto_channel_local(user
, ALL_MEMBERS
, lchannel
, "Hello %s!", "World");
1599 is_client_sendq("Hello World!" CRLF
, user
, "On channel; " MSG
);
1600 is_client_sendq("Hello World!" CRLF
, oper1
, "On channel; " MSG
);
1601 is_client_sendq("Hello World!" CRLF
, oper2
, "On channel; " MSG
);
1602 is_client_sendq_empty(server
, MSG
);
1603 is_client_sendq_empty(server2
, MSG
);
1604 is_client_sendq_empty(server3
, MSG
);
1606 sendto_channel_local(user
, ONLY_OPERS
, lchannel
, "Hello %s!", "World");
1607 is_client_sendq_empty(user
, "Not an oper; " MSG
);
1608 is_client_sendq("Hello World!" CRLF
, oper1
, "Is an oper; " MSG
);
1609 is_client_sendq("Hello World!" CRLF
, oper2
, "Is an oper; " MSG
);
1610 is_client_sendq_empty(server
, MSG
);
1611 is_client_sendq_empty(server2
, MSG
);
1612 is_client_sendq_empty(server3
, MSG
);
1617 static void sendto_channel_local1__tags(void)
1621 strcpy(user
->user
->suser
, "test");
1622 local_chan_o
->localClient
->caps
|= CAP_ACCOUNT_TAG
;
1623 local_chan_o
->localClient
->caps
|= CAP_SERVER_TIME
;
1624 local_chan_ov
->localClient
->caps
|= CAP_SERVER_TIME
;
1625 local_chan_v
->localClient
->caps
|= CAP_ACCOUNT_TAG
;
1627 sendto_channel_local(user
, ALL_MEMBERS
, channel
, "Hello %s!", "World");
1628 is_client_sendq_empty(user
, "Not on channel; " MSG
);
1629 is_client_sendq("@time=" ADVENTURE_TIME
";account=test Hello World!" CRLF
, local_chan_o
, "On channel; " MSG
);
1630 is_client_sendq("@time=" ADVENTURE_TIME
" Hello World!" CRLF
, local_chan_ov
, "On channel; " MSG
);
1631 is_client_sendq("@account=test Hello World!" CRLF
, local_chan_v
, "On channel; " MSG
);
1632 is_client_sendq("Hello World!" CRLF
, local_chan_p
, "On channel; " MSG
);
1633 is_client_sendq("Hello World!" CRLF
, local_chan_d
, "On channel; " MSG
);
1634 is_client_sendq_empty(server
, MSG
);
1635 is_client_sendq_empty(server2
, MSG
);
1637 sendto_channel_local(user
, CHFL_VOICE
, channel
, "Hello %s!", "World");
1638 is_client_sendq_empty(user
, "Not on channel; " MSG
);
1639 is_client_sendq_empty(local_chan_o
, "Not +v; " MSG
);
1640 is_client_sendq("@time=" ADVENTURE_TIME
" Hello World!" CRLF
, local_chan_ov
, "Has +v; " MSG
);
1641 is_client_sendq("@account=test Hello World!" CRLF
, local_chan_v
, "Has +v; " MSG
);
1642 is_client_sendq_empty(local_chan_p
, "Not +v; " MSG
);
1643 is_client_sendq("Hello World!" CRLF
, local_chan_d
, "Has +v; " MSG
);
1644 is_client_sendq_empty(server
, MSG
);
1645 is_client_sendq_empty(server2
, MSG
);
1647 sendto_channel_local(user
, CHFL_CHANOP
, channel
, "Hello %s!", "World");
1648 is_client_sendq_empty(user
, "Not on channel; " MSG
);
1649 is_client_sendq("@time=" ADVENTURE_TIME
";account=test Hello World!" CRLF
, local_chan_o
, "Has +o; " MSG
);
1650 is_client_sendq("@time=" ADVENTURE_TIME
" Hello World!" CRLF
, local_chan_ov
, "Has +o; " MSG
);
1651 is_client_sendq_empty(local_chan_v
, "Not +o; " MSG
);
1652 is_client_sendq_empty(local_chan_p
, "Not +o; " MSG
);
1653 is_client_sendq("Hello World!" CRLF
, local_chan_d
, "Has +o; " MSG
);
1654 is_client_sendq_empty(server
, MSG
);
1655 is_client_sendq_empty(server2
, MSG
);
1657 sendto_channel_local(user
, CHFL_CHANOP
| CHFL_VOICE
, channel
, "Hello %s!", "World");
1658 is_client_sendq_empty(user
, "Not on channel; " MSG
);
1659 is_client_sendq("@time=" ADVENTURE_TIME
";account=test Hello World!" CRLF
, local_chan_o
, "Has +o/+v; " MSG
);
1660 is_client_sendq("@time=" ADVENTURE_TIME
" Hello World!" CRLF
, local_chan_ov
, "Has +o/+v; " MSG
);
1661 is_client_sendq("@account=test Hello World!" CRLF
, local_chan_v
, "Has +o/+v; " MSG
);
1662 is_client_sendq_empty(local_chan_p
, "Not +o/+v; " MSG
);
1663 is_client_sendq("Hello World!" CRLF
, local_chan_d
, "Has +o/+v; " MSG
);
1664 is_client_sendq_empty(server
, MSG
);
1665 is_client_sendq_empty(server2
, MSG
);
1667 sendto_channel_local(user
, ONLY_OPERS
, channel
, "Hello %s!", "World");
1668 is_client_sendq_empty(user
, "Not an oper; " MSG
);
1669 is_client_sendq_empty(local_chan_o
, "Not an oper; " MSG
);
1670 is_client_sendq_empty(local_chan_ov
, "Not an oper; " MSG
);
1671 is_client_sendq_empty(local_chan_v
, "Not an oper; " MSG
);
1672 is_client_sendq_empty(local_chan_p
, "Not an oper; " MSG
);
1673 is_client_sendq_empty(local_chan_d
, "Not an oper; " MSG
);
1674 is_client_sendq_empty(server
, MSG
);
1675 is_client_sendq_empty(server2
, MSG
);
1677 struct Client
*oper1
= make_local_person_nick("oper1");
1678 struct Client
*oper2
= make_local_person_nick("oper2");
1680 make_local_person_oper(oper1
);
1681 make_local_person_oper(oper2
);
1683 oper2
->umodes
|= UMODE_ADMIN
;
1685 add_user_to_channel(lchannel
, oper1
, CHFL_PEON
);
1686 add_user_to_channel(lchannel
, oper2
, CHFL_PEON
);
1688 oper1
->localClient
->caps
|= CAP_ACCOUNT_TAG
;
1689 oper2
->localClient
->caps
|= CAP_SERVER_TIME
;
1691 sendto_channel_local(user
, ALL_MEMBERS
, lchannel
, "Hello %s!", "World");
1692 is_client_sendq("Hello World!" CRLF
, user
, "On channel; " MSG
);
1693 is_client_sendq("@account=test Hello World!" CRLF
, oper1
, "On channel; " MSG
);
1694 is_client_sendq("@time=" ADVENTURE_TIME
" Hello World!" CRLF
, oper2
, "On channel; " MSG
);
1695 is_client_sendq_empty(server
, MSG
);
1696 is_client_sendq_empty(server2
, MSG
);
1697 is_client_sendq_empty(server3
, MSG
);
1699 sendto_channel_local(user
, ONLY_OPERS
, lchannel
, "Hello %s!", "World");
1700 is_client_sendq_empty(user
, "Not an oper; " MSG
);
1701 is_client_sendq("@account=test Hello World!" CRLF
, oper1
, "Is an oper; " MSG
);
1702 is_client_sendq("@time=" ADVENTURE_TIME
" Hello World!" CRLF
, oper2
, "Is an oper; " MSG
);
1703 is_client_sendq_empty(server
, MSG
);
1704 is_client_sendq_empty(server2
, MSG
);
1705 is_client_sendq_empty(server3
, MSG
);
1707 oper1
->localClient
->caps
&= ~CAP_ACCOUNT_TAG
;
1708 oper2
->localClient
->caps
|= CAP_ACCOUNT_TAG
;
1710 sendto_channel_local(user
, ALL_MEMBERS
, lchannel
, "Hello %s!", "World");
1711 is_client_sendq("Hello World!" CRLF
, user
, "On channel; " MSG
);
1712 is_client_sendq("Hello World!" CRLF
, oper1
, "On channel; " MSG
);
1713 is_client_sendq("@time=" ADVENTURE_TIME
";account=test Hello World!" CRLF
, oper2
, "On channel; " MSG
);
1714 is_client_sendq_empty(server
, MSG
);
1715 is_client_sendq_empty(server2
, MSG
);
1716 is_client_sendq_empty(server3
, MSG
);
1718 sendto_channel_local(user
, ONLY_OPERS
, lchannel
, "Hello %s!", "World");
1719 is_client_sendq_empty(user
, "Not an oper; " MSG
);
1720 is_client_sendq("Hello World!" CRLF
, oper1
, "Is an oper; " MSG
);
1721 is_client_sendq("@time=" ADVENTURE_TIME
";account=test Hello World!" CRLF
, oper2
, "Is an oper; " MSG
);
1722 is_client_sendq_empty(server
, MSG
);
1723 is_client_sendq_empty(server2
, MSG
);
1724 is_client_sendq_empty(server3
, MSG
);
1729 static void sendto_channel_local_with_capability1(void)
1733 local_chan_o
->localClient
->caps
|= CAP_MULTI_PREFIX
;
1734 local_chan_v
->localClient
->caps
|= CAP_MULTI_PREFIX
;
1736 sendto_channel_local_with_capability(user
, ALL_MEMBERS
, CAP_MULTI_PREFIX
, 0, channel
, "Hello %s!", "World");
1737 is_client_sendq_empty(user
, "Not on channel; " MSG
);
1738 is_client_sendq("Hello World!" CRLF
, local_chan_o
, "On channel; " MSG
);
1739 is_client_sendq_empty(local_chan_ov
, "Doesn't have cap; " MSG
);
1740 is_client_sendq("Hello World!" CRLF
, local_chan_v
, "On channel; " MSG
);
1741 is_client_sendq_empty(local_chan_p
, "Doesn't have cap; " MSG
);
1742 is_client_sendq_empty(local_chan_d
, "Doesn't have cap; " MSG
);
1743 is_client_sendq_empty(server
, MSG
);
1744 is_client_sendq_empty(server2
, MSG
);
1746 sendto_channel_local_with_capability(user
, ALL_MEMBERS
, 0, CAP_MULTI_PREFIX
, channel
, "Hello %s!", "World");
1747 is_client_sendq_empty(user
, "Not on channel; " MSG
);
1748 is_client_sendq_empty(local_chan_o
, "Has cap; " MSG
);
1749 is_client_sendq("Hello World!" CRLF
, local_chan_ov
, "On channel; " MSG
);
1750 is_client_sendq_empty(local_chan_v
, "Has cap; " MSG
);
1751 is_client_sendq("Hello World!" CRLF
, local_chan_p
, "On channel; " MSG
);
1752 is_client_sendq("Hello World!" CRLF
, local_chan_d
, "On channel; " MSG
);
1753 is_client_sendq_empty(server
, MSG
);
1754 is_client_sendq_empty(server2
, MSG
);
1756 sendto_channel_local_with_capability(user
, ALL_MEMBERS
, 0, 0, channel
, "Hello %s!", "World");
1757 is_client_sendq_empty(user
, "Not on channel; " MSG
);
1758 is_client_sendq("Hello World!" CRLF
, local_chan_o
, "On channel; " MSG
);
1759 is_client_sendq("Hello World!" CRLF
, local_chan_ov
, "On channel; " MSG
);
1760 is_client_sendq("Hello World!" CRLF
, local_chan_v
, "On channel; " MSG
);
1761 is_client_sendq("Hello World!" CRLF
, local_chan_p
, "On channel; " MSG
);
1762 is_client_sendq("Hello World!" CRLF
, local_chan_d
, "On channel; " MSG
);
1763 is_client_sendq_empty(server
, MSG
);
1764 is_client_sendq_empty(server2
, MSG
);
1766 sendto_channel_local_with_capability(user
, CHFL_VOICE
, CAP_MULTI_PREFIX
, 0, channel
, "Hello %s!", "World");
1767 is_client_sendq_empty(user
, "Not on channel; " MSG
);
1768 is_client_sendq_empty(local_chan_o
, "Not +v; " MSG
);
1769 is_client_sendq_empty(local_chan_ov
, "Doesn't have cap; " MSG
);
1770 is_client_sendq("Hello World!" CRLF
, local_chan_v
, "Has +v; " MSG
);
1771 is_client_sendq_empty(local_chan_p
, "Doesn't have cap; " MSG
);
1772 is_client_sendq_empty(local_chan_d
, "Doesn't have cap; " MSG
);
1773 is_client_sendq_empty(server
, MSG
);
1774 is_client_sendq_empty(server2
, MSG
);
1776 sendto_channel_local_with_capability(user
, CHFL_VOICE
, 0, CAP_MULTI_PREFIX
, channel
, "Hello %s!", "World");
1777 is_client_sendq_empty(user
, "Not on channel; " MSG
);
1778 is_client_sendq_empty(local_chan_o
, "Not +v; " MSG
);
1779 is_client_sendq("Hello World!" CRLF
, local_chan_ov
, "Has +v; " MSG
);
1780 is_client_sendq_empty(local_chan_v
, "Has cap; " MSG
);
1781 is_client_sendq_empty(local_chan_p
, "Not +v; " MSG
);
1782 is_client_sendq("Hello World!" CRLF
, local_chan_d
, "Has +v; " MSG
);
1783 is_client_sendq_empty(server
, MSG
);
1784 is_client_sendq_empty(server2
, MSG
);
1786 sendto_channel_local_with_capability(user
, CHFL_VOICE
, 0, 0, channel
, "Hello %s!", "World");
1787 is_client_sendq_empty(user
, "Not on channel; " MSG
);
1788 is_client_sendq_empty(local_chan_o
, "Not +v; " MSG
);
1789 is_client_sendq("Hello World!" CRLF
, local_chan_ov
, "Has +v; " MSG
);
1790 is_client_sendq("Hello World!" CRLF
, local_chan_v
, "Has +v; " MSG
);
1791 is_client_sendq_empty(local_chan_p
, "Not +v; " MSG
);
1792 is_client_sendq("Hello World!" CRLF
, local_chan_d
, "Has +v; " MSG
);
1793 is_client_sendq_empty(server
, MSG
);
1794 is_client_sendq_empty(server2
, MSG
);
1796 sendto_channel_local_with_capability(user
, CHFL_CHANOP
, CAP_MULTI_PREFIX
, 0, channel
, "Hello %s!", "World");
1797 is_client_sendq_empty(user
, "Not on channel; " MSG
);
1798 is_client_sendq("Hello World!" CRLF
, local_chan_o
, "Has +o; " MSG
);
1799 is_client_sendq_empty(local_chan_ov
, "Doesn't have cap; " MSG
);
1800 is_client_sendq_empty(local_chan_v
, "Not +o; " MSG
);
1801 is_client_sendq_empty(local_chan_p
, "Not +o; " MSG
);
1802 is_client_sendq_empty(local_chan_d
, "Doesn't have cap; " MSG
);
1803 is_client_sendq_empty(server
, MSG
);
1804 is_client_sendq_empty(server2
, MSG
);
1806 sendto_channel_local_with_capability(user
, CHFL_CHANOP
, 0, CAP_MULTI_PREFIX
, channel
, "Hello %s!", "World");
1807 is_client_sendq_empty(user
, "Not on channel; " MSG
);
1808 is_client_sendq_empty(local_chan_o
, "Has cap; " MSG
);
1809 is_client_sendq("Hello World!" CRLF
, local_chan_ov
, "Has +o; " MSG
);
1810 is_client_sendq_empty(local_chan_v
, "Not +o; " MSG
);
1811 is_client_sendq_empty(local_chan_p
, "Not +o; " MSG
);
1812 is_client_sendq("Hello World!" CRLF
, local_chan_d
, "Has +o; " MSG
);
1813 is_client_sendq_empty(server
, MSG
);
1814 is_client_sendq_empty(server2
, MSG
);
1816 sendto_channel_local_with_capability(user
, CHFL_CHANOP
, 0, 0, channel
, "Hello %s!", "World");
1817 is_client_sendq_empty(user
, "Not on channel; " MSG
);
1818 is_client_sendq("Hello World!" CRLF
, local_chan_o
, "Has +o; " MSG
);
1819 is_client_sendq("Hello World!" CRLF
, local_chan_ov
, "Has +o; " MSG
);
1820 is_client_sendq_empty(local_chan_v
, "Not +o; " MSG
);
1821 is_client_sendq_empty(local_chan_p
, "Not +o; " MSG
);
1822 is_client_sendq("Hello World!" CRLF
, local_chan_d
, "Has +o; " MSG
);
1823 is_client_sendq_empty(server
, MSG
);
1824 is_client_sendq_empty(server2
, MSG
);
1826 sendto_channel_local_with_capability(user
, CHFL_CHANOP
| CHFL_VOICE
, CAP_MULTI_PREFIX
, 0, channel
, "Hello %s!", "World");
1827 is_client_sendq_empty(user
, "Not on channel; " MSG
);
1828 is_client_sendq("Hello World!" CRLF
, local_chan_o
, "Has +o/+v; " MSG
);
1829 is_client_sendq_empty(local_chan_ov
, "Doesn't have cap; " MSG
);
1830 is_client_sendq("Hello World!" CRLF
, local_chan_v
, "Has +o/+v; " MSG
);
1831 is_client_sendq_empty(local_chan_p
, "Not +o/+v; " MSG
);
1832 is_client_sendq_empty(local_chan_d
, "Doesn't have cap; " MSG
);
1833 is_client_sendq_empty(server
, MSG
);
1834 is_client_sendq_empty(server2
, MSG
);
1836 sendto_channel_local_with_capability(user
, CHFL_CHANOP
| CHFL_VOICE
, 0, CAP_MULTI_PREFIX
, channel
, "Hello %s!", "World");
1837 is_client_sendq_empty(user
, "Not on channel; " MSG
);
1838 is_client_sendq_empty(local_chan_o
, "Has cap; " MSG
);
1839 is_client_sendq("Hello World!" CRLF
, local_chan_ov
, "Has +o/+v; " MSG
);
1840 is_client_sendq_empty(local_chan_v
, "Has cap; " MSG
);
1841 is_client_sendq_empty(local_chan_p
, "Not +o/+v; " MSG
);
1842 is_client_sendq("Hello World!" CRLF
, local_chan_d
, "Has +o/+v; " MSG
);
1843 is_client_sendq_empty(server
, MSG
);
1844 is_client_sendq_empty(server2
, MSG
);
1846 sendto_channel_local_with_capability(user
, CHFL_CHANOP
| CHFL_VOICE
, 0, 0, channel
, "Hello %s!", "World");
1847 is_client_sendq_empty(user
, "Not on channel; " MSG
);
1848 is_client_sendq("Hello World!" CRLF
, local_chan_o
, "Has +o/+v; " MSG
);
1849 is_client_sendq("Hello World!" CRLF
, local_chan_ov
, "Has +o/+v; " MSG
);
1850 is_client_sendq("Hello World!" CRLF
, local_chan_v
, "Has +o/+v; " MSG
);
1851 is_client_sendq_empty(local_chan_p
, "Not +o/+v; " MSG
);
1852 is_client_sendq("Hello World!" CRLF
, local_chan_d
, "Has +o/+v; " MSG
);
1853 is_client_sendq_empty(server
, MSG
);
1854 is_client_sendq_empty(server2
, MSG
);
1859 static void sendto_channel_local_with_capability1__tags(void)
1863 local_chan_o
->localClient
->caps
|= CAP_MULTI_PREFIX
;
1864 local_chan_v
->localClient
->caps
|= CAP_MULTI_PREFIX
;
1866 strcpy(user
->user
->suser
, "test");
1867 local_chan_o
->localClient
->caps
|= CAP_ACCOUNT_TAG
;
1868 local_chan_o
->localClient
->caps
|= CAP_SERVER_TIME
;
1869 local_chan_ov
->localClient
->caps
|= CAP_SERVER_TIME
;
1870 local_chan_v
->localClient
->caps
|= CAP_ACCOUNT_TAG
;
1872 sendto_channel_local_with_capability(user
, ALL_MEMBERS
, CAP_MULTI_PREFIX
, 0, channel
, "Hello %s!", "World");
1873 is_client_sendq_empty(user
, "Not on channel; " MSG
);
1874 is_client_sendq("@time=" ADVENTURE_TIME
";account=test Hello World!" CRLF
, local_chan_o
, "On channel; " MSG
);
1875 is_client_sendq_empty(local_chan_ov
, "Doesn't have cap; " MSG
);
1876 is_client_sendq("@account=test Hello World!" CRLF
, local_chan_v
, "On channel; " MSG
);
1877 is_client_sendq_empty(local_chan_p
, "Doesn't have cap; " MSG
);
1878 is_client_sendq_empty(local_chan_d
, "Doesn't have cap; " MSG
);
1879 is_client_sendq_empty(server
, MSG
);
1880 is_client_sendq_empty(server2
, MSG
);
1882 sendto_channel_local_with_capability(user
, ALL_MEMBERS
, 0, CAP_MULTI_PREFIX
, channel
, "Hello %s!", "World");
1883 is_client_sendq_empty(user
, "Not on channel; " MSG
);
1884 is_client_sendq_empty(local_chan_o
, "Has cap; " MSG
);
1885 is_client_sendq("@time=" ADVENTURE_TIME
" Hello World!" CRLF
, local_chan_ov
, "On channel; " MSG
);
1886 is_client_sendq_empty(local_chan_v
, "Has cap; " MSG
);
1887 is_client_sendq("Hello World!" CRLF
, local_chan_p
, "On channel; " MSG
);
1888 is_client_sendq("Hello World!" CRLF
, local_chan_d
, "On channel; " MSG
);
1889 is_client_sendq_empty(server
, MSG
);
1890 is_client_sendq_empty(server2
, MSG
);
1892 sendto_channel_local_with_capability(user
, ALL_MEMBERS
, 0, 0, channel
, "Hello %s!", "World");
1893 is_client_sendq_empty(user
, "Not on channel; " MSG
);
1894 is_client_sendq("@time=" ADVENTURE_TIME
";account=test Hello World!" CRLF
, local_chan_o
, "On channel; " MSG
);
1895 is_client_sendq("@time=" ADVENTURE_TIME
" Hello World!" CRLF
, local_chan_ov
, "On channel; " MSG
);
1896 is_client_sendq("@account=test Hello World!" CRLF
, local_chan_v
, "On channel; " MSG
);
1897 is_client_sendq("Hello World!" CRLF
, local_chan_p
, "On channel; " MSG
);
1898 is_client_sendq("Hello World!" CRLF
, local_chan_d
, "On channel; " MSG
);
1899 is_client_sendq_empty(server
, MSG
);
1900 is_client_sendq_empty(server2
, MSG
);
1902 sendto_channel_local_with_capability(user
, CHFL_VOICE
, CAP_MULTI_PREFIX
, 0, channel
, "Hello %s!", "World");
1903 is_client_sendq_empty(user
, "Not on channel; " MSG
);
1904 is_client_sendq_empty(local_chan_o
, "Not +v; " MSG
);
1905 is_client_sendq_empty(local_chan_ov
, "Doesn't have cap; " MSG
);
1906 is_client_sendq("@account=test Hello World!" CRLF
, local_chan_v
, "Has +v; " MSG
);
1907 is_client_sendq_empty(local_chan_p
, "Doesn't have cap; " MSG
);
1908 is_client_sendq_empty(local_chan_d
, "Doesn't have cap; " MSG
);
1909 is_client_sendq_empty(server
, MSG
);
1910 is_client_sendq_empty(server2
, MSG
);
1912 sendto_channel_local_with_capability(user
, CHFL_VOICE
, 0, CAP_MULTI_PREFIX
, channel
, "Hello %s!", "World");
1913 is_client_sendq_empty(user
, "Not on channel; " MSG
);
1914 is_client_sendq_empty(local_chan_o
, "Not +v; " MSG
);
1915 is_client_sendq("@time=" ADVENTURE_TIME
" Hello World!" CRLF
, local_chan_ov
, "Has +v; " MSG
);
1916 is_client_sendq_empty(local_chan_v
, "Has cap; " MSG
);
1917 is_client_sendq_empty(local_chan_p
, "Not +v; " MSG
);
1918 is_client_sendq("Hello World!" CRLF
, local_chan_d
, "Has +v; " MSG
);
1919 is_client_sendq_empty(server
, MSG
);
1920 is_client_sendq_empty(server2
, MSG
);
1922 sendto_channel_local_with_capability(user
, CHFL_VOICE
, 0, 0, channel
, "Hello %s!", "World");
1923 is_client_sendq_empty(user
, "Not on channel; " MSG
);
1924 is_client_sendq_empty(local_chan_o
, "Not +v; " MSG
);
1925 is_client_sendq("@time=" ADVENTURE_TIME
" Hello World!" CRLF
, local_chan_ov
, "Has +v; " MSG
);
1926 is_client_sendq("@account=test Hello World!" CRLF
, local_chan_v
, "Has +v; " MSG
);
1927 is_client_sendq_empty(local_chan_p
, "Not +v; " MSG
);
1928 is_client_sendq("Hello World!" CRLF
, local_chan_d
, "Has +v; " MSG
);
1929 is_client_sendq_empty(server
, MSG
);
1930 is_client_sendq_empty(server2
, MSG
);
1932 sendto_channel_local_with_capability(user
, CHFL_CHANOP
, CAP_MULTI_PREFIX
, 0, channel
, "Hello %s!", "World");
1933 is_client_sendq_empty(user
, "Not on channel; " MSG
);
1934 is_client_sendq("@time=" ADVENTURE_TIME
";account=test Hello World!" CRLF
, local_chan_o
, "Has +o; " MSG
);
1935 is_client_sendq_empty(local_chan_ov
, "Doesn't have cap; " MSG
);
1936 is_client_sendq_empty(local_chan_v
, "Not +o; " MSG
);
1937 is_client_sendq_empty(local_chan_p
, "Not +o; " MSG
);
1938 is_client_sendq_empty(local_chan_d
, "Doesn't have cap; " MSG
);
1939 is_client_sendq_empty(server
, MSG
);
1940 is_client_sendq_empty(server2
, MSG
);
1942 sendto_channel_local_with_capability(user
, CHFL_CHANOP
, 0, CAP_MULTI_PREFIX
, channel
, "Hello %s!", "World");
1943 is_client_sendq_empty(user
, "Not on channel; " MSG
);
1944 is_client_sendq_empty(local_chan_o
, "Has cap; " MSG
);
1945 is_client_sendq("@time=" ADVENTURE_TIME
" Hello World!" CRLF
, local_chan_ov
, "Has +o; " MSG
);
1946 is_client_sendq_empty(local_chan_v
, "Not +o; " MSG
);
1947 is_client_sendq_empty(local_chan_p
, "Not +o; " MSG
);
1948 is_client_sendq("Hello World!" CRLF
, local_chan_d
, "Has +o; " MSG
);
1949 is_client_sendq_empty(server
, MSG
);
1950 is_client_sendq_empty(server2
, MSG
);
1952 sendto_channel_local_with_capability(user
, CHFL_CHANOP
, 0, 0, channel
, "Hello %s!", "World");
1953 is_client_sendq_empty(user
, "Not on channel; " MSG
);
1954 is_client_sendq("@time=" ADVENTURE_TIME
";account=test Hello World!" CRLF
, local_chan_o
, "Has +o; " MSG
);
1955 is_client_sendq("@time=" ADVENTURE_TIME
" Hello World!" CRLF
, local_chan_ov
, "Has +o; " MSG
);
1956 is_client_sendq_empty(local_chan_v
, "Not +o; " MSG
);
1957 is_client_sendq_empty(local_chan_p
, "Not +o; " MSG
);
1958 is_client_sendq("Hello World!" CRLF
, local_chan_d
, "Has +o; " MSG
);
1959 is_client_sendq_empty(server
, MSG
);
1960 is_client_sendq_empty(server2
, MSG
);
1962 sendto_channel_local_with_capability(user
, CHFL_CHANOP
| CHFL_VOICE
, CAP_MULTI_PREFIX
, 0, channel
, "Hello %s!", "World");
1963 is_client_sendq_empty(user
, "Not on channel; " MSG
);
1964 is_client_sendq("@time=" ADVENTURE_TIME
";account=test Hello World!" CRLF
, local_chan_o
, "Has +o/+v; " MSG
);
1965 is_client_sendq_empty(local_chan_ov
, "Doesn't have cap; " MSG
);
1966 is_client_sendq("@account=test Hello World!" CRLF
, local_chan_v
, "Has +o/+v; " MSG
);
1967 is_client_sendq_empty(local_chan_p
, "Not +o/+v; " MSG
);
1968 is_client_sendq_empty(local_chan_d
, "Doesn't have cap; " MSG
);
1969 is_client_sendq_empty(server
, MSG
);
1970 is_client_sendq_empty(server2
, MSG
);
1972 sendto_channel_local_with_capability(user
, CHFL_CHANOP
| CHFL_VOICE
, 0, CAP_MULTI_PREFIX
, channel
, "Hello %s!", "World");
1973 is_client_sendq_empty(user
, "Not on channel; " MSG
);
1974 is_client_sendq_empty(local_chan_o
, "Has cap; " MSG
);
1975 is_client_sendq("@time=" ADVENTURE_TIME
" Hello World!" CRLF
, local_chan_ov
, "Has +o/+v; " MSG
);
1976 is_client_sendq_empty(local_chan_v
, "Has cap; " MSG
);
1977 is_client_sendq_empty(local_chan_p
, "Not +o/+v; " MSG
);
1978 is_client_sendq("Hello World!" CRLF
, local_chan_d
, "Has +o/+v; " MSG
);
1979 is_client_sendq_empty(server
, MSG
);
1980 is_client_sendq_empty(server2
, MSG
);
1982 sendto_channel_local_with_capability(user
, CHFL_CHANOP
| CHFL_VOICE
, 0, 0, channel
, "Hello %s!", "World");
1983 is_client_sendq_empty(user
, "Not on channel; " MSG
);
1984 is_client_sendq("@time=" ADVENTURE_TIME
";account=test Hello World!" CRLF
, local_chan_o
, "Has +o/+v; " MSG
);
1985 is_client_sendq("@time=" ADVENTURE_TIME
" Hello World!" CRLF
, local_chan_ov
, "Has +o/+v; " MSG
);
1986 is_client_sendq("@account=test Hello World!" CRLF
, local_chan_v
, "Has +o/+v; " MSG
);
1987 is_client_sendq_empty(local_chan_p
, "Not +o/+v; " MSG
);
1988 is_client_sendq("Hello World!" CRLF
, local_chan_d
, "Has +o/+v; " MSG
);
1989 is_client_sendq_empty(server
, MSG
);
1990 is_client_sendq_empty(server2
, MSG
);
1995 static void sendto_channel_local_with_capability_butone1(void)
1999 local_chan_o
->localClient
->caps
|= CAP_MULTI_PREFIX
;
2000 local_chan_v
->localClient
->caps
|= CAP_MULTI_PREFIX
;
2002 sendto_channel_local_with_capability_butone(NULL
, ALL_MEMBERS
, CAP_MULTI_PREFIX
, 0, channel
, "Hello %s!", "World");
2003 is_client_sendq_empty(user
, "Not on channel; " MSG
);
2004 is_client_sendq("Hello World!" CRLF
, local_chan_o
, "On channel; " MSG
);
2005 is_client_sendq_empty(local_chan_ov
, "Doesn't have cap; " MSG
);
2006 is_client_sendq("Hello World!" CRLF
, local_chan_v
, "On channel; " MSG
);
2007 is_client_sendq_empty(local_chan_p
, "Doesn't have cap; " MSG
);
2008 is_client_sendq_empty(local_chan_d
, "Doesn't have cap; " MSG
);
2009 is_client_sendq_empty(server
, MSG
);
2010 is_client_sendq_empty(server2
, MSG
);
2012 sendto_channel_local_with_capability_butone(NULL
, ALL_MEMBERS
, 0, CAP_MULTI_PREFIX
, channel
, "Hello %s!", "World");
2013 is_client_sendq_empty(user
, "Not on channel; " MSG
);
2014 is_client_sendq_empty(local_chan_o
, "Has cap; " MSG
);
2015 is_client_sendq("Hello World!" CRLF
, local_chan_ov
, "On channel; " MSG
);
2016 is_client_sendq_empty(local_chan_v
, "Has cap; " MSG
);
2017 is_client_sendq("Hello World!" CRLF
, local_chan_p
, "On channel; " MSG
);
2018 is_client_sendq("Hello World!" CRLF
, local_chan_d
, "On channel; " MSG
);
2019 is_client_sendq_empty(server
, MSG
);
2020 is_client_sendq_empty(server2
, MSG
);
2022 sendto_channel_local_with_capability_butone(NULL
, ALL_MEMBERS
, 0, 0, channel
, "Hello %s!", "World");
2023 is_client_sendq_empty(user
, "Not on channel; " MSG
);
2024 is_client_sendq("Hello World!" CRLF
, local_chan_o
, "On channel; " MSG
);
2025 is_client_sendq("Hello World!" CRLF
, local_chan_ov
, "On channel; " MSG
);
2026 is_client_sendq("Hello World!" CRLF
, local_chan_v
, "On channel; " MSG
);
2027 is_client_sendq("Hello World!" CRLF
, local_chan_p
, "On channel; " MSG
);
2028 is_client_sendq("Hello World!" CRLF
, local_chan_d
, "On channel; " MSG
);
2029 is_client_sendq_empty(server
, MSG
);
2030 is_client_sendq_empty(server2
, MSG
);
2032 sendto_channel_local_with_capability_butone(local_chan_o
, ALL_MEMBERS
, CAP_MULTI_PREFIX
, 0, channel
, "Hello %s!", "World");
2033 is_client_sendq_empty(user
, "Not on channel; " MSG
);
2034 is_client_sendq_empty(local_chan_o
, "Is the one (neo); " MSG
);
2035 is_client_sendq_empty(local_chan_ov
, "Doesn't have cap; " MSG
);
2036 is_client_sendq("Hello World!" CRLF
, local_chan_v
, "On channel; " MSG
);
2037 is_client_sendq_empty(local_chan_p
, "Doesn't have cap; " MSG
);
2038 is_client_sendq_empty(local_chan_d
, "Doesn't have cap; " MSG
);
2039 is_client_sendq_empty(server
, MSG
);
2040 is_client_sendq_empty(server2
, MSG
);
2042 sendto_channel_local_with_capability_butone(local_chan_o
, ALL_MEMBERS
, 0, CAP_MULTI_PREFIX
, channel
, "Hello %s!", "World");
2043 is_client_sendq_empty(user
, "Not on channel; " MSG
);
2044 is_client_sendq_empty(local_chan_o
, "Is the one (neo); " MSG
);
2045 is_client_sendq("Hello World!" CRLF
, local_chan_ov
, "On channel; " MSG
);
2046 is_client_sendq_empty(local_chan_v
, "Has cap; " MSG
);
2047 is_client_sendq("Hello World!" CRLF
, local_chan_p
, "On channel; " MSG
);
2048 is_client_sendq("Hello World!" CRLF
, local_chan_d
, "On channel; " MSG
);
2049 is_client_sendq_empty(server
, MSG
);
2050 is_client_sendq_empty(server2
, MSG
);
2052 sendto_channel_local_with_capability_butone(local_chan_o
, ALL_MEMBERS
, 0, 0, channel
, "Hello %s!", "World");
2053 is_client_sendq_empty(user
, "Not on channel; " MSG
);
2054 is_client_sendq_empty(local_chan_o
, "Is the one (neo); " MSG
);
2055 is_client_sendq("Hello World!" CRLF
, local_chan_ov
, "On channel; " MSG
);
2056 is_client_sendq("Hello World!" CRLF
, local_chan_v
, "On channel; " MSG
);
2057 is_client_sendq("Hello World!" CRLF
, local_chan_p
, "On channel; " MSG
);
2058 is_client_sendq("Hello World!" CRLF
, local_chan_d
, "On channel; " MSG
);
2059 is_client_sendq_empty(server
, MSG
);
2060 is_client_sendq_empty(server2
, MSG
);
2062 sendto_channel_local_with_capability_butone(local_chan_p
, ALL_MEMBERS
, CAP_MULTI_PREFIX
, 0, channel
, "Hello %s!", "World");
2063 is_client_sendq_empty(user
, "Not on channel; " MSG
);
2064 is_client_sendq("Hello World!" CRLF
, local_chan_o
, "On channel; " MSG
);
2065 is_client_sendq_empty(local_chan_ov
, "Doesn't have cap; " MSG
);
2066 is_client_sendq("Hello World!" CRLF
, local_chan_v
, "On channel; " MSG
);
2067 is_client_sendq_empty(local_chan_p
, "Is the one (neo); " MSG
);
2068 is_client_sendq_empty(local_chan_d
, "Doesn't have cap; " MSG
);
2069 is_client_sendq_empty(server
, MSG
);
2070 is_client_sendq_empty(server2
, MSG
);
2072 sendto_channel_local_with_capability_butone(local_chan_p
, ALL_MEMBERS
, 0, CAP_MULTI_PREFIX
, channel
, "Hello %s!", "World");
2073 is_client_sendq_empty(user
, "Not on channel; " MSG
);
2074 is_client_sendq_empty(local_chan_o
, "Has cap; " MSG
);
2075 is_client_sendq("Hello World!" CRLF
, local_chan_ov
, "On channel; " MSG
);
2076 is_client_sendq_empty(local_chan_v
, "Has cap; " MSG
);
2077 is_client_sendq_empty(local_chan_p
, "Is the one (neo); " MSG
);
2078 is_client_sendq("Hello World!" CRLF
, local_chan_d
, "On channel; " MSG
);
2079 is_client_sendq_empty(server
, MSG
);
2080 is_client_sendq_empty(server2
, MSG
);
2082 sendto_channel_local_with_capability_butone(local_chan_p
, ALL_MEMBERS
, 0, 0, channel
, "Hello %s!", "World");
2083 is_client_sendq_empty(user
, "Not on channel; " MSG
);
2084 is_client_sendq("Hello World!" CRLF
, local_chan_o
, "On channel; " MSG
);
2085 is_client_sendq("Hello World!" CRLF
, local_chan_ov
, "On channel; " MSG
);
2086 is_client_sendq("Hello World!" CRLF
, local_chan_v
, "On channel; " MSG
);
2087 is_client_sendq_empty(local_chan_p
, "Is the one (neo); " MSG
);
2088 is_client_sendq("Hello World!" CRLF
, local_chan_d
, "On channel; " MSG
);
2089 is_client_sendq_empty(server
, MSG
);
2090 is_client_sendq_empty(server2
, MSG
);
2095 static void sendto_channel_local_with_capability_butone1__tags(void)
2099 local_chan_o
->localClient
->caps
|= CAP_MULTI_PREFIX
;
2100 local_chan_v
->localClient
->caps
|= CAP_MULTI_PREFIX
;
2102 strcpy(local_chan_o
->user
->suser
, "test_o");
2103 strcpy(local_chan_p
->user
->suser
, "test_p");
2104 local_chan_o
->localClient
->caps
|= CAP_ACCOUNT_TAG
;
2105 local_chan_o
->localClient
->caps
|= CAP_SERVER_TIME
;
2106 local_chan_ov
->localClient
->caps
|= CAP_SERVER_TIME
;
2107 local_chan_v
->localClient
->caps
|= CAP_ACCOUNT_TAG
;
2109 sendto_channel_local_with_capability_butone(NULL
, ALL_MEMBERS
, CAP_MULTI_PREFIX
, 0, channel
, "Hello %s!", "World");
2110 is_client_sendq_empty(user
, "Not on channel; " MSG
);
2111 is_client_sendq("@time=" ADVENTURE_TIME
" Hello World!" CRLF
, local_chan_o
, "On channel; " MSG
);
2112 is_client_sendq_empty(local_chan_ov
, "Doesn't have cap; " MSG
);
2113 is_client_sendq("Hello World!" CRLF
, local_chan_v
, "On channel; " MSG
);
2114 is_client_sendq_empty(local_chan_p
, "Doesn't have cap; " MSG
);
2115 is_client_sendq_empty(local_chan_d
, "Doesn't have cap; " MSG
);
2116 is_client_sendq_empty(server
, MSG
);
2117 is_client_sendq_empty(server2
, MSG
);
2119 sendto_channel_local_with_capability_butone(NULL
, ALL_MEMBERS
, 0, CAP_MULTI_PREFIX
, channel
, "Hello %s!", "World");
2120 is_client_sendq_empty(user
, "Not on channel; " MSG
);
2121 is_client_sendq_empty(local_chan_o
, "Has cap; " MSG
);
2122 is_client_sendq("@time=" ADVENTURE_TIME
" Hello World!" CRLF
, local_chan_ov
, "On channel; " MSG
);
2123 is_client_sendq_empty(local_chan_v
, "Has cap; " MSG
);
2124 is_client_sendq("Hello World!" CRLF
, local_chan_p
, "On channel; " MSG
);
2125 is_client_sendq("Hello World!" CRLF
, local_chan_d
, "On channel; " MSG
);
2126 is_client_sendq_empty(server
, MSG
);
2127 is_client_sendq_empty(server2
, MSG
);
2129 sendto_channel_local_with_capability_butone(NULL
, ALL_MEMBERS
, 0, 0, channel
, "Hello %s!", "World");
2130 is_client_sendq_empty(user
, "Not on channel; " MSG
);
2131 is_client_sendq("@time=" ADVENTURE_TIME
" Hello World!" CRLF
, local_chan_o
, "On channel; " MSG
);
2132 is_client_sendq("@time=" ADVENTURE_TIME
" Hello World!" CRLF
, local_chan_ov
, "On channel; " MSG
);
2133 is_client_sendq("Hello World!" CRLF
, local_chan_v
, "On channel; " MSG
);
2134 is_client_sendq("Hello World!" CRLF
, local_chan_p
, "On channel; " MSG
);
2135 is_client_sendq("Hello World!" CRLF
, local_chan_d
, "On channel; " MSG
);
2136 is_client_sendq_empty(server
, MSG
);
2137 is_client_sendq_empty(server2
, MSG
);
2139 sendto_channel_local_with_capability_butone(local_chan_o
, ALL_MEMBERS
, CAP_MULTI_PREFIX
, 0, channel
, "Hello %s!", "World");
2140 is_client_sendq_empty(user
, "Not on channel; " MSG
);
2141 is_client_sendq_empty(local_chan_o
, "Is the one (neo); " MSG
);
2142 is_client_sendq_empty(local_chan_ov
, "Doesn't have cap; " MSG
);
2143 is_client_sendq("@account=test_o Hello World!" CRLF
, local_chan_v
, "On channel; " MSG
);
2144 is_client_sendq_empty(local_chan_p
, "Doesn't have cap; " MSG
);
2145 is_client_sendq_empty(local_chan_d
, "Doesn't have cap; " MSG
);
2146 is_client_sendq_empty(server
, MSG
);
2147 is_client_sendq_empty(server2
, MSG
);
2149 sendto_channel_local_with_capability_butone(local_chan_o
, ALL_MEMBERS
, 0, CAP_MULTI_PREFIX
, channel
, "Hello %s!", "World");
2150 is_client_sendq_empty(user
, "Not on channel; " MSG
);
2151 is_client_sendq_empty(local_chan_o
, "Is the one (neo); " MSG
);
2152 is_client_sendq("@time=" ADVENTURE_TIME
" Hello World!" CRLF
, local_chan_ov
, "On channel; " MSG
);
2153 is_client_sendq_empty(local_chan_v
, "Has cap; " MSG
);
2154 is_client_sendq("Hello World!" CRLF
, local_chan_p
, "On channel; " MSG
);
2155 is_client_sendq("Hello World!" CRLF
, local_chan_d
, "On channel; " MSG
);
2156 is_client_sendq_empty(server
, MSG
);
2157 is_client_sendq_empty(server2
, MSG
);
2159 sendto_channel_local_with_capability_butone(local_chan_o
, ALL_MEMBERS
, 0, 0, channel
, "Hello %s!", "World");
2160 is_client_sendq_empty(user
, "Not on channel; " MSG
);
2161 is_client_sendq_empty(local_chan_o
, "Is the one (neo); " MSG
);
2162 is_client_sendq("@time=" ADVENTURE_TIME
" Hello World!" CRLF
, local_chan_ov
, "On channel; " MSG
);
2163 is_client_sendq("@account=test_o Hello World!" CRLF
, local_chan_v
, "On channel; " MSG
);
2164 is_client_sendq("Hello World!" CRLF
, local_chan_p
, "On channel; " MSG
);
2165 is_client_sendq("Hello World!" CRLF
, local_chan_d
, "On channel; " MSG
);
2166 is_client_sendq_empty(server
, MSG
);
2167 is_client_sendq_empty(server2
, MSG
);
2169 sendto_channel_local_with_capability_butone(local_chan_p
, ALL_MEMBERS
, CAP_MULTI_PREFIX
, 0, channel
, "Hello %s!", "World");
2170 is_client_sendq_empty(user
, "Not on channel; " MSG
);
2171 is_client_sendq("@time=" ADVENTURE_TIME
";account=test_p Hello World!" CRLF
, local_chan_o
, "On channel; " MSG
);
2172 is_client_sendq_empty(local_chan_ov
, "Doesn't have cap; " MSG
);
2173 is_client_sendq("@account=test_p Hello World!" CRLF
, local_chan_v
, "On channel; " MSG
);
2174 is_client_sendq_empty(local_chan_p
, "Is the one (neo); " MSG
);
2175 is_client_sendq_empty(local_chan_d
, "Doesn't have cap; " MSG
);
2176 is_client_sendq_empty(server
, MSG
);
2177 is_client_sendq_empty(server2
, MSG
);
2179 sendto_channel_local_with_capability_butone(local_chan_p
, ALL_MEMBERS
, 0, CAP_MULTI_PREFIX
, channel
, "Hello %s!", "World");
2180 is_client_sendq_empty(user
, "Not on channel; " MSG
);
2181 is_client_sendq_empty(local_chan_o
, "Has cap; " MSG
);
2182 is_client_sendq("@time=" ADVENTURE_TIME
" Hello World!" CRLF
, local_chan_ov
, "On channel; " MSG
);
2183 is_client_sendq_empty(local_chan_v
, "Has cap; " MSG
);
2184 is_client_sendq_empty(local_chan_p
, "Is the one (neo); " MSG
);
2185 is_client_sendq("Hello World!" CRLF
, local_chan_d
, "On channel; " MSG
);
2186 is_client_sendq_empty(server
, MSG
);
2187 is_client_sendq_empty(server2
, MSG
);
2189 sendto_channel_local_with_capability_butone(local_chan_p
, ALL_MEMBERS
, 0, 0, channel
, "Hello %s!", "World");
2190 is_client_sendq_empty(user
, "Not on channel; " MSG
);
2191 is_client_sendq("@time=" ADVENTURE_TIME
";account=test_p Hello World!" CRLF
, local_chan_o
, "On channel; " MSG
);
2192 is_client_sendq("@time=" ADVENTURE_TIME
" Hello World!" CRLF
, local_chan_ov
, "On channel; " MSG
);
2193 is_client_sendq("@account=test_p Hello World!" CRLF
, local_chan_v
, "On channel; " MSG
);
2194 is_client_sendq_empty(local_chan_p
, "Is the one (neo); " MSG
);
2195 is_client_sendq("Hello World!" CRLF
, local_chan_d
, "On channel; " MSG
);
2196 is_client_sendq_empty(server
, MSG
);
2197 is_client_sendq_empty(server2
, MSG
);
2202 static void sendto_channel_local_butone1(void)
2206 sendto_channel_local_butone(NULL
, ALL_MEMBERS
, channel
, "Hello %s!", "World");
2207 is_client_sendq_empty(user
, "Not on channel; " MSG
);
2208 is_client_sendq("Hello World!" CRLF
, local_chan_o
, "On channel; " MSG
);
2209 is_client_sendq("Hello World!" CRLF
, local_chan_ov
, "On channel; " MSG
);
2210 is_client_sendq("Hello World!" CRLF
, local_chan_v
, "On channel; " MSG
);
2211 is_client_sendq("Hello World!" CRLF
, local_chan_p
, "On channel; " MSG
);
2212 is_client_sendq("Hello World!" CRLF
, local_chan_d
, "On channel; " MSG
);
2213 is_client_sendq_empty(server
, MSG
);
2214 is_client_sendq_empty(server2
, MSG
);
2216 sendto_channel_local_butone(local_chan_o
, ALL_MEMBERS
, channel
, "Hello %s!", "World");
2217 is_client_sendq_empty(user
, "Not on channel; " MSG
);
2218 is_client_sendq_empty(local_chan_o
, "Is the one (neo); " MSG
);
2219 is_client_sendq("Hello World!" CRLF
, local_chan_ov
, "On channel; " MSG
);
2220 is_client_sendq("Hello World!" CRLF
, local_chan_v
, "On channel; " MSG
);
2221 is_client_sendq("Hello World!" CRLF
, local_chan_p
, "On channel; " MSG
);
2222 is_client_sendq("Hello World!" CRLF
, local_chan_d
, "On channel; " MSG
);
2223 is_client_sendq_empty(server
, MSG
);
2224 is_client_sendq_empty(server2
, MSG
);
2226 sendto_channel_local_butone(local_chan_p
, ALL_MEMBERS
, channel
, "Hello %s!", "World");
2227 is_client_sendq_empty(user
, "Not on channel; " MSG
);
2228 is_client_sendq("Hello World!" CRLF
, local_chan_o
, "On channel; " MSG
);
2229 is_client_sendq("Hello World!" CRLF
, local_chan_ov
, "On channel; " MSG
);
2230 is_client_sendq("Hello World!" CRLF
, local_chan_v
, "On channel; " MSG
);
2231 is_client_sendq_empty(local_chan_p
, "Is the one (neo); " MSG
);
2232 is_client_sendq("Hello World!" CRLF
, local_chan_d
, "On channel; " MSG
);
2233 is_client_sendq_empty(server
, MSG
);
2234 is_client_sendq_empty(server2
, MSG
);
2236 sendto_channel_local_butone(local_chan_ov
, CHFL_VOICE
, channel
, "Hello %s!", "World");
2237 is_client_sendq_empty(user
, "Not on channel; " MSG
);
2238 is_client_sendq_empty(local_chan_o
, "Not +v; " MSG
);
2239 is_client_sendq_empty(local_chan_ov
, "Is the one (neo); " MSG
);
2240 is_client_sendq("Hello World!" CRLF
, local_chan_v
, "Has +v; " MSG
);
2241 is_client_sendq_empty(local_chan_p
, "Not +v; " MSG
);
2242 is_client_sendq("Hello World!" CRLF
, local_chan_d
, "Has +v; " MSG
);
2243 is_client_sendq_empty(server
, MSG
);
2244 is_client_sendq_empty(server2
, MSG
);
2246 sendto_channel_local_butone(local_chan_p
, CHFL_VOICE
, channel
, "Hello %s!", "World");
2247 is_client_sendq_empty(user
, "Not on channel; " MSG
);
2248 is_client_sendq_empty(local_chan_o
, "Not +v; " MSG
);
2249 is_client_sendq("Hello World!" CRLF
, local_chan_ov
, "Has +v; " MSG
);
2250 is_client_sendq("Hello World!" CRLF
, local_chan_v
, "Has +v; " MSG
);
2251 is_client_sendq_empty(local_chan_p
, "Is the one (neo); " MSG
);
2252 is_client_sendq("Hello World!" CRLF
, local_chan_d
, "Has +v; " MSG
);
2253 is_client_sendq_empty(server
, MSG
);
2254 is_client_sendq_empty(server2
, MSG
);
2256 sendto_channel_local_butone(local_chan_o
, CHFL_CHANOP
, channel
, "Hello %s!", "World");
2257 is_client_sendq_empty(user
, "Not on channel; " MSG
);
2258 is_client_sendq_empty(local_chan_o
, "Is the one (neo); " MSG
);
2259 is_client_sendq("Hello World!" CRLF
, local_chan_ov
, "Has +o; " MSG
);
2260 is_client_sendq_empty(local_chan_v
, "Not +o; " MSG
);
2261 is_client_sendq_empty(local_chan_p
, "Not +o; " MSG
);
2262 is_client_sendq("Hello World!" CRLF
, local_chan_d
, "Has +o; " MSG
);
2263 is_client_sendq_empty(server
, MSG
);
2264 is_client_sendq_empty(server2
, MSG
);
2266 sendto_channel_local_butone(local_chan_p
, CHFL_CHANOP
, channel
, "Hello %s!", "World");
2267 is_client_sendq_empty(user
, "Not on channel; " MSG
);
2268 is_client_sendq("Hello World!" CRLF
, local_chan_o
, "Has +o; " MSG
);
2269 is_client_sendq("Hello World!" CRLF
, local_chan_ov
, "Has +o; " MSG
);
2270 is_client_sendq_empty(local_chan_v
, "Not +o; " MSG
);
2271 is_client_sendq_empty(local_chan_p
, "Is the one (neo); " MSG
);
2272 is_client_sendq("Hello World!" CRLF
, local_chan_d
, "Has +o; " MSG
);
2273 is_client_sendq_empty(server
, MSG
);
2274 is_client_sendq_empty(server2
, MSG
);
2276 sendto_channel_local_butone(local_chan_v
, CHFL_CHANOP
| CHFL_VOICE
, channel
, "Hello %s!", "World");
2277 is_client_sendq_empty(user
, "Not on channel; " MSG
);
2278 is_client_sendq("Hello World!" CRLF
, local_chan_o
, "Has +o/+v; " MSG
);
2279 is_client_sendq("Hello World!" CRLF
, local_chan_ov
, "Has +o/+v; " MSG
);
2280 is_client_sendq_empty(local_chan_v
, "Is the one (neo); " MSG
);
2281 is_client_sendq_empty(local_chan_p
, "Not +o/+v; " MSG
);
2282 is_client_sendq("Hello World!" CRLF
, local_chan_d
, "Has +o/+v; " MSG
);
2283 is_client_sendq_empty(server
, MSG
);
2284 is_client_sendq_empty(server2
, MSG
);
2286 sendto_channel_local_butone(local_chan_p
, CHFL_CHANOP
| CHFL_VOICE
, channel
, "Hello %s!", "World");
2287 is_client_sendq_empty(user
, "Not on channel; " MSG
);
2288 is_client_sendq("Hello World!" CRLF
, local_chan_o
, "Has +o/+v; " MSG
);
2289 is_client_sendq("Hello World!" CRLF
, local_chan_ov
, "Has +o/+v; " MSG
);
2290 is_client_sendq("Hello World!" CRLF
, local_chan_v
, "Has +o/+v; " MSG
);
2291 is_client_sendq_empty(local_chan_p
, "Is the one (neo); " MSG
);
2292 is_client_sendq("Hello World!" CRLF
, local_chan_d
, "Has +o/+v; " MSG
);
2293 is_client_sendq_empty(server
, MSG
);
2294 is_client_sendq_empty(server2
, MSG
);
2299 static void sendto_channel_local_butone1__tags(void)
2303 strcpy(local_chan_o
->user
->suser
, "test_o");
2304 strcpy(local_chan_ov
->user
->suser
, "test_ov");
2305 strcpy(local_chan_v
->user
->suser
, "test_v");
2306 strcpy(local_chan_p
->user
->suser
, "test_p");
2307 local_chan_o
->localClient
->caps
|= CAP_ACCOUNT_TAG
;
2308 local_chan_o
->localClient
->caps
|= CAP_SERVER_TIME
;
2309 local_chan_ov
->localClient
->caps
|= CAP_SERVER_TIME
;
2310 local_chan_v
->localClient
->caps
|= CAP_ACCOUNT_TAG
;
2312 sendto_channel_local_butone(NULL
, ALL_MEMBERS
, channel
, "Hello %s!", "World");
2313 is_client_sendq_empty(user
, "Not on channel; " MSG
);
2314 is_client_sendq("@time=" ADVENTURE_TIME
" Hello World!" CRLF
, local_chan_o
, "On channel; " MSG
);
2315 is_client_sendq("@time=" ADVENTURE_TIME
" Hello World!" CRLF
, local_chan_ov
, "On channel; " MSG
);
2316 is_client_sendq("Hello World!" CRLF
, local_chan_v
, "On channel; " MSG
);
2317 is_client_sendq("Hello World!" CRLF
, local_chan_p
, "On channel; " MSG
);
2318 is_client_sendq("Hello World!" CRLF
, local_chan_d
, "On channel; " MSG
);
2319 is_client_sendq_empty(server
, MSG
);
2320 is_client_sendq_empty(server2
, MSG
);
2322 sendto_channel_local_butone(local_chan_o
, ALL_MEMBERS
, channel
, "Hello %s!", "World");
2323 is_client_sendq_empty(user
, "Not on channel; " MSG
);
2324 is_client_sendq_empty(local_chan_o
, "Is the one (neo); " MSG
);
2325 is_client_sendq("@time=" ADVENTURE_TIME
" Hello World!" CRLF
, local_chan_ov
, "On channel; " MSG
);
2326 is_client_sendq("@account=test_o Hello World!" CRLF
, local_chan_v
, "On channel; " MSG
);
2327 is_client_sendq("Hello World!" CRLF
, local_chan_p
, "On channel; " MSG
);
2328 is_client_sendq("Hello World!" CRLF
, local_chan_d
, "On channel; " MSG
);
2329 is_client_sendq_empty(server
, MSG
);
2330 is_client_sendq_empty(server2
, MSG
);
2332 sendto_channel_local_butone(local_chan_p
, ALL_MEMBERS
, channel
, "Hello %s!", "World");
2333 is_client_sendq_empty(user
, "Not on channel; " MSG
);
2334 is_client_sendq("@time=" ADVENTURE_TIME
";account=test_p Hello World!" CRLF
, local_chan_o
, "On channel; " MSG
);
2335 is_client_sendq("@time=" ADVENTURE_TIME
" Hello World!" CRLF
, local_chan_ov
, "On channel; " MSG
);
2336 is_client_sendq("@account=test_p Hello World!" CRLF
, local_chan_v
, "On channel; " MSG
);
2337 is_client_sendq_empty(local_chan_p
, "Is the one (neo); " MSG
);
2338 is_client_sendq("Hello World!" CRLF
, local_chan_d
, "On channel; " MSG
);
2339 is_client_sendq_empty(server
, MSG
);
2340 is_client_sendq_empty(server2
, MSG
);
2342 sendto_channel_local_butone(local_chan_ov
, CHFL_VOICE
, channel
, "Hello %s!", "World");
2343 is_client_sendq_empty(user
, "Not on channel; " MSG
);
2344 is_client_sendq_empty(local_chan_o
, "Not +v; " MSG
);
2345 is_client_sendq_empty(local_chan_ov
, "Is the one (neo); " MSG
);
2346 is_client_sendq("@account=test_ov Hello World!" CRLF
, local_chan_v
, "Has +v; " MSG
);
2347 is_client_sendq_empty(local_chan_p
, "Not +v; " MSG
);
2348 is_client_sendq("Hello World!" CRLF
, local_chan_d
, "Has +v; " MSG
);
2349 is_client_sendq_empty(server
, MSG
);
2350 is_client_sendq_empty(server2
, MSG
);
2352 sendto_channel_local_butone(local_chan_p
, CHFL_VOICE
, channel
, "Hello %s!", "World");
2353 is_client_sendq_empty(user
, "Not on channel; " MSG
);
2354 is_client_sendq_empty(local_chan_o
, "Not +v; " MSG
);
2355 is_client_sendq("@time=" ADVENTURE_TIME
" Hello World!" CRLF
, local_chan_ov
, "Has +v; " MSG
);
2356 is_client_sendq("@account=test_p Hello World!" CRLF
, local_chan_v
, "Has +v; " MSG
);
2357 is_client_sendq_empty(local_chan_p
, "Is the one (neo); " MSG
);
2358 is_client_sendq("Hello World!" CRLF
, local_chan_d
, "Has +v; " MSG
);
2359 is_client_sendq_empty(server
, MSG
);
2360 is_client_sendq_empty(server2
, MSG
);
2362 sendto_channel_local_butone(local_chan_o
, CHFL_CHANOP
, channel
, "Hello %s!", "World");
2363 is_client_sendq_empty(user
, "Not on channel; " MSG
);
2364 is_client_sendq_empty(local_chan_o
, "Is the one (neo); " MSG
);
2365 is_client_sendq("@time=" ADVENTURE_TIME
" Hello World!" CRLF
, local_chan_ov
, "Has +o; " MSG
);
2366 is_client_sendq_empty(local_chan_v
, "Not +o; " MSG
);
2367 is_client_sendq_empty(local_chan_p
, "Not +o; " MSG
);
2368 is_client_sendq("Hello World!" CRLF
, local_chan_d
, "Has +o; " MSG
);
2369 is_client_sendq_empty(server
, MSG
);
2370 is_client_sendq_empty(server2
, MSG
);
2372 sendto_channel_local_butone(local_chan_p
, CHFL_CHANOP
, channel
, "Hello %s!", "World");
2373 is_client_sendq_empty(user
, "Not on channel; " MSG
);
2374 is_client_sendq("@time=" ADVENTURE_TIME
";account=test_p Hello World!" CRLF
, local_chan_o
, "Has +o; " MSG
);
2375 is_client_sendq("@time=" ADVENTURE_TIME
" Hello World!" CRLF
, local_chan_ov
, "Has +o; " MSG
);
2376 is_client_sendq_empty(local_chan_v
, "Not +o; " MSG
);
2377 is_client_sendq_empty(local_chan_p
, "Is the one (neo); " MSG
);
2378 is_client_sendq("Hello World!" CRLF
, local_chan_d
, "Has +o; " MSG
);
2379 is_client_sendq_empty(server
, MSG
);
2380 is_client_sendq_empty(server2
, MSG
);
2382 sendto_channel_local_butone(local_chan_v
, CHFL_CHANOP
| CHFL_VOICE
, channel
, "Hello %s!", "World");
2383 is_client_sendq_empty(user
, "Not on channel; " MSG
);
2384 is_client_sendq("@time=" ADVENTURE_TIME
";account=test_v Hello World!" CRLF
, local_chan_o
, "Has +o/+v; " MSG
);
2385 is_client_sendq("@time=" ADVENTURE_TIME
" Hello World!" CRLF
, local_chan_ov
, "Has +o/+v; " MSG
);
2386 is_client_sendq_empty(local_chan_v
, "Is the one (neo); " MSG
);
2387 is_client_sendq_empty(local_chan_p
, "Not +o/+v; " MSG
);
2388 is_client_sendq("Hello World!" CRLF
, local_chan_d
, "Has +o/+v; " MSG
);
2389 is_client_sendq_empty(server
, MSG
);
2390 is_client_sendq_empty(server2
, MSG
);
2392 sendto_channel_local_butone(local_chan_p
, CHFL_CHANOP
| CHFL_VOICE
, channel
, "Hello %s!", "World");
2393 is_client_sendq_empty(user
, "Not on channel; " MSG
);
2394 is_client_sendq("@time=" ADVENTURE_TIME
";account=test_p Hello World!" CRLF
, local_chan_o
, "Has +o/+v; " MSG
);
2395 is_client_sendq("@time=" ADVENTURE_TIME
" Hello World!" CRLF
, local_chan_ov
, "Has +o/+v; " MSG
);
2396 is_client_sendq("@account=test_p Hello World!" CRLF
, local_chan_v
, "Has +o/+v; " MSG
);
2397 is_client_sendq_empty(local_chan_p
, "Is the one (neo); " MSG
);
2398 is_client_sendq("Hello World!" CRLF
, local_chan_d
, "Has +o/+v; " MSG
);
2399 is_client_sendq_empty(server
, MSG
);
2400 is_client_sendq_empty(server2
, MSG
);
2405 static void sendto_common_channels_local1(void)
2409 local_chan_o
->localClient
->caps
|= CAP_MULTI_PREFIX
;
2410 local_chan_v
->localClient
->caps
|= CAP_MULTI_PREFIX
;
2412 sendto_common_channels_local(local_chan_o
, CAP_MULTI_PREFIX
, 0, "Hello %s!", "World");
2413 is_client_sendq_empty(user
, "Not on common channel; " MSG
);
2414 is_client_sendq("Hello World!" CRLF
, local_chan_o
, "Has cap; " MSG
);
2415 is_client_sendq_empty(local_chan_ov
, "Doesn't have cap; " MSG
);
2416 is_client_sendq("Hello World!" CRLF
, local_chan_v
, "Has cap; " MSG
);
2417 is_client_sendq_empty(local_chan_p
, "Doesn't have cap; " MSG
);
2418 is_client_sendq_empty(local_chan_d
, "Doesn't have cap; " MSG
);
2419 is_client_sendq_empty(local_no_chan
, "Not on common channel; " MSG
);
2420 is_client_sendq_empty(server
, MSG
);
2421 is_client_sendq_empty(server2
, MSG
);
2423 sendto_common_channels_local(local_chan_o
, 0, CAP_MULTI_PREFIX
, "Hello %s!", "World");
2424 is_client_sendq_empty(user
, "Not on common channel; " MSG
);
2425 is_client_sendq_empty(local_chan_o
, "Has cap; " MSG
);
2426 is_client_sendq("Hello World!" CRLF
, local_chan_ov
, "Doesn't have cap; " MSG
);
2427 is_client_sendq_empty(local_chan_v
, "Has cap; " MSG
);
2428 is_client_sendq("Hello World!" CRLF
, local_chan_p
, "Doesn't have cap; " MSG
);
2429 is_client_sendq("Hello World!" CRLF
, local_chan_d
, "Doesn't have cap; " MSG
);
2430 is_client_sendq_empty(local_no_chan
, "Not on common channel; " MSG
);
2431 is_client_sendq_empty(server
, MSG
);
2432 is_client_sendq_empty(server2
, MSG
);
2434 sendto_common_channels_local(local_chan_o
, 0, 0, "Hello %s!", "World");
2435 is_client_sendq_empty(user
, "Not on common channel; " MSG
);
2436 is_client_sendq("Hello World!" CRLF
, local_chan_o
, "No cap checking; " MSG
);
2437 is_client_sendq("Hello World!" CRLF
, local_chan_ov
, "On common channel; " MSG
);
2438 is_client_sendq("Hello World!" CRLF
, local_chan_v
, "On common channel; " MSG
);
2439 is_client_sendq("Hello World!" CRLF
, local_chan_p
, "On common channel; " MSG
);
2440 is_client_sendq("Hello World!" CRLF
, local_chan_d
, "On common channel; " MSG
);
2441 is_client_sendq_empty(local_no_chan
, "Not on common channel; " MSG
);
2442 is_client_sendq_empty(server
, MSG
);
2443 is_client_sendq_empty(server2
, MSG
);
2445 sendto_common_channels_local(local_no_chan
, CAP_MULTI_PREFIX
, 0, "Hello %s!", "World");
2446 is_client_sendq_empty(user
, "Not on common channel; " MSG
);
2447 is_client_sendq_empty(local_chan_o
, "Not on common channel; " MSG
);
2448 is_client_sendq_empty(local_chan_ov
, "Not on common channel; " MSG
);
2449 is_client_sendq_empty(local_chan_p
, "Not on common channel; " MSG
);
2450 is_client_sendq_empty(local_chan_d
, "Not on common channel; " MSG
);
2451 is_client_sendq_empty(local_no_chan
, "Doesn't have cap; " MSG
);
2452 is_client_sendq_empty(server
, MSG
);
2453 is_client_sendq_empty(server2
, MSG
);
2455 sendto_common_channels_local(local_no_chan
, 0, CAP_MULTI_PREFIX
, "Hello %s!", "World");
2456 is_client_sendq_empty(user
, "Not on common channel; " MSG
);
2457 is_client_sendq_empty(local_chan_o
, "Not on common channel; " MSG
);
2458 is_client_sendq_empty(local_chan_ov
, "Not on common channel; " MSG
);
2459 is_client_sendq_empty(local_chan_p
, "Not on common channel; " MSG
);
2460 is_client_sendq_empty(local_chan_d
, "Not on common channel; " MSG
);
2461 is_client_sendq("Hello World!" CRLF
, local_no_chan
, "Doesn't have cap; " MSG
);
2462 is_client_sendq_empty(server
, MSG
);
2463 is_client_sendq_empty(server2
, MSG
);
2465 sendto_common_channels_local(local_no_chan
, 0, 0, "Hello %s!", "World");
2466 is_client_sendq_empty(user
, "Not on common channel; " MSG
);
2467 is_client_sendq_empty(local_chan_o
, "Not on common channel; " MSG
);
2468 is_client_sendq_empty(local_chan_ov
, "Not on common channel; " MSG
);
2469 is_client_sendq_empty(local_chan_p
, "Not on common channel; " MSG
);
2470 is_client_sendq_empty(local_chan_d
, "Not on common channel; " MSG
);
2471 is_client_sendq("Hello World!" CRLF
, local_no_chan
, "No cap checking; " MSG
);
2472 is_client_sendq_empty(server
, MSG
);
2473 is_client_sendq_empty(server2
, MSG
);
2475 local_no_chan
->localClient
->caps
|= CAP_MULTI_PREFIX
;
2477 sendto_common_channels_local(local_no_chan
, CAP_MULTI_PREFIX
, 0, "Hello %s!", "World");
2478 is_client_sendq_empty(user
, "Not on common channel; " MSG
);
2479 is_client_sendq_empty(local_chan_o
, "Not on common channel; " MSG
);
2480 is_client_sendq_empty(local_chan_ov
, "Not on common channel; " MSG
);
2481 is_client_sendq_empty(local_chan_p
, "Not on common channel; " MSG
);
2482 is_client_sendq_empty(local_chan_d
, "Not on common channel; " MSG
);
2483 is_client_sendq("Hello World!" CRLF
, local_no_chan
, "Has cap; " MSG
);
2484 is_client_sendq_empty(server
, MSG
);
2485 is_client_sendq_empty(server2
, MSG
);
2487 sendto_common_channels_local(local_no_chan
, 0, CAP_MULTI_PREFIX
, "Hello %s!", "World");
2488 is_client_sendq_empty(user
, "Not on common channel; " MSG
);
2489 is_client_sendq_empty(local_chan_o
, "Not on common channel; " MSG
);
2490 is_client_sendq_empty(local_chan_ov
, "Not on common channel; " MSG
);
2491 is_client_sendq_empty(local_chan_p
, "Not on common channel; " MSG
);
2492 is_client_sendq_empty(local_chan_d
, "Not on common channel; " MSG
);
2493 is_client_sendq_empty(local_no_chan
, "Has cap; " MSG
);
2494 is_client_sendq_empty(server
, MSG
);
2495 is_client_sendq_empty(server2
, MSG
);
2497 sendto_common_channels_local(local_no_chan
, 0, 0, "Hello %s!", "World");
2498 is_client_sendq_empty(user
, "Not on common channel; " MSG
);
2499 is_client_sendq_empty(local_chan_o
, "Not on common channel; " MSG
);
2500 is_client_sendq_empty(local_chan_ov
, "Not on common channel; " MSG
);
2501 is_client_sendq_empty(local_chan_p
, "Not on common channel; " MSG
);
2502 is_client_sendq_empty(local_chan_d
, "Not on common channel; " MSG
);
2503 is_client_sendq("Hello World!" CRLF
, local_no_chan
, "No cap checking; " MSG
);
2504 is_client_sendq_empty(server
, MSG
);
2505 is_client_sendq_empty(server2
, MSG
);
2510 static void sendto_common_channels_local1__tags(void)
2514 local_chan_o
->localClient
->caps
|= CAP_MULTI_PREFIX
;
2515 local_chan_v
->localClient
->caps
|= CAP_MULTI_PREFIX
;
2517 strcpy(local_chan_o
->user
->suser
, "test_o");
2518 strcpy(local_no_chan
->user
->suser
, "test_n");
2519 local_chan_o
->localClient
->caps
|= CAP_ACCOUNT_TAG
;
2520 local_chan_o
->localClient
->caps
|= CAP_SERVER_TIME
;
2521 local_chan_ov
->localClient
->caps
|= CAP_SERVER_TIME
;
2522 local_chan_v
->localClient
->caps
|= CAP_ACCOUNT_TAG
;
2524 sendto_common_channels_local(local_chan_o
, CAP_MULTI_PREFIX
, 0, "Hello %s!", "World");
2525 is_client_sendq_empty(user
, "Not on common channel; " MSG
);
2526 is_client_sendq("@time=" ADVENTURE_TIME
";account=test_o Hello World!" CRLF
, local_chan_o
, "Has cap; " MSG
);
2527 is_client_sendq_empty(local_chan_ov
, "Doesn't have cap; " MSG
);
2528 is_client_sendq("@account=test_o Hello World!" CRLF
, local_chan_v
, "Has cap; " MSG
);
2529 is_client_sendq_empty(local_chan_p
, "Doesn't have cap; " MSG
);
2530 is_client_sendq_empty(local_chan_d
, "Doesn't have cap; " MSG
);
2531 is_client_sendq_empty(local_no_chan
, "Not on common channel; " MSG
);
2532 is_client_sendq_empty(server
, MSG
);
2533 is_client_sendq_empty(server2
, MSG
);
2535 sendto_common_channels_local(local_chan_o
, 0, CAP_MULTI_PREFIX
, "Hello %s!", "World");
2536 is_client_sendq_empty(user
, "Not on common channel; " MSG
);
2537 is_client_sendq_empty(local_chan_o
, "Has cap; " MSG
);
2538 is_client_sendq("@time=" ADVENTURE_TIME
" Hello World!" CRLF
, local_chan_ov
, "Doesn't have cap; " MSG
);
2539 is_client_sendq_empty(local_chan_v
, "Has cap; " MSG
);
2540 is_client_sendq("Hello World!" CRLF
, local_chan_p
, "Doesn't have cap; " MSG
);
2541 is_client_sendq("Hello World!" CRLF
, local_chan_d
, "Doesn't have cap; " MSG
);
2542 is_client_sendq_empty(local_no_chan
, "Not on common channel; " MSG
);
2543 is_client_sendq_empty(server
, MSG
);
2544 is_client_sendq_empty(server2
, MSG
);
2546 sendto_common_channels_local(local_chan_o
, 0, 0, "Hello %s!", "World");
2547 is_client_sendq_empty(user
, "Not on common channel; " MSG
);
2548 is_client_sendq("@time=" ADVENTURE_TIME
";account=test_o Hello World!" CRLF
, local_chan_o
, "No cap checking; " MSG
);
2549 is_client_sendq("@time=" ADVENTURE_TIME
" Hello World!" CRLF
, local_chan_ov
, "On common channel; " MSG
);
2550 is_client_sendq("@account=test_o Hello World!" CRLF
, local_chan_v
, "On common channel; " MSG
);
2551 is_client_sendq("Hello World!" CRLF
, local_chan_p
, "On common channel; " MSG
);
2552 is_client_sendq("Hello World!" CRLF
, local_chan_d
, "On common channel; " MSG
);
2553 is_client_sendq_empty(local_no_chan
, "Not on common channel; " MSG
);
2554 is_client_sendq_empty(server
, MSG
);
2555 is_client_sendq_empty(server2
, MSG
);
2557 local_no_chan
->localClient
->caps
|= CAP_SERVER_TIME
;
2559 sendto_common_channels_local(local_no_chan
, CAP_MULTI_PREFIX
, 0, "Hello %s!", "World");
2560 is_client_sendq_empty(user
, "Not on common channel; " MSG
);
2561 is_client_sendq_empty(local_chan_o
, "Not on common channel; " MSG
);
2562 is_client_sendq_empty(local_chan_ov
, "Not on common channel; " MSG
);
2563 is_client_sendq_empty(local_chan_p
, "Not on common channel; " MSG
);
2564 is_client_sendq_empty(local_chan_d
, "Not on common channel; " MSG
);
2565 is_client_sendq_empty(local_no_chan
, "Doesn't have cap; " MSG
);
2566 is_client_sendq_empty(server
, MSG
);
2567 is_client_sendq_empty(server2
, MSG
);
2569 sendto_common_channels_local(local_no_chan
, 0, CAP_MULTI_PREFIX
, "Hello %s!", "World");
2570 is_client_sendq_empty(user
, "Not on common channel; " MSG
);
2571 is_client_sendq_empty(local_chan_o
, "Not on common channel; " MSG
);
2572 is_client_sendq_empty(local_chan_ov
, "Not on common channel; " MSG
);
2573 is_client_sendq_empty(local_chan_p
, "Not on common channel; " MSG
);
2574 is_client_sendq_empty(local_chan_d
, "Not on common channel; " MSG
);
2575 is_client_sendq("@time=" ADVENTURE_TIME
" Hello World!" CRLF
, local_no_chan
, "Doesn't have cap; " MSG
);
2576 is_client_sendq_empty(server
, MSG
);
2577 is_client_sendq_empty(server2
, MSG
);
2579 sendto_common_channels_local(local_no_chan
, 0, 0, "Hello %s!", "World");
2580 is_client_sendq_empty(user
, "Not on common channel; " MSG
);
2581 is_client_sendq_empty(local_chan_o
, "Not on common channel; " MSG
);
2582 is_client_sendq_empty(local_chan_ov
, "Not on common channel; " MSG
);
2583 is_client_sendq_empty(local_chan_p
, "Not on common channel; " MSG
);
2584 is_client_sendq_empty(local_chan_d
, "Not on common channel; " MSG
);
2585 is_client_sendq("@time=" ADVENTURE_TIME
" Hello World!" CRLF
, local_no_chan
, "No cap checking; " MSG
);
2586 is_client_sendq_empty(server
, MSG
);
2587 is_client_sendq_empty(server2
, MSG
);
2589 local_no_chan
->localClient
->caps
|= CAP_MULTI_PREFIX
;
2590 local_no_chan
->localClient
->caps
|= CAP_ACCOUNT_TAG
;
2592 sendto_common_channels_local(local_no_chan
, CAP_MULTI_PREFIX
, 0, "Hello %s!", "World");
2593 is_client_sendq_empty(user
, "Not on common channel; " MSG
);
2594 is_client_sendq_empty(local_chan_o
, "Not on common channel; " MSG
);
2595 is_client_sendq_empty(local_chan_ov
, "Not on common channel; " MSG
);
2596 is_client_sendq_empty(local_chan_p
, "Not on common channel; " MSG
);
2597 is_client_sendq_empty(local_chan_d
, "Not on common channel; " MSG
);
2598 is_client_sendq("@time=" ADVENTURE_TIME
";account=test_n Hello World!" CRLF
, local_no_chan
, "Has cap; " MSG
);
2599 is_client_sendq_empty(server
, MSG
);
2600 is_client_sendq_empty(server2
, MSG
);
2602 sendto_common_channels_local(local_no_chan
, 0, CAP_MULTI_PREFIX
, "Hello %s!", "World");
2603 is_client_sendq_empty(user
, "Not on common channel; " MSG
);
2604 is_client_sendq_empty(local_chan_o
, "Not on common channel; " MSG
);
2605 is_client_sendq_empty(local_chan_ov
, "Not on common channel; " MSG
);
2606 is_client_sendq_empty(local_chan_p
, "Not on common channel; " MSG
);
2607 is_client_sendq_empty(local_chan_d
, "Not on common channel; " MSG
);
2608 is_client_sendq_empty(local_no_chan
, "Has cap; " MSG
);
2609 is_client_sendq_empty(server
, MSG
);
2610 is_client_sendq_empty(server2
, MSG
);
2612 sendto_common_channels_local(local_no_chan
, 0, 0, "Hello %s!", "World");
2613 is_client_sendq_empty(user
, "Not on common channel; " MSG
);
2614 is_client_sendq_empty(local_chan_o
, "Not on common channel; " MSG
);
2615 is_client_sendq_empty(local_chan_ov
, "Not on common channel; " MSG
);
2616 is_client_sendq_empty(local_chan_p
, "Not on common channel; " MSG
);
2617 is_client_sendq_empty(local_chan_d
, "Not on common channel; " MSG
);
2618 is_client_sendq("@time=" ADVENTURE_TIME
";account=test_n Hello World!" CRLF
, local_no_chan
, "No cap checking; " MSG
);
2619 is_client_sendq_empty(server
, MSG
);
2620 is_client_sendq_empty(server2
, MSG
);
2622 local_no_chan
->localClient
->caps
&= ~CAP_SERVER_TIME
;
2624 sendto_common_channels_local(local_no_chan
, CAP_MULTI_PREFIX
, 0, "Hello %s!", "World");
2625 is_client_sendq_empty(user
, "Not on common channel; " MSG
);
2626 is_client_sendq_empty(local_chan_o
, "Not on common channel; " MSG
);
2627 is_client_sendq_empty(local_chan_ov
, "Not on common channel; " MSG
);
2628 is_client_sendq_empty(local_chan_p
, "Not on common channel; " MSG
);
2629 is_client_sendq_empty(local_chan_d
, "Not on common channel; " MSG
);
2630 is_client_sendq("@account=test_n Hello World!" CRLF
, local_no_chan
, "Has cap; " MSG
);
2631 is_client_sendq_empty(server
, MSG
);
2632 is_client_sendq_empty(server2
, MSG
);
2634 sendto_common_channels_local(local_no_chan
, 0, CAP_MULTI_PREFIX
, "Hello %s!", "World");
2635 is_client_sendq_empty(user
, "Not on common channel; " MSG
);
2636 is_client_sendq_empty(local_chan_o
, "Not on common channel; " MSG
);
2637 is_client_sendq_empty(local_chan_ov
, "Not on common channel; " MSG
);
2638 is_client_sendq_empty(local_chan_p
, "Not on common channel; " MSG
);
2639 is_client_sendq_empty(local_chan_d
, "Not on common channel; " MSG
);
2640 is_client_sendq_empty(local_no_chan
, "Has cap; " MSG
);
2641 is_client_sendq_empty(server
, MSG
);
2642 is_client_sendq_empty(server2
, MSG
);
2644 sendto_common_channels_local(local_no_chan
, 0, 0, "Hello %s!", "World");
2645 is_client_sendq_empty(user
, "Not on common channel; " MSG
);
2646 is_client_sendq_empty(local_chan_o
, "Not on common channel; " MSG
);
2647 is_client_sendq_empty(local_chan_ov
, "Not on common channel; " MSG
);
2648 is_client_sendq_empty(local_chan_p
, "Not on common channel; " MSG
);
2649 is_client_sendq_empty(local_chan_d
, "Not on common channel; " MSG
);
2650 is_client_sendq("@account=test_n Hello World!" CRLF
, local_no_chan
, "No cap checking; " MSG
);
2651 is_client_sendq_empty(server
, MSG
);
2652 is_client_sendq_empty(server2
, MSG
);
2657 static void sendto_common_channels_local_butone1(void)
2661 local_chan_o
->localClient
->caps
|= CAP_MULTI_PREFIX
;
2662 local_chan_v
->localClient
->caps
|= CAP_MULTI_PREFIX
;
2664 sendto_common_channels_local_butone(local_chan_o
, CAP_MULTI_PREFIX
, 0, "Hello %s!", "World");
2665 is_client_sendq_empty(user
, "Not on common channel; " MSG
);
2666 is_client_sendq_empty(local_chan_o
, "Is the one (neo); " MSG
);
2667 is_client_sendq_empty(local_chan_ov
, "Doesn't have cap; " MSG
);
2668 is_client_sendq("Hello World!" CRLF
, local_chan_v
, "Has cap; " MSG
);
2669 is_client_sendq_empty(local_chan_p
, "Doesn't have cap; " MSG
);
2670 is_client_sendq_empty(local_chan_d
, "Doesn't have cap; " MSG
);
2671 is_client_sendq_empty(local_no_chan
, "Not on common channel; " MSG
);
2672 is_client_sendq_empty(server
, MSG
);
2673 is_client_sendq_empty(server2
, MSG
);
2675 sendto_common_channels_local_butone(local_chan_o
, 0, CAP_MULTI_PREFIX
, "Hello %s!", "World");
2676 is_client_sendq_empty(user
, "Not on common channel; " MSG
);
2677 is_client_sendq_empty(local_chan_o
, "Is the one (neo); " MSG
);
2678 is_client_sendq("Hello World!" CRLF
, local_chan_ov
, "Doesn't have cap; " MSG
);
2679 is_client_sendq_empty(local_chan_v
, "Has cap; " MSG
);
2680 is_client_sendq("Hello World!" CRLF
, local_chan_p
, "Doesn't have cap; " MSG
);
2681 is_client_sendq("Hello World!" CRLF
, local_chan_d
, "Doesn't have cap; " MSG
);
2682 is_client_sendq_empty(local_no_chan
, "Not on common channel; " MSG
);
2683 is_client_sendq_empty(server
, MSG
);
2684 is_client_sendq_empty(server2
, MSG
);
2686 sendto_common_channels_local_butone(local_chan_o
, 0, 0, "Hello %s!", "World");
2687 is_client_sendq_empty(user
, "Not on common channel; " MSG
);
2688 is_client_sendq_empty(local_chan_o
, "Is the one (neo); " MSG
);
2689 is_client_sendq("Hello World!" CRLF
, local_chan_ov
, "On common channel; " MSG
);
2690 is_client_sendq("Hello World!" CRLF
, local_chan_v
, "On common channel; " MSG
);
2691 is_client_sendq("Hello World!" CRLF
, local_chan_p
, "On common channel; " MSG
);
2692 is_client_sendq("Hello World!" CRLF
, local_chan_d
, "On common channel; " MSG
);
2693 is_client_sendq_empty(local_no_chan
, "Not on common channel; " MSG
);
2694 is_client_sendq_empty(server
, MSG
);
2695 is_client_sendq_empty(server2
, MSG
);
2697 sendto_common_channels_local_butone(local_no_chan
, CAP_MULTI_PREFIX
, 0, "Hello %s!", "World");
2698 is_client_sendq_empty(user
, "Not on common channel; " MSG
);
2699 is_client_sendq_empty(local_chan_o
, "Not on common channel; " MSG
);
2700 is_client_sendq_empty(local_chan_ov
, "Not on common channel; " MSG
);
2701 is_client_sendq_empty(local_chan_p
, "Not on common channel; " MSG
);
2702 is_client_sendq_empty(local_chan_d
, "Not on common channel; " MSG
);
2703 is_client_sendq_empty(local_no_chan
, "Is the one (neo); " MSG
);
2704 is_client_sendq_empty(server
, MSG
);
2705 is_client_sendq_empty(server2
, MSG
);
2707 sendto_common_channels_local_butone(local_no_chan
, 0, CAP_MULTI_PREFIX
, "Hello %s!", "World");
2708 is_client_sendq_empty(user
, "Not on common channel; " MSG
);
2709 is_client_sendq_empty(local_chan_o
, "Not on common channel; " MSG
);
2710 is_client_sendq_empty(local_chan_ov
, "Not on common channel; " MSG
);
2711 is_client_sendq_empty(local_chan_p
, "Not on common channel; " MSG
);
2712 is_client_sendq_empty(local_chan_d
, "Not on common channel; " MSG
);
2713 is_client_sendq_empty(local_no_chan
, "Is the one (neo); " MSG
);
2714 is_client_sendq_empty(server
, MSG
);
2715 is_client_sendq_empty(server2
, MSG
);
2717 sendto_common_channels_local_butone(local_no_chan
, 0, 0, "Hello %s!", "World");
2718 is_client_sendq_empty(user
, "Not on common channel; " MSG
);
2719 is_client_sendq_empty(local_chan_o
, "Not on common channel; " MSG
);
2720 is_client_sendq_empty(local_chan_ov
, "Not on common channel; " MSG
);
2721 is_client_sendq_empty(local_chan_p
, "Not on common channel; " MSG
);
2722 is_client_sendq_empty(local_chan_d
, "Not on common channel; " MSG
);
2723 is_client_sendq_empty(local_no_chan
, "Is the one (neo); " MSG
);
2724 is_client_sendq_empty(server
, MSG
);
2725 is_client_sendq_empty(server2
, MSG
);
2727 local_no_chan
->localClient
->caps
|= CAP_MULTI_PREFIX
;
2729 sendto_common_channels_local_butone(local_no_chan
, CAP_MULTI_PREFIX
, 0, "Hello %s!", "World");
2730 is_client_sendq_empty(user
, "Not on common channel; " MSG
);
2731 is_client_sendq_empty(local_chan_o
, "Not on common channel; " MSG
);
2732 is_client_sendq_empty(local_chan_ov
, "Not on common channel; " MSG
);
2733 is_client_sendq_empty(local_chan_p
, "Not on common channel; " MSG
);
2734 is_client_sendq_empty(local_chan_d
, "Not on common channel; " MSG
);
2735 is_client_sendq_empty(local_no_chan
, "Is the one (neo); " MSG
);
2736 is_client_sendq_empty(server
, MSG
);
2737 is_client_sendq_empty(server2
, MSG
);
2739 sendto_common_channels_local_butone(local_no_chan
, 0, CAP_MULTI_PREFIX
, "Hello %s!", "World");
2740 is_client_sendq_empty(user
, "Not on common channel; " MSG
);
2741 is_client_sendq_empty(local_chan_o
, "Not on common channel; " MSG
);
2742 is_client_sendq_empty(local_chan_ov
, "Not on common channel; " MSG
);
2743 is_client_sendq_empty(local_chan_p
, "Not on common channel; " MSG
);
2744 is_client_sendq_empty(local_chan_d
, "Not on common channel; " MSG
);
2745 is_client_sendq_empty(local_no_chan
, "Is the one (neo); " MSG
);
2746 is_client_sendq_empty(server
, MSG
);
2747 is_client_sendq_empty(server2
, MSG
);
2749 sendto_common_channels_local_butone(local_no_chan
, 0, 0, "Hello %s!", "World");
2750 is_client_sendq_empty(user
, "Not on common channel; " MSG
);
2751 is_client_sendq_empty(local_chan_o
, "Not on common channel; " MSG
);
2752 is_client_sendq_empty(local_chan_ov
, "Not on common channel; " MSG
);
2753 is_client_sendq_empty(local_chan_p
, "Not on common channel; " MSG
);
2754 is_client_sendq_empty(local_chan_d
, "Not on common channel; " MSG
);
2755 is_client_sendq_empty(local_no_chan
, "Is the one (neo); " MSG
);
2756 is_client_sendq_empty(server
, MSG
);
2757 is_client_sendq_empty(server2
, MSG
);
2762 static void sendto_common_channels_local_butone1__tags(void)
2766 local_chan_o
->localClient
->caps
|= CAP_MULTI_PREFIX
;
2767 local_chan_v
->localClient
->caps
|= CAP_MULTI_PREFIX
;
2769 strcpy(local_chan_o
->user
->suser
, "test_o");
2770 strcpy(local_no_chan
->user
->suser
, "test_n");
2771 local_chan_o
->localClient
->caps
|= CAP_ACCOUNT_TAG
;
2772 local_chan_o
->localClient
->caps
|= CAP_SERVER_TIME
;
2773 local_chan_ov
->localClient
->caps
|= CAP_SERVER_TIME
;
2774 local_chan_v
->localClient
->caps
|= CAP_ACCOUNT_TAG
;
2776 sendto_common_channels_local_butone(local_chan_o
, CAP_MULTI_PREFIX
, 0, "Hello %s!", "World");
2777 is_client_sendq_empty(user
, "Not on common channel; " MSG
);
2778 is_client_sendq_empty(local_chan_o
, "Is the one (neo); " MSG
);
2779 is_client_sendq_empty(local_chan_ov
, "Doesn't have cap; " MSG
);
2780 is_client_sendq("@account=test_o Hello World!" CRLF
, local_chan_v
, "Has cap; " MSG
);
2781 is_client_sendq_empty(local_chan_p
, "Doesn't have cap; " MSG
);
2782 is_client_sendq_empty(local_chan_d
, "Doesn't have cap; " MSG
);
2783 is_client_sendq_empty(local_no_chan
, "Not on common channel; " MSG
);
2784 is_client_sendq_empty(server
, MSG
);
2785 is_client_sendq_empty(server2
, MSG
);
2787 sendto_common_channels_local_butone(local_chan_o
, 0, CAP_MULTI_PREFIX
, "Hello %s!", "World");
2788 is_client_sendq_empty(user
, "Not on common channel; " MSG
);
2789 is_client_sendq_empty(local_chan_o
, "Is the one (neo); " MSG
);
2790 is_client_sendq("@time=" ADVENTURE_TIME
" Hello World!" CRLF
, local_chan_ov
, "Doesn't have cap; " MSG
);
2791 is_client_sendq_empty(local_chan_v
, "Has cap; " MSG
);
2792 is_client_sendq("Hello World!" CRLF
, local_chan_p
, "Doesn't have cap; " MSG
);
2793 is_client_sendq("Hello World!" CRLF
, local_chan_d
, "Doesn't have cap; " MSG
);
2794 is_client_sendq_empty(local_no_chan
, "Not on common channel; " MSG
);
2795 is_client_sendq_empty(server
, MSG
);
2796 is_client_sendq_empty(server2
, MSG
);
2798 sendto_common_channels_local_butone(local_chan_o
, 0, 0, "Hello %s!", "World");
2799 is_client_sendq_empty(user
, "Not on common channel; " MSG
);
2800 is_client_sendq_empty(local_chan_o
, "Is the one (neo); " MSG
);
2801 is_client_sendq("@time=" ADVENTURE_TIME
" Hello World!" CRLF
, local_chan_ov
, "On common channel; " MSG
);
2802 is_client_sendq("@account=test_o Hello World!" CRLF
, local_chan_v
, "On common channel; " MSG
);
2803 is_client_sendq("Hello World!" CRLF
, local_chan_p
, "On common channel; " MSG
);
2804 is_client_sendq("Hello World!" CRLF
, local_chan_d
, "On common channel; " MSG
);
2805 is_client_sendq_empty(local_no_chan
, "Not on common channel; " MSG
);
2806 is_client_sendq_empty(server
, MSG
);
2807 is_client_sendq_empty(server2
, MSG
);
2809 local_no_chan
->localClient
->caps
|= CAP_SERVER_TIME
;
2811 sendto_common_channels_local_butone(local_no_chan
, CAP_MULTI_PREFIX
, 0, "Hello %s!", "World");
2812 is_client_sendq_empty(user
, "Not on common channel; " MSG
);
2813 is_client_sendq_empty(local_chan_o
, "Not on common channel; " MSG
);
2814 is_client_sendq_empty(local_chan_ov
, "Not on common channel; " MSG
);
2815 is_client_sendq_empty(local_chan_p
, "Not on common channel; " MSG
);
2816 is_client_sendq_empty(local_chan_d
, "Not on common channel; " MSG
);
2817 is_client_sendq_empty(local_no_chan
, "Is the one (neo); " MSG
);
2818 is_client_sendq_empty(server
, MSG
);
2819 is_client_sendq_empty(server2
, MSG
);
2821 sendto_common_channels_local_butone(local_no_chan
, 0, CAP_MULTI_PREFIX
, "Hello %s!", "World");
2822 is_client_sendq_empty(user
, "Not on common channel; " MSG
);
2823 is_client_sendq_empty(local_chan_o
, "Not on common channel; " MSG
);
2824 is_client_sendq_empty(local_chan_ov
, "Not on common channel; " MSG
);
2825 is_client_sendq_empty(local_chan_p
, "Not on common channel; " MSG
);
2826 is_client_sendq_empty(local_chan_d
, "Not on common channel; " MSG
);
2827 is_client_sendq_empty(local_no_chan
, "Is the one (neo); " MSG
);
2828 is_client_sendq_empty(server
, MSG
);
2829 is_client_sendq_empty(server2
, MSG
);
2831 sendto_common_channels_local_butone(local_no_chan
, 0, 0, "Hello %s!", "World");
2832 is_client_sendq_empty(user
, "Not on common channel; " MSG
);
2833 is_client_sendq_empty(local_chan_o
, "Not on common channel; " MSG
);
2834 is_client_sendq_empty(local_chan_ov
, "Not on common channel; " MSG
);
2835 is_client_sendq_empty(local_chan_p
, "Not on common channel; " MSG
);
2836 is_client_sendq_empty(local_chan_d
, "Not on common channel; " MSG
);
2837 is_client_sendq_empty(local_no_chan
, "Is the one (neo); " MSG
);
2838 is_client_sendq_empty(server
, MSG
);
2839 is_client_sendq_empty(server2
, MSG
);
2841 local_no_chan
->localClient
->caps
|= CAP_MULTI_PREFIX
;
2842 local_no_chan
->localClient
->caps
|= CAP_ACCOUNT_TAG
;
2844 sendto_common_channels_local_butone(local_no_chan
, CAP_MULTI_PREFIX
, 0, "Hello %s!", "World");
2845 is_client_sendq_empty(user
, "Not on common channel; " MSG
);
2846 is_client_sendq_empty(local_chan_o
, "Not on common channel; " MSG
);
2847 is_client_sendq_empty(local_chan_ov
, "Not on common channel; " MSG
);
2848 is_client_sendq_empty(local_chan_p
, "Not on common channel; " MSG
);
2849 is_client_sendq_empty(local_chan_d
, "Not on common channel; " MSG
);
2850 is_client_sendq_empty(local_no_chan
, "Is the one (neo); " MSG
);
2851 is_client_sendq_empty(server
, MSG
);
2852 is_client_sendq_empty(server2
, MSG
);
2854 sendto_common_channels_local_butone(local_no_chan
, 0, CAP_MULTI_PREFIX
, "Hello %s!", "World");
2855 is_client_sendq_empty(user
, "Not on common channel; " MSG
);
2856 is_client_sendq_empty(local_chan_o
, "Not on common channel; " MSG
);
2857 is_client_sendq_empty(local_chan_ov
, "Not on common channel; " MSG
);
2858 is_client_sendq_empty(local_chan_p
, "Not on common channel; " MSG
);
2859 is_client_sendq_empty(local_chan_d
, "Not on common channel; " MSG
);
2860 is_client_sendq_empty(local_no_chan
, "Is the one (neo); " MSG
);
2861 is_client_sendq_empty(server
, MSG
);
2862 is_client_sendq_empty(server2
, MSG
);
2864 sendto_common_channels_local_butone(local_no_chan
, 0, 0, "Hello %s!", "World");
2865 is_client_sendq_empty(user
, "Not on common channel; " MSG
);
2866 is_client_sendq_empty(local_chan_o
, "Not on common channel; " MSG
);
2867 is_client_sendq_empty(local_chan_ov
, "Not on common channel; " MSG
);
2868 is_client_sendq_empty(local_chan_p
, "Not on common channel; " MSG
);
2869 is_client_sendq_empty(local_chan_d
, "Not on common channel; " MSG
);
2870 is_client_sendq_empty(local_no_chan
, "Is the one (neo); " MSG
);
2871 is_client_sendq_empty(server
, MSG
);
2872 is_client_sendq_empty(server2
, MSG
);
2874 local_no_chan
->localClient
->caps
&= ~CAP_SERVER_TIME
;
2876 sendto_common_channels_local_butone(local_no_chan
, CAP_MULTI_PREFIX
, 0, "Hello %s!", "World");
2877 is_client_sendq_empty(user
, "Not on common channel; " MSG
);
2878 is_client_sendq_empty(local_chan_o
, "Not on common channel; " MSG
);
2879 is_client_sendq_empty(local_chan_ov
, "Not on common channel; " MSG
);
2880 is_client_sendq_empty(local_chan_p
, "Not on common channel; " MSG
);
2881 is_client_sendq_empty(local_chan_d
, "Not on common channel; " MSG
);
2882 is_client_sendq_empty(local_no_chan
, "Is the one (neo); " MSG
);
2883 is_client_sendq_empty(server
, MSG
);
2884 is_client_sendq_empty(server2
, MSG
);
2886 sendto_common_channels_local_butone(local_no_chan
, 0, CAP_MULTI_PREFIX
, "Hello %s!", "World");
2887 is_client_sendq_empty(user
, "Not on common channel; " MSG
);
2888 is_client_sendq_empty(local_chan_o
, "Not on common channel; " MSG
);
2889 is_client_sendq_empty(local_chan_ov
, "Not on common channel; " MSG
);
2890 is_client_sendq_empty(local_chan_p
, "Not on common channel; " MSG
);
2891 is_client_sendq_empty(local_chan_d
, "Not on common channel; " MSG
);
2892 is_client_sendq_empty(local_no_chan
, "Is the one (neo); " MSG
);
2893 is_client_sendq_empty(server
, MSG
);
2894 is_client_sendq_empty(server2
, MSG
);
2896 sendto_common_channels_local_butone(local_no_chan
, 0, 0, "Hello %s!", "World");
2897 is_client_sendq_empty(user
, "Not on common channel; " MSG
);
2898 is_client_sendq_empty(local_chan_o
, "Not on common channel; " MSG
);
2899 is_client_sendq_empty(local_chan_ov
, "Not on common channel; " MSG
);
2900 is_client_sendq_empty(local_chan_p
, "Not on common channel; " MSG
);
2901 is_client_sendq_empty(local_chan_d
, "Not on common channel; " MSG
);
2902 is_client_sendq_empty(local_no_chan
, "Is the one (neo); " MSG
);
2903 is_client_sendq_empty(server
, MSG
);
2904 is_client_sendq_empty(server2
, MSG
);
2909 static void sendto_match_butone__host(void)
2913 // This function does not support TS5...
2917 sendto_match_butone(NULL
, user
, "*.test", MATCH_HOST
, "TEST Hello %s!", "World");
2918 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, user
, "Host matches; " MSG
);
2919 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_o
, "Host matches; " MSG
);
2920 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_ov
, "Host matches; " MSG
);
2921 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_v
, "Host matches; " MSG
);
2922 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_p
, "Host matches; " MSG
);
2923 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_d
, "Host matches; " MSG
);
2924 is_client_sendq(":" TEST_ID
" TEST Hello World!" CRLF
, server
, "Is a server; " MSG
);
2925 is_client_sendq(":" TEST_ID
" TEST Hello World!" CRLF
, server2
, "Is a server; " MSG
);
2926 is_client_sendq(":" TEST_ID
" TEST Hello World!" CRLF
, server3
, "Is a server; " MSG
);
2928 sendto_match_butone(NULL
, user
, "*.invalid", MATCH_HOST
, "TEST Hello %s!", "World");
2929 is_client_sendq_empty(user
, "Host doesn't match; " MSG
);
2930 is_client_sendq_empty(local_chan_o
, "Host doesn't match; " MSG
);
2931 is_client_sendq_empty(local_chan_ov
, "Host doesn't match; " MSG
);
2932 is_client_sendq_empty(local_chan_v
, "Host doesn't match; " MSG
);
2933 is_client_sendq_empty(local_chan_p
, "Host doesn't match; " MSG
);
2934 is_client_sendq_empty(local_chan_d
, "Host doesn't match; " MSG
);
2935 is_client_sendq(":" TEST_ID
" TEST Hello World!" CRLF
, server
, "Is a server; " MSG
);
2936 is_client_sendq(":" TEST_ID
" TEST Hello World!" CRLF
, server2
, "Is a server; " MSG
);
2937 is_client_sendq(":" TEST_ID
" TEST Hello World!" CRLF
, server3
, "Is a server; " MSG
);
2939 sendto_match_butone(server
, user
, "*.test", MATCH_HOST
, "TEST Hello %s!", "World");
2940 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, user
, "Host matches; " MSG
);
2941 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_o
, "Host matches; " MSG
);
2942 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_ov
, "Host matches; " MSG
);
2943 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_v
, "Host matches; " MSG
);
2944 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_p
, "Host matches; " MSG
);
2945 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_d
, "Host matches; " MSG
);
2946 is_client_sendq_empty(server
, "Is the one (neo); " MSG
);
2947 is_client_sendq(":" TEST_ID
" TEST Hello World!" CRLF
, server2
, "Is a server; " MSG
);
2948 is_client_sendq(":" TEST_ID
" TEST Hello World!" CRLF
, server3
, "Is a server; " MSG
);
2950 sendto_match_butone(server
, user
, "*.invalid", MATCH_HOST
, "TEST Hello %s!", "World");
2951 is_client_sendq_empty(user
, "Host doesn't match; " MSG
);
2952 is_client_sendq_empty(local_chan_o
, "Host doesn't match; " MSG
);
2953 is_client_sendq_empty(local_chan_ov
, "Host doesn't match; " MSG
);
2954 is_client_sendq_empty(local_chan_v
, "Host doesn't match; " MSG
);
2955 is_client_sendq_empty(local_chan_p
, "Host doesn't match; " MSG
);
2956 is_client_sendq_empty(local_chan_d
, "Host doesn't match; " MSG
);
2957 is_client_sendq_empty(server
, "Is the one (neo); " MSG
);
2958 is_client_sendq(":" TEST_ID
" TEST Hello World!" CRLF
, server2
, "Is a server; " MSG
);
2959 is_client_sendq(":" TEST_ID
" TEST Hello World!" CRLF
, server3
, "Is a server; " MSG
);
2962 sendto_match_butone(NULL
, remote
, "*.test", MATCH_HOST
, "TEST Hello %s!", "World");
2963 is_client_sendq(":" TEST_REMOTE_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, user
, "Host matches; " MSG
);
2964 is_client_sendq(":" TEST_REMOTE_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_o
, "Host matches; " MSG
);
2965 is_client_sendq(":" TEST_REMOTE_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_ov
, "Host matches; " MSG
);
2966 is_client_sendq(":" TEST_REMOTE_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_v
, "Host matches; " MSG
);
2967 is_client_sendq(":" TEST_REMOTE_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_p
, "Host matches; " MSG
);
2968 is_client_sendq(":" TEST_REMOTE_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_d
, "Host matches; " MSG
);
2969 is_client_sendq(":" TEST_REMOTE_ID
" TEST Hello World!" CRLF
, server
, "Is a server; " MSG
);
2970 is_client_sendq(":" TEST_REMOTE_ID
" TEST Hello World!" CRLF
, server2
, "Is a server; " MSG
);
2971 is_client_sendq(":" TEST_REMOTE_ID
" TEST Hello World!" CRLF
, server3
, "Is a server; " MSG
);
2973 sendto_match_butone(NULL
, remote
, "*.invalid", MATCH_HOST
, "TEST Hello %s!", "World");
2974 is_client_sendq_empty(user
, "Host doesn't match; " MSG
);
2975 is_client_sendq_empty(local_chan_o
, "Host doesn't match; " MSG
);
2976 is_client_sendq_empty(local_chan_ov
, "Host doesn't match; " MSG
);
2977 is_client_sendq_empty(local_chan_v
, "Host doesn't match; " MSG
);
2978 is_client_sendq_empty(local_chan_p
, "Host doesn't match; " MSG
);
2979 is_client_sendq_empty(local_chan_d
, "Host doesn't match; " MSG
);
2980 is_client_sendq(":" TEST_REMOTE_ID
" TEST Hello World!" CRLF
, server
, "Is a server; " MSG
);
2981 is_client_sendq(":" TEST_REMOTE_ID
" TEST Hello World!" CRLF
, server2
, "Is a server; " MSG
);
2982 is_client_sendq(":" TEST_REMOTE_ID
" TEST Hello World!" CRLF
, server3
, "Is a server; " MSG
);
2984 sendto_match_butone(server
, remote
, "*.test", MATCH_HOST
, "TEST Hello %s!", "World");
2985 is_client_sendq(":" TEST_REMOTE_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, user
, "Host matches; " MSG
);
2986 is_client_sendq(":" TEST_REMOTE_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_o
, "Host matches; " MSG
);
2987 is_client_sendq(":" TEST_REMOTE_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_ov
, "Host matches; " MSG
);
2988 is_client_sendq(":" TEST_REMOTE_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_v
, "Host matches; " MSG
);
2989 is_client_sendq(":" TEST_REMOTE_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_p
, "Host matches; " MSG
);
2990 is_client_sendq(":" TEST_REMOTE_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_d
, "Host matches; " MSG
);
2991 is_client_sendq_empty(server
, "Is the one (neo); " MSG
);
2992 is_client_sendq(":" TEST_REMOTE_ID
" TEST Hello World!" CRLF
, server2
, "Is a server; " MSG
);
2993 is_client_sendq(":" TEST_REMOTE_ID
" TEST Hello World!" CRLF
, server3
, "Is a server; " MSG
);
2995 sendto_match_butone(server
, remote
, "*.invalid", MATCH_HOST
, "TEST Hello %s!", "World");
2996 is_client_sendq_empty(user
, "Host doesn't match; " MSG
);
2997 is_client_sendq_empty(local_chan_o
, "Host doesn't match; " MSG
);
2998 is_client_sendq_empty(local_chan_ov
, "Host doesn't match; " MSG
);
2999 is_client_sendq_empty(local_chan_v
, "Host doesn't match; " MSG
);
3000 is_client_sendq_empty(local_chan_p
, "Host doesn't match; " MSG
);
3001 is_client_sendq_empty(local_chan_d
, "Host doesn't match; " MSG
);
3002 is_client_sendq_empty(server
, "Is the one (neo); " MSG
);
3003 is_client_sendq(":" TEST_REMOTE_ID
" TEST Hello World!" CRLF
, server2
, "Is a server; " MSG
);
3004 is_client_sendq(":" TEST_REMOTE_ID
" TEST Hello World!" CRLF
, server3
, "Is a server; " MSG
);
3009 static void sendto_match_butone__host__tags(void)
3013 strcpy(user
->user
->suser
, "test");
3014 strcpy(remote
->user
->suser
, "rtest");
3015 local_chan_o
->localClient
->caps
|= CAP_ACCOUNT_TAG
;
3016 local_chan_o
->localClient
->caps
|= CAP_SERVER_TIME
;
3017 local_chan_ov
->localClient
->caps
|= CAP_SERVER_TIME
;
3018 local_chan_v
->localClient
->caps
|= CAP_ACCOUNT_TAG
;
3020 // This function does not support TS5...
3024 sendto_match_butone(NULL
, user
, "*.test", MATCH_HOST
, "TEST Hello %s!", "World");
3025 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, user
, "Host matches; " MSG
);
3026 is_client_sendq("@time=" ADVENTURE_TIME
";account=test :" TEST_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_o
, "Host matches; " MSG
);
3027 is_client_sendq("@time=" ADVENTURE_TIME
" :" TEST_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_ov
, "Host matches; " MSG
);
3028 is_client_sendq("@account=test :" TEST_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_v
, "Host matches; " MSG
);
3029 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_p
, "Host matches; " MSG
);
3030 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_d
, "Host matches; " MSG
);
3031 is_client_sendq(":" TEST_ID
" TEST Hello World!" CRLF
, server
, "Is a server; " MSG
);
3032 is_client_sendq(":" TEST_ID
" TEST Hello World!" CRLF
, server2
, "Is a server; " MSG
);
3033 is_client_sendq(":" TEST_ID
" TEST Hello World!" CRLF
, server3
, "Is a server; " MSG
);
3035 sendto_match_butone(NULL
, user
, "*.invalid", MATCH_HOST
, "TEST Hello %s!", "World");
3036 is_client_sendq_empty(user
, "Host doesn't match; " MSG
);
3037 is_client_sendq_empty(local_chan_o
, "Host doesn't match; " MSG
);
3038 is_client_sendq_empty(local_chan_ov
, "Host doesn't match; " MSG
);
3039 is_client_sendq_empty(local_chan_v
, "Host doesn't match; " MSG
);
3040 is_client_sendq_empty(local_chan_p
, "Host doesn't match; " MSG
);
3041 is_client_sendq_empty(local_chan_d
, "Host doesn't match; " MSG
);
3042 is_client_sendq(":" TEST_ID
" TEST Hello World!" CRLF
, server
, "Is a server; " MSG
);
3043 is_client_sendq(":" TEST_ID
" TEST Hello World!" CRLF
, server2
, "Is a server; " MSG
);
3044 is_client_sendq(":" TEST_ID
" TEST Hello World!" CRLF
, server3
, "Is a server; " MSG
);
3046 sendto_match_butone(server
, user
, "*.test", MATCH_HOST
, "TEST Hello %s!", "World");
3047 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, user
, "Host matches; " MSG
);
3048 is_client_sendq("@time=" ADVENTURE_TIME
";account=test :" TEST_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_o
, "Host matches; " MSG
);
3049 is_client_sendq("@time=" ADVENTURE_TIME
" :" TEST_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_ov
, "Host matches; " MSG
);
3050 is_client_sendq("@account=test :" TEST_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_v
, "Host matches; " MSG
);
3051 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_p
, "Host matches; " MSG
);
3052 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_d
, "Host matches; " MSG
);
3053 is_client_sendq_empty(server
, "Is the one (neo); " MSG
);
3054 is_client_sendq(":" TEST_ID
" TEST Hello World!" CRLF
, server2
, "Is a server; " MSG
);
3055 is_client_sendq(":" TEST_ID
" TEST Hello World!" CRLF
, server3
, "Is a server; " MSG
);
3057 sendto_match_butone(server
, user
, "*.invalid", MATCH_HOST
, "TEST Hello %s!", "World");
3058 is_client_sendq_empty(user
, "Host doesn't match; " MSG
);
3059 is_client_sendq_empty(local_chan_o
, "Host doesn't match; " MSG
);
3060 is_client_sendq_empty(local_chan_ov
, "Host doesn't match; " MSG
);
3061 is_client_sendq_empty(local_chan_v
, "Host doesn't match; " MSG
);
3062 is_client_sendq_empty(local_chan_p
, "Host doesn't match; " MSG
);
3063 is_client_sendq_empty(local_chan_d
, "Host doesn't match; " MSG
);
3064 is_client_sendq_empty(server
, "Is the one (neo); " MSG
);
3065 is_client_sendq(":" TEST_ID
" TEST Hello World!" CRLF
, server2
, "Is a server; " MSG
);
3066 is_client_sendq(":" TEST_ID
" TEST Hello World!" CRLF
, server3
, "Is a server; " MSG
);
3069 sendto_match_butone(NULL
, remote
, "*.test", MATCH_HOST
, "TEST Hello %s!", "World");
3070 is_client_sendq(":" TEST_REMOTE_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, user
, "Host matches; " MSG
);
3071 is_client_sendq("@time=" ADVENTURE_TIME
";account=rtest :" TEST_REMOTE_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_o
, "Host matches; " MSG
);
3072 is_client_sendq("@time=" ADVENTURE_TIME
" :" TEST_REMOTE_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_ov
, "Host matches; " MSG
);
3073 is_client_sendq("@account=rtest :" TEST_REMOTE_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_v
, "Host matches; " MSG
);
3074 is_client_sendq(":" TEST_REMOTE_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_p
, "Host matches; " MSG
);
3075 is_client_sendq(":" TEST_REMOTE_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_d
, "Host matches; " MSG
);
3076 is_client_sendq(":" TEST_REMOTE_ID
" TEST Hello World!" CRLF
, server
, "Is a server; " MSG
);
3077 is_client_sendq(":" TEST_REMOTE_ID
" TEST Hello World!" CRLF
, server2
, "Is a server; " MSG
);
3078 is_client_sendq(":" TEST_REMOTE_ID
" TEST Hello World!" CRLF
, server3
, "Is a server; " MSG
);
3080 sendto_match_butone(NULL
, remote
, "*.invalid", MATCH_HOST
, "TEST Hello %s!", "World");
3081 is_client_sendq_empty(user
, "Host doesn't match; " MSG
);
3082 is_client_sendq_empty(local_chan_o
, "Host doesn't match; " MSG
);
3083 is_client_sendq_empty(local_chan_ov
, "Host doesn't match; " MSG
);
3084 is_client_sendq_empty(local_chan_v
, "Host doesn't match; " MSG
);
3085 is_client_sendq_empty(local_chan_p
, "Host doesn't match; " MSG
);
3086 is_client_sendq_empty(local_chan_d
, "Host doesn't match; " MSG
);
3087 is_client_sendq(":" TEST_REMOTE_ID
" TEST Hello World!" CRLF
, server
, "Is a server; " MSG
);
3088 is_client_sendq(":" TEST_REMOTE_ID
" TEST Hello World!" CRLF
, server2
, "Is a server; " MSG
);
3089 is_client_sendq(":" TEST_REMOTE_ID
" TEST Hello World!" CRLF
, server3
, "Is a server; " MSG
);
3091 sendto_match_butone(server
, remote
, "*.test", MATCH_HOST
, "TEST Hello %s!", "World");
3092 is_client_sendq(":" TEST_REMOTE_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, user
, "Host matches; " MSG
);
3093 is_client_sendq("@time=" ADVENTURE_TIME
";account=rtest :" TEST_REMOTE_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_o
, "Host matches; " MSG
);
3094 is_client_sendq("@time=" ADVENTURE_TIME
" :" TEST_REMOTE_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_ov
, "Host matches; " MSG
);
3095 is_client_sendq("@account=rtest :" TEST_REMOTE_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_v
, "Host matches; " MSG
);
3096 is_client_sendq(":" TEST_REMOTE_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_p
, "Host matches; " MSG
);
3097 is_client_sendq(":" TEST_REMOTE_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_d
, "Host matches; " MSG
);
3098 is_client_sendq_empty(server
, "Is the one (neo); " MSG
);
3099 is_client_sendq(":" TEST_REMOTE_ID
" TEST Hello World!" CRLF
, server2
, "Is a server; " MSG
);
3100 is_client_sendq(":" TEST_REMOTE_ID
" TEST Hello World!" CRLF
, server3
, "Is a server; " MSG
);
3102 sendto_match_butone(server
, remote
, "*.invalid", MATCH_HOST
, "TEST Hello %s!", "World");
3103 is_client_sendq_empty(user
, "Host doesn't match; " MSG
);
3104 is_client_sendq_empty(local_chan_o
, "Host doesn't match; " MSG
);
3105 is_client_sendq_empty(local_chan_ov
, "Host doesn't match; " MSG
);
3106 is_client_sendq_empty(local_chan_v
, "Host doesn't match; " MSG
);
3107 is_client_sendq_empty(local_chan_p
, "Host doesn't match; " MSG
);
3108 is_client_sendq_empty(local_chan_d
, "Host doesn't match; " MSG
);
3109 is_client_sendq_empty(server
, "Is the one (neo); " MSG
);
3110 is_client_sendq(":" TEST_REMOTE_ID
" TEST Hello World!" CRLF
, server2
, "Is a server; " MSG
);
3111 is_client_sendq(":" TEST_REMOTE_ID
" TEST Hello World!" CRLF
, server3
, "Is a server; " MSG
);
3116 static void sendto_match_butone__server(void)
3120 // This function does not support TS5...
3124 sendto_match_butone(NULL
, user
, "me.*", MATCH_SERVER
, "TEST Hello %s!", "World");
3125 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, user
, "Server matches; " MSG
);
3126 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_o
, "Server matches; " MSG
);
3127 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_ov
, "Server matches; " MSG
);
3128 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_v
, "Server matches; " MSG
);
3129 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_p
, "Server matches; " MSG
);
3130 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_d
, "Server matches; " MSG
);
3131 is_client_sendq(":" TEST_ID
" TEST Hello World!" CRLF
, server
, "Is a server; " MSG
);
3132 is_client_sendq(":" TEST_ID
" TEST Hello World!" CRLF
, server2
, "Is a server; " MSG
);
3133 is_client_sendq(":" TEST_ID
" TEST Hello World!" CRLF
, server3
, "Is a server; " MSG
);
3135 sendto_match_butone(NULL
, user
, "example.*", MATCH_SERVER
, "TEST Hello %s!", "World");
3136 is_client_sendq_empty(user
, "Host doesn't match; " MSG
);
3137 is_client_sendq_empty(local_chan_o
, "Host doesn't match; " MSG
);
3138 is_client_sendq_empty(local_chan_ov
, "Host doesn't match; " MSG
);
3139 is_client_sendq_empty(local_chan_v
, "Host doesn't match; " MSG
);
3140 is_client_sendq_empty(local_chan_p
, "Host doesn't match; " MSG
);
3141 is_client_sendq_empty(local_chan_d
, "Host doesn't match; " MSG
);
3142 is_client_sendq(":" TEST_ID
" TEST Hello World!" CRLF
, server
, "Is a server; " MSG
);
3143 is_client_sendq(":" TEST_ID
" TEST Hello World!" CRLF
, server2
, "Is a server; " MSG
);
3144 is_client_sendq(":" TEST_ID
" TEST Hello World!" CRLF
, server3
, "Is a server; " MSG
);
3146 sendto_match_butone(server
, user
, "me.*", MATCH_SERVER
, "TEST Hello %s!", "World");
3147 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, user
, "Server matches; " MSG
);
3148 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_o
, "Server matches; " MSG
);
3149 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_ov
, "Server matches; " MSG
);
3150 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_v
, "Server matches; " MSG
);
3151 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_p
, "Server matches; " MSG
);
3152 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_d
, "Server matches; " MSG
);
3153 is_client_sendq_empty(server
, "Is the one (neo); " MSG
);
3154 is_client_sendq(":" TEST_ID
" TEST Hello World!" CRLF
, server2
, "Is a server; " MSG
);
3155 is_client_sendq(":" TEST_ID
" TEST Hello World!" CRLF
, server3
, "Is a server; " MSG
);
3157 sendto_match_butone(server
, user
, "example.*", MATCH_SERVER
, "TEST Hello %s!", "World");
3158 is_client_sendq_empty(user
, "Host doesn't match; " MSG
);
3159 is_client_sendq_empty(local_chan_o
, "Host doesn't match; " MSG
);
3160 is_client_sendq_empty(local_chan_ov
, "Host doesn't match; " MSG
);
3161 is_client_sendq_empty(local_chan_v
, "Host doesn't match; " MSG
);
3162 is_client_sendq_empty(local_chan_p
, "Host doesn't match; " MSG
);
3163 is_client_sendq_empty(local_chan_d
, "Host doesn't match; " MSG
);
3164 is_client_sendq_empty(server
, "Is the one (neo); " MSG
);
3165 is_client_sendq(":" TEST_ID
" TEST Hello World!" CRLF
, server2
, "Is a server; " MSG
);
3166 is_client_sendq(":" TEST_ID
" TEST Hello World!" CRLF
, server3
, "Is a server; " MSG
);
3169 sendto_match_butone(NULL
, remote
, "me.*", MATCH_SERVER
, "TEST Hello %s!", "World");
3170 is_client_sendq(":" TEST_REMOTE_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, user
, "Server matches; " MSG
);
3171 is_client_sendq(":" TEST_REMOTE_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_o
, "Server matches; " MSG
);
3172 is_client_sendq(":" TEST_REMOTE_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_ov
, "Server matches; " MSG
);
3173 is_client_sendq(":" TEST_REMOTE_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_v
, "Server matches; " MSG
);
3174 is_client_sendq(":" TEST_REMOTE_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_p
, "Server matches; " MSG
);
3175 is_client_sendq(":" TEST_REMOTE_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_d
, "Server matches; " MSG
);
3176 is_client_sendq(":" TEST_REMOTE_ID
" TEST Hello World!" CRLF
, server
, "Is a server; " MSG
);
3177 is_client_sendq(":" TEST_REMOTE_ID
" TEST Hello World!" CRLF
, server2
, "Is a server; " MSG
);
3178 is_client_sendq(":" TEST_REMOTE_ID
" TEST Hello World!" CRLF
, server3
, "Is a server; " MSG
);
3180 sendto_match_butone(NULL
, remote
, "example.*", MATCH_SERVER
, "TEST Hello %s!", "World");
3181 is_client_sendq_empty(user
, "Host doesn't match; " MSG
);
3182 is_client_sendq_empty(local_chan_o
, "Host doesn't match; " MSG
);
3183 is_client_sendq_empty(local_chan_ov
, "Host doesn't match; " MSG
);
3184 is_client_sendq_empty(local_chan_v
, "Host doesn't match; " MSG
);
3185 is_client_sendq_empty(local_chan_p
, "Host doesn't match; " MSG
);
3186 is_client_sendq_empty(local_chan_d
, "Host doesn't match; " MSG
);
3187 is_client_sendq(":" TEST_REMOTE_ID
" TEST Hello World!" CRLF
, server
, "Is a server; " MSG
);
3188 is_client_sendq(":" TEST_REMOTE_ID
" TEST Hello World!" CRLF
, server2
, "Is a server; " MSG
);
3189 is_client_sendq(":" TEST_REMOTE_ID
" TEST Hello World!" CRLF
, server3
, "Is a server; " MSG
);
3191 sendto_match_butone(server
, remote
, "me.*", MATCH_SERVER
, "TEST Hello %s!", "World");
3192 is_client_sendq(":" TEST_REMOTE_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, user
, "Server matches; " MSG
);
3193 is_client_sendq(":" TEST_REMOTE_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_o
, "Server matches; " MSG
);
3194 is_client_sendq(":" TEST_REMOTE_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_ov
, "Server matches; " MSG
);
3195 is_client_sendq(":" TEST_REMOTE_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_v
, "Server matches; " MSG
);
3196 is_client_sendq(":" TEST_REMOTE_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_p
, "Server matches; " MSG
);
3197 is_client_sendq(":" TEST_REMOTE_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_d
, "Server matches; " MSG
);
3198 is_client_sendq_empty(server
, "Is the one (neo); " MSG
);
3199 is_client_sendq(":" TEST_REMOTE_ID
" TEST Hello World!" CRLF
, server2
, "Is a server; " MSG
);
3200 is_client_sendq(":" TEST_REMOTE_ID
" TEST Hello World!" CRLF
, server3
, "Is a server; " MSG
);
3202 sendto_match_butone(server
, remote
, "example.*", MATCH_SERVER
, "TEST Hello %s!", "World");
3203 is_client_sendq_empty(user
, "Host doesn't match; " MSG
);
3204 is_client_sendq_empty(local_chan_o
, "Host doesn't match; " MSG
);
3205 is_client_sendq_empty(local_chan_ov
, "Host doesn't match; " MSG
);
3206 is_client_sendq_empty(local_chan_v
, "Host doesn't match; " MSG
);
3207 is_client_sendq_empty(local_chan_p
, "Host doesn't match; " MSG
);
3208 is_client_sendq_empty(local_chan_d
, "Host doesn't match; " MSG
);
3209 is_client_sendq_empty(server
, "Is the one (neo); " MSG
);
3210 is_client_sendq(":" TEST_REMOTE_ID
" TEST Hello World!" CRLF
, server2
, "Is a server; " MSG
);
3211 is_client_sendq(":" TEST_REMOTE_ID
" TEST Hello World!" CRLF
, server3
, "Is a server; " MSG
);
3216 static void sendto_match_butone__server__tags(void)
3220 strcpy(user
->user
->suser
, "test");
3221 strcpy(remote
->user
->suser
, "rtest");
3222 local_chan_o
->localClient
->caps
|= CAP_ACCOUNT_TAG
;
3223 local_chan_o
->localClient
->caps
|= CAP_SERVER_TIME
;
3224 local_chan_ov
->localClient
->caps
|= CAP_SERVER_TIME
;
3225 local_chan_v
->localClient
->caps
|= CAP_ACCOUNT_TAG
;
3227 // This function does not support TS5...
3231 sendto_match_butone(NULL
, user
, "me.*", MATCH_SERVER
, "TEST Hello %s!", "World");
3232 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, user
, "Server matches; " MSG
);
3233 is_client_sendq("@time=" ADVENTURE_TIME
";account=test :" TEST_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_o
, "Server matches; " MSG
);
3234 is_client_sendq("@time=" ADVENTURE_TIME
" :" TEST_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_ov
, "Server matches; " MSG
);
3235 is_client_sendq("@account=test :" TEST_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_v
, "Server matches; " MSG
);
3236 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_p
, "Server matches; " MSG
);
3237 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_d
, "Server matches; " MSG
);
3238 is_client_sendq(":" TEST_ID
" TEST Hello World!" CRLF
, server
, "Is a server; " MSG
);
3239 is_client_sendq(":" TEST_ID
" TEST Hello World!" CRLF
, server2
, "Is a server; " MSG
);
3240 is_client_sendq(":" TEST_ID
" TEST Hello World!" CRLF
, server3
, "Is a server; " MSG
);
3242 sendto_match_butone(NULL
, user
, "example.*", MATCH_SERVER
, "TEST Hello %s!", "World");
3243 is_client_sendq_empty(user
, "Host doesn't match; " MSG
);
3244 is_client_sendq_empty(local_chan_o
, "Host doesn't match; " MSG
);
3245 is_client_sendq_empty(local_chan_ov
, "Host doesn't match; " MSG
);
3246 is_client_sendq_empty(local_chan_v
, "Host doesn't match; " MSG
);
3247 is_client_sendq_empty(local_chan_p
, "Host doesn't match; " MSG
);
3248 is_client_sendq_empty(local_chan_d
, "Host doesn't match; " MSG
);
3249 is_client_sendq(":" TEST_ID
" TEST Hello World!" CRLF
, server
, "Is a server; " MSG
);
3250 is_client_sendq(":" TEST_ID
" TEST Hello World!" CRLF
, server2
, "Is a server; " MSG
);
3251 is_client_sendq(":" TEST_ID
" TEST Hello World!" CRLF
, server3
, "Is a server; " MSG
);
3253 sendto_match_butone(server
, user
, "me.*", MATCH_SERVER
, "TEST Hello %s!", "World");
3254 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, user
, "Server matches; " MSG
);
3255 is_client_sendq("@time=" ADVENTURE_TIME
";account=test :" TEST_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_o
, "Server matches; " MSG
);
3256 is_client_sendq("@time=" ADVENTURE_TIME
" :" TEST_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_ov
, "Server matches; " MSG
);
3257 is_client_sendq("@account=test :" TEST_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_v
, "Server matches; " MSG
);
3258 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_p
, "Server matches; " MSG
);
3259 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_d
, "Server matches; " MSG
);
3260 is_client_sendq_empty(server
, "Is the one (neo); " MSG
);
3261 is_client_sendq(":" TEST_ID
" TEST Hello World!" CRLF
, server2
, "Is a server; " MSG
);
3262 is_client_sendq(":" TEST_ID
" TEST Hello World!" CRLF
, server3
, "Is a server; " MSG
);
3264 sendto_match_butone(server
, user
, "example.*", MATCH_SERVER
, "TEST Hello %s!", "World");
3265 is_client_sendq_empty(user
, "Host doesn't match; " MSG
);
3266 is_client_sendq_empty(local_chan_o
, "Host doesn't match; " MSG
);
3267 is_client_sendq_empty(local_chan_ov
, "Host doesn't match; " MSG
);
3268 is_client_sendq_empty(local_chan_v
, "Host doesn't match; " MSG
);
3269 is_client_sendq_empty(local_chan_p
, "Host doesn't match; " MSG
);
3270 is_client_sendq_empty(local_chan_d
, "Host doesn't match; " MSG
);
3271 is_client_sendq_empty(server
, "Is the one (neo); " MSG
);
3272 is_client_sendq(":" TEST_ID
" TEST Hello World!" CRLF
, server2
, "Is a server; " MSG
);
3273 is_client_sendq(":" TEST_ID
" TEST Hello World!" CRLF
, server3
, "Is a server; " MSG
);
3276 sendto_match_butone(NULL
, remote
, "me.*", MATCH_SERVER
, "TEST Hello %s!", "World");
3277 is_client_sendq(":" TEST_REMOTE_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, user
, "Server matches; " MSG
);
3278 is_client_sendq("@time=" ADVENTURE_TIME
";account=rtest :" TEST_REMOTE_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_o
, "Server matches; " MSG
);
3279 is_client_sendq("@time=" ADVENTURE_TIME
" :" TEST_REMOTE_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_ov
, "Server matches; " MSG
);
3280 is_client_sendq("@account=rtest :" TEST_REMOTE_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_v
, "Server matches; " MSG
);
3281 is_client_sendq(":" TEST_REMOTE_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_p
, "Server matches; " MSG
);
3282 is_client_sendq(":" TEST_REMOTE_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_d
, "Server matches; " MSG
);
3283 is_client_sendq(":" TEST_REMOTE_ID
" TEST Hello World!" CRLF
, server
, "Is a server; " MSG
);
3284 is_client_sendq(":" TEST_REMOTE_ID
" TEST Hello World!" CRLF
, server2
, "Is a server; " MSG
);
3285 is_client_sendq(":" TEST_REMOTE_ID
" TEST Hello World!" CRLF
, server3
, "Is a server; " MSG
);
3287 sendto_match_butone(NULL
, remote
, "example.*", MATCH_SERVER
, "TEST Hello %s!", "World");
3288 is_client_sendq_empty(user
, "Host doesn't match; " MSG
);
3289 is_client_sendq_empty(local_chan_o
, "Host doesn't match; " MSG
);
3290 is_client_sendq_empty(local_chan_ov
, "Host doesn't match; " MSG
);
3291 is_client_sendq_empty(local_chan_v
, "Host doesn't match; " MSG
);
3292 is_client_sendq_empty(local_chan_p
, "Host doesn't match; " MSG
);
3293 is_client_sendq_empty(local_chan_d
, "Host doesn't match; " MSG
);
3294 is_client_sendq(":" TEST_REMOTE_ID
" TEST Hello World!" CRLF
, server
, "Is a server; " MSG
);
3295 is_client_sendq(":" TEST_REMOTE_ID
" TEST Hello World!" CRLF
, server2
, "Is a server; " MSG
);
3296 is_client_sendq(":" TEST_REMOTE_ID
" TEST Hello World!" CRLF
, server3
, "Is a server; " MSG
);
3298 sendto_match_butone(server
, remote
, "me.*", MATCH_SERVER
, "TEST Hello %s!", "World");
3299 is_client_sendq(":" TEST_REMOTE_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, user
, "Server matches; " MSG
);
3300 is_client_sendq("@time=" ADVENTURE_TIME
";account=rtest :" TEST_REMOTE_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_o
, "Server matches; " MSG
);
3301 is_client_sendq("@time=" ADVENTURE_TIME
" :" TEST_REMOTE_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_ov
, "Server matches; " MSG
);
3302 is_client_sendq("@account=rtest :" TEST_REMOTE_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_v
, "Server matches; " MSG
);
3303 is_client_sendq(":" TEST_REMOTE_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_p
, "Server matches; " MSG
);
3304 is_client_sendq(":" TEST_REMOTE_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_d
, "Server matches; " MSG
);
3305 is_client_sendq_empty(server
, "Is the one (neo); " MSG
);
3306 is_client_sendq(":" TEST_REMOTE_ID
" TEST Hello World!" CRLF
, server2
, "Is a server; " MSG
);
3307 is_client_sendq(":" TEST_REMOTE_ID
" TEST Hello World!" CRLF
, server3
, "Is a server; " MSG
);
3309 sendto_match_butone(server
, remote
, "example.*", MATCH_SERVER
, "TEST Hello %s!", "World");
3310 is_client_sendq_empty(user
, "Host doesn't match; " MSG
);
3311 is_client_sendq_empty(local_chan_o
, "Host doesn't match; " MSG
);
3312 is_client_sendq_empty(local_chan_ov
, "Host doesn't match; " MSG
);
3313 is_client_sendq_empty(local_chan_v
, "Host doesn't match; " MSG
);
3314 is_client_sendq_empty(local_chan_p
, "Host doesn't match; " MSG
);
3315 is_client_sendq_empty(local_chan_d
, "Host doesn't match; " MSG
);
3316 is_client_sendq_empty(server
, "Is the one (neo); " MSG
);
3317 is_client_sendq(":" TEST_REMOTE_ID
" TEST Hello World!" CRLF
, server2
, "Is a server; " MSG
);
3318 is_client_sendq(":" TEST_REMOTE_ID
" TEST Hello World!" CRLF
, server3
, "Is a server; " MSG
);
3323 static void sendto_local_clients_with_capability1(void)
3327 local_chan_o
->localClient
->caps
|= CAP_MULTI_PREFIX
;
3328 local_chan_v
->localClient
->caps
|= CAP_MULTI_PREFIX
;
3330 sendto_local_clients_with_capability(CAP_MULTI_PREFIX
, "Hello %s!", "World");
3331 is_client_sendq_empty(user
, "Doesn't have cap; " MSG
);
3332 is_client_sendq("Hello World!" CRLF
, local_chan_o
, "Has cap; " MSG
);
3333 is_client_sendq_empty(local_chan_ov
, "Doesn't have cap; " MSG
);
3334 is_client_sendq("Hello World!" CRLF
, local_chan_v
, "Has cap; " MSG
);
3335 is_client_sendq_empty(local_chan_p
, "Doesn't have cap; " MSG
);
3336 is_client_sendq_empty(local_chan_d
, "Doesn't have cap; " MSG
);
3337 is_client_sendq_empty(server
, MSG
);
3338 is_client_sendq_empty(server2
, MSG
);
3343 static void sendto_local_clients_with_capability1__tags(void)
3347 local_chan_o
->localClient
->caps
|= CAP_MULTI_PREFIX
;
3348 local_chan_v
->localClient
->caps
|= CAP_MULTI_PREFIX
;
3350 strcpy(user
->user
->suser
, "test");
3351 strcpy(local_chan_o
->user
->suser
, "test_o");
3352 strcpy(local_chan_ov
->user
->suser
, "test_ov");
3353 strcpy(local_chan_v
->user
->suser
, "test_v");
3354 strcpy(local_chan_p
->user
->suser
, "test_p");
3355 strcpy(local_chan_d
->user
->suser
, "test_d");
3356 local_chan_o
->localClient
->caps
|= CAP_ACCOUNT_TAG
;
3357 local_chan_o
->localClient
->caps
|= CAP_SERVER_TIME
;
3358 local_chan_ov
->localClient
->caps
|= CAP_SERVER_TIME
;
3359 local_chan_v
->localClient
->caps
|= CAP_ACCOUNT_TAG
;
3361 sendto_local_clients_with_capability(CAP_MULTI_PREFIX
, "Hello %s!", "World");
3362 is_client_sendq_empty(user
, "Doesn't have cap; " MSG
);
3363 is_client_sendq("@time=" ADVENTURE_TIME
" Hello World!" CRLF
, local_chan_o
, "Has cap; " MSG
);
3364 is_client_sendq_empty(local_chan_ov
, "Doesn't have cap; " MSG
);
3365 is_client_sendq("Hello World!" CRLF
, local_chan_v
, "Has cap; " MSG
);
3366 is_client_sendq_empty(local_chan_p
, "Doesn't have cap; " MSG
);
3367 is_client_sendq_empty(local_chan_d
, "Doesn't have cap; " MSG
);
3368 is_client_sendq_empty(server
, MSG
);
3369 is_client_sendq_empty(server2
, MSG
);
3374 static void sendto_monitor1(void)
3376 struct monitor
*monptr
;
3380 monptr
= find_monitor(TEST_NICK
, 1);
3381 rb_dlinkAddAlloc(local_chan_o
, &monptr
->users
);
3382 rb_dlinkAddAlloc(monptr
, &local_chan_o
->localClient
->monitor_list
);
3383 rb_dlinkAddAlloc(local_chan_v
, &monptr
->users
);
3384 rb_dlinkAddAlloc(monptr
, &local_chan_v
->localClient
->monitor_list
);
3386 sendto_monitor(user
, monptr
, "Hello %s!", "World");
3387 is_client_sendq_empty(user
, "Not monitoring; " MSG
);
3388 is_client_sendq("Hello World!" CRLF
, local_chan_o
, "Monitoring; " MSG
);
3389 is_client_sendq_empty(local_chan_ov
, "Not monitoring; " MSG
);
3390 is_client_sendq("Hello World!" CRLF
, local_chan_v
, "Monitoring; " MSG
);
3391 is_client_sendq_empty(local_chan_p
, "Not monitoring; " MSG
);
3392 is_client_sendq_empty(local_chan_d
, "Not monitoring; " MSG
);
3393 is_client_sendq_empty(server
, MSG
);
3394 is_client_sendq_empty(server2
, MSG
);
3399 static void sendto_monitor1__tags(void)
3401 struct monitor
*monptr
;
3405 strcpy(user
->user
->suser
, "test");
3406 local_chan_o
->localClient
->caps
|= CAP_ACCOUNT_TAG
;
3407 local_chan_o
->localClient
->caps
|= CAP_SERVER_TIME
;
3408 local_chan_ov
->localClient
->caps
|= CAP_SERVER_TIME
;
3409 local_chan_v
->localClient
->caps
|= CAP_ACCOUNT_TAG
;
3411 monptr
= find_monitor(TEST_NICK
, 1);
3412 rb_dlinkAddAlloc(local_chan_o
, &monptr
->users
);
3413 rb_dlinkAddAlloc(monptr
, &local_chan_o
->localClient
->monitor_list
);
3414 rb_dlinkAddAlloc(local_chan_v
, &monptr
->users
);
3415 rb_dlinkAddAlloc(monptr
, &local_chan_v
->localClient
->monitor_list
);
3417 sendto_monitor(user
, monptr
, "Hello %s!", "World");
3418 is_client_sendq_empty(user
, "Not monitoring; " MSG
);
3419 is_client_sendq("@time=" ADVENTURE_TIME
";account=test Hello World!" CRLF
, local_chan_o
, "Monitoring; " MSG
);
3420 is_client_sendq_empty(local_chan_ov
, "Not monitoring; " MSG
);
3421 is_client_sendq("@account=test Hello World!" CRLF
, local_chan_v
, "Monitoring; " MSG
);
3422 is_client_sendq_empty(local_chan_p
, "Not monitoring; " MSG
);
3423 is_client_sendq_empty(local_chan_d
, "Not monitoring; " MSG
);
3424 is_client_sendq_empty(server
, MSG
);
3425 is_client_sendq_empty(server2
, MSG
);
3427 rb_dlinkAddAlloc(local_chan_ov
, &monptr
->users
);
3428 rb_dlinkAddAlloc(monptr
, &local_chan_ov
->localClient
->monitor_list
);
3429 clear_monitor(local_chan_o
);
3430 clear_monitor(local_chan_v
);
3432 sendto_monitor(user
, monptr
, "Hello %s!", "World");
3433 is_client_sendq_empty(user
, "Not monitoring; " MSG
);
3434 is_client_sendq_empty(local_chan_o
, "Not monitoring; " MSG
);
3435 is_client_sendq("@time=" ADVENTURE_TIME
" Hello World!" CRLF
, local_chan_ov
, "Monitoring; " MSG
);
3436 is_client_sendq_empty(local_chan_v
, "Not monitoring; " MSG
);
3437 is_client_sendq_empty(local_chan_p
, "Not monitoring; " MSG
);
3438 is_client_sendq_empty(local_chan_d
, "Not monitoring; " MSG
);
3439 is_client_sendq_empty(server
, MSG
);
3440 is_client_sendq_empty(server2
, MSG
);
3445 static void sendto_anywhere1(void)
3449 // This function does not support TS5...
3453 sendto_anywhere(user
, remote
, "TEST", "Hello %s!", "World");
3454 is_client_sendq(":" TEST_REMOTE_NICK TEST_ID_SUFFIX
" TEST " TEST_NICK
" Hello World!" CRLF
, user
, MSG
);
3455 is_client_sendq_empty(server
, MSG
);
3457 sendto_anywhere(user
, local_chan_o
, "TEST", "Hello %s!", "World");
3458 is_client_sendq(":LChanOp" TEST_ID_SUFFIX
" TEST " TEST_NICK
" Hello World!" CRLF
, user
, MSG
);
3459 is_client_sendq_empty(local_chan_o
, MSG
);
3460 is_client_sendq_empty(server
, MSG
);
3462 sendto_anywhere(user
, server
, "TEST", "Hello %s!", "World");
3463 is_client_sendq(":" TEST_SERVER_NAME
" TEST " TEST_NICK
" Hello World!" CRLF
, user
, MSG
);
3464 is_client_sendq_empty(server
, MSG
);
3466 sendto_anywhere(user
, &me
, "TEST", "Hello %s!", "World");
3467 is_client_sendq(":" TEST_ME_NAME
" TEST " TEST_NICK
" Hello World!" CRLF
, user
, MSG
);
3468 is_client_sendq_empty(server
, MSG
);
3471 sendto_anywhere(remote
, user
, "TEST", "Hello %s!", "World");
3472 is_client_sendq_empty(user
, MSG
);
3473 is_client_sendq(":" TEST_ID
" TEST " TEST_REMOTE_ID
" Hello World!" CRLF
, server
, MSG
);
3475 sendto_anywhere(remote
, local_chan_o
, "TEST", "Hello %s!", "World");
3476 is_client_sendq_empty(local_chan_o
, MSG
);
3477 is_client_sendq(":" TEST_ME_ID
"90001 TEST " TEST_REMOTE_ID
" Hello World!" CRLF
, server
, MSG
);
3479 sendto_anywhere(remote
, server2
, "TEST", "Hello %s!", "World");
3480 is_client_sendq(":" TEST_SERVER2_ID
" TEST " TEST_REMOTE_ID
" Hello World!" CRLF
, server
, MSG
);
3481 is_client_sendq_empty(server2
, MSG
);
3483 sendto_anywhere(remote
, &me
, "TEST", "Hello %s!", "World");
3484 is_client_sendq(":" TEST_ME_ID
" TEST " TEST_REMOTE_ID
" Hello World!" CRLF
, server
, MSG
);
3485 is_client_sendq_empty(server2
, MSG
);
3490 static void sendto_anywhere1__tags(void)
3494 strcpy(user
->user
->suser
, "test");
3495 strcpy(local_chan_o
->user
->suser
, "test_o");
3496 strcpy(local_chan_ov
->user
->suser
, "test_ov");
3497 strcpy(local_chan_v
->user
->suser
, "test_v");
3498 strcpy(local_chan_p
->user
->suser
, "test_p");
3499 local_chan_o
->localClient
->caps
|= CAP_ACCOUNT_TAG
;
3500 local_chan_o
->localClient
->caps
|= CAP_SERVER_TIME
;
3501 local_chan_ov
->localClient
->caps
|= CAP_SERVER_TIME
;
3502 local_chan_v
->localClient
->caps
|= CAP_ACCOUNT_TAG
;
3504 // This function does not support TS5...
3508 sendto_anywhere(user
, local_chan_p
, "TEST", "Hello %s!", "World");
3509 is_client_sendq(":LChanPeon" TEST_ID_SUFFIX
" TEST " TEST_NICK
" Hello World!" CRLF
, user
, MSG
);
3510 is_client_sendq_empty(local_chan_p
, MSG
);
3511 is_client_sendq_empty(server
, MSG
);
3513 sendto_anywhere(local_chan_o
, local_chan_p
, "TEST", "Hello %s!", "World");
3514 is_client_sendq("@time=" ADVENTURE_TIME
";account=test_p :LChanPeon" TEST_ID_SUFFIX
" TEST LChanOp Hello World!" CRLF
, local_chan_o
, MSG
);
3515 is_client_sendq_empty(local_chan_p
, MSG
);
3516 is_client_sendq_empty(server
, MSG
);
3518 sendto_anywhere(local_chan_ov
, local_chan_p
, "TEST", "Hello %s!", "World");
3519 is_client_sendq("@time=" ADVENTURE_TIME
" :LChanPeon" TEST_ID_SUFFIX
" TEST LChanOpVoice Hello World!" CRLF
, local_chan_ov
, MSG
);
3520 is_client_sendq_empty(local_chan_p
, MSG
);
3521 is_client_sendq_empty(server
, MSG
);
3523 sendto_anywhere(local_chan_v
, local_chan_p
, "TEST", "Hello %s!", "World");
3524 is_client_sendq("@account=test_p :LChanPeon" TEST_ID_SUFFIX
" TEST LChanVoice Hello World!" CRLF
, local_chan_v
, MSG
);
3525 is_client_sendq_empty(local_chan_p
, MSG
);
3526 is_client_sendq_empty(server
, MSG
);
3528 sendto_anywhere(user
, server
, "TEST", "Hello %s!", "World");
3529 is_client_sendq(":" TEST_SERVER_NAME
" TEST " TEST_NICK
" Hello World!" CRLF
, user
, MSG
);
3530 is_client_sendq_empty(server
, MSG
);
3532 sendto_anywhere(user
, &me
, "TEST", "Hello %s!", "World");
3533 is_client_sendq(":" TEST_ME_NAME
" TEST " TEST_NICK
" Hello World!" CRLF
, user
, MSG
);
3534 is_client_sendq_empty(server
, MSG
);
3536 sendto_anywhere(local_chan_o
, server
, "TEST", "Hello %s!", "World");
3537 is_client_sendq(":" TEST_SERVER_NAME
" TEST LChanOp Hello World!" CRLF
, local_chan_o
, MSG
);
3538 is_client_sendq_empty(server
, MSG
);
3540 sendto_anywhere(local_chan_v
, &me
, "TEST", "Hello %s!", "World");
3541 is_client_sendq(":" TEST_ME_NAME
" TEST LChanVoice Hello World!" CRLF
, local_chan_v
, MSG
);
3542 is_client_sendq_empty(server
, MSG
);
3545 sendto_anywhere(remote
, user
, "TEST", "Hello %s!", "World");
3546 is_client_sendq_empty(user
, MSG
);
3547 is_client_sendq(":" TEST_ID
" TEST " TEST_REMOTE_ID
" Hello World!" CRLF
, server
, MSG
);
3549 sendto_anywhere(remote
, local_chan_o
, "TEST", "Hello %s!", "World");
3550 is_client_sendq_empty(local_chan_o
, MSG
);
3551 is_client_sendq(":" TEST_ME_ID
"90001 TEST " TEST_REMOTE_ID
" Hello World!" CRLF
, server
, MSG
);
3553 sendto_anywhere(remote
, local_chan_ov
, "TEST", "Hello %s!", "World");
3554 is_client_sendq_empty(local_chan_ov
, MSG
);
3555 is_client_sendq(":" TEST_ME_ID
"90002 TEST " TEST_REMOTE_ID
" Hello World!" CRLF
, server
, MSG
);
3557 sendto_anywhere(remote
, local_chan_v
, "TEST", "Hello %s!", "World");
3558 is_client_sendq_empty(local_chan_v
, MSG
);
3559 is_client_sendq(":" TEST_ME_ID
"90003 TEST " TEST_REMOTE_ID
" Hello World!" CRLF
, server
, MSG
);
3561 sendto_anywhere(remote
, server2
, "TEST", "Hello %s!", "World");
3562 is_client_sendq(":" TEST_SERVER2_ID
" TEST " TEST_REMOTE_ID
" Hello World!" CRLF
, server
, MSG
);
3563 is_client_sendq_empty(server2
, MSG
);
3565 sendto_anywhere(remote
, &me
, "TEST", "Hello %s!", "World");
3566 is_client_sendq(":" TEST_ME_ID
" TEST " TEST_REMOTE_ID
" Hello World!" CRLF
, server
, MSG
);
3567 is_client_sendq_empty(server2
, MSG
);
3572 static void sendto_anywhere_echo1(void)
3577 sendto_anywhere_echo(user
, user
, "TEST", "Hello %s!", "World");
3578 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST " TEST_NICK
" Hello World!" CRLF
, user
, MSG
);
3579 is_client_sendq_empty(server
, MSG
);
3581 sendto_anywhere_echo(user
, local_chan_o
, "TEST", "Hello %s!", "World");
3582 is_client_sendq_empty(user
, MSG
);
3583 is_client_sendq(":LChanOp" TEST_ID_SUFFIX
" TEST " TEST_NICK
" Hello World!" CRLF
, local_chan_o
, MSG
);
3584 is_client_sendq_empty(server
, MSG
);
3586 sendto_anywhere_echo(&me
, user
, "TEST", "Hello %s!", "World");
3587 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST " TEST_ME_NAME
" Hello World!" CRLF
, user
, MSG
);
3588 is_client_sendq_empty(server
, MSG
);
3591 sendto_anywhere_echo(remote
, user
, "TEST", "Hello %s!", "World");
3592 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST " TEST_REMOTE_NICK
" Hello World!" CRLF
, user
, MSG
);
3593 is_client_sendq_empty(server
, MSG
);
3595 sendto_anywhere_echo(server
, user
, "TEST", "Hello %s!", "World");
3596 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST " TEST_SERVER_NAME
" Hello World!" CRLF
, user
, MSG
);
3597 is_client_sendq_empty(server
, MSG
);
3602 static void sendto_anywhere_echo1__tags(void)
3606 strcpy(user
->user
->suser
, "test");
3607 strcpy(local_chan_o
->user
->suser
, "test_o");
3608 strcpy(local_chan_ov
->user
->suser
, "test_ov");
3609 strcpy(local_chan_v
->user
->suser
, "test_v");
3610 strcpy(local_chan_p
->user
->suser
, "test_p");
3611 local_chan_o
->localClient
->caps
|= CAP_ACCOUNT_TAG
;
3612 local_chan_o
->localClient
->caps
|= CAP_SERVER_TIME
;
3613 local_chan_ov
->localClient
->caps
|= CAP_SERVER_TIME
;
3614 local_chan_v
->localClient
->caps
|= CAP_ACCOUNT_TAG
;
3616 sendto_anywhere_echo(local_chan_o
, local_chan_o
, "TEST", "Hello %s!", "World");
3617 is_client_sendq("@time=" ADVENTURE_TIME
";account=test_o :LChanOp" TEST_ID_SUFFIX
" TEST LChanOp Hello World!" CRLF
, local_chan_o
, MSG
);
3618 is_client_sendq_empty(server
, MSG
);
3620 sendto_anywhere_echo(user
, local_chan_o
, "TEST", "Hello %s!", "World");
3621 is_client_sendq_empty(user
, MSG
);
3622 is_client_sendq("@time=" ADVENTURE_TIME
";account=test_o :LChanOp" TEST_ID_SUFFIX
" TEST " TEST_NICK
" Hello World!" CRLF
, local_chan_o
, MSG
);
3623 is_client_sendq_empty(server
, MSG
);
3625 sendto_anywhere_echo(local_chan_p
, local_chan_o
, "TEST", "Hello %s!", "World");
3626 is_client_sendq("@time=" ADVENTURE_TIME
";account=test_o :LChanOp" TEST_ID_SUFFIX
" TEST LChanPeon Hello World!" CRLF
, local_chan_o
, MSG
);
3627 is_client_sendq_empty(local_chan_p
, MSG
);
3628 is_client_sendq_empty(server
, MSG
);
3630 sendto_anywhere_echo(&me
, local_chan_o
, "TEST", "Hello %s!", "World");
3631 is_client_sendq("@time=" ADVENTURE_TIME
";account=test_o :LChanOp" TEST_ID_SUFFIX
" TEST " TEST_ME_NAME
" Hello World!" CRLF
, local_chan_o
, MSG
);
3632 is_client_sendq_empty(server
, MSG
);
3634 sendto_anywhere_echo(remote
, local_chan_o
, "TEST", "Hello %s!", "World");
3635 is_client_sendq("@time=" ADVENTURE_TIME
";account=test_o :LChanOp" TEST_ID_SUFFIX
" TEST " TEST_REMOTE_NICK
" Hello World!" CRLF
, local_chan_o
, MSG
);
3636 is_client_sendq_empty(server
, MSG
);
3638 sendto_anywhere_echo(server
, local_chan_o
, "TEST", "Hello %s!", "World");
3639 is_client_sendq("@time=" ADVENTURE_TIME
";account=test_o :LChanOp" TEST_ID_SUFFIX
" TEST " TEST_SERVER_NAME
" Hello World!" CRLF
, local_chan_o
, MSG
);
3640 is_client_sendq_empty(server
, MSG
);
3643 sendto_anywhere_echo(local_chan_ov
, local_chan_ov
, "TEST", "Hello %s!", "World");
3644 is_client_sendq("@time=" ADVENTURE_TIME
" :LChanOpVoice" TEST_ID_SUFFIX
" TEST LChanOpVoice Hello World!" CRLF
, local_chan_ov
, MSG
);
3645 is_client_sendq_empty(server
, MSG
);
3647 sendto_anywhere_echo(user
, local_chan_ov
, "TEST", "Hello %s!", "World");
3648 is_client_sendq_empty(user
, MSG
);
3649 is_client_sendq("@time=" ADVENTURE_TIME
" :LChanOpVoice" TEST_ID_SUFFIX
" TEST " TEST_NICK
" Hello World!" CRLF
, local_chan_ov
, MSG
);
3650 is_client_sendq_empty(server
, MSG
);
3652 sendto_anywhere_echo(local_chan_p
, local_chan_ov
, "TEST", "Hello %s!", "World");
3653 is_client_sendq("@time=" ADVENTURE_TIME
" :LChanOpVoice" TEST_ID_SUFFIX
" TEST LChanPeon Hello World!" CRLF
, local_chan_ov
, MSG
);
3654 is_client_sendq_empty(local_chan_p
, MSG
);
3655 is_client_sendq_empty(server
, MSG
);
3657 sendto_anywhere_echo(&me
, local_chan_ov
, "TEST", "Hello %s!", "World");
3658 is_client_sendq("@time=" ADVENTURE_TIME
" :LChanOpVoice" TEST_ID_SUFFIX
" TEST " TEST_ME_NAME
" Hello World!" CRLF
, local_chan_ov
, MSG
);
3659 is_client_sendq_empty(server
, MSG
);
3661 sendto_anywhere_echo(remote
, local_chan_ov
, "TEST", "Hello %s!", "World");
3662 is_client_sendq("@time=" ADVENTURE_TIME
" :LChanOpVoice" TEST_ID_SUFFIX
" TEST " TEST_REMOTE_NICK
" Hello World!" CRLF
, local_chan_ov
, MSG
);
3663 is_client_sendq_empty(server
, MSG
);
3665 sendto_anywhere_echo(server
, local_chan_ov
, "TEST", "Hello %s!", "World");
3666 is_client_sendq("@time=" ADVENTURE_TIME
" :LChanOpVoice" TEST_ID_SUFFIX
" TEST " TEST_SERVER_NAME
" Hello World!" CRLF
, local_chan_ov
, MSG
);
3667 is_client_sendq_empty(server
, MSG
);
3670 sendto_anywhere_echo(local_chan_v
, local_chan_v
, "TEST", "Hello %s!", "World");
3671 is_client_sendq("@account=test_v :LChanVoice" TEST_ID_SUFFIX
" TEST LChanVoice Hello World!" CRLF
, local_chan_v
, MSG
);
3672 is_client_sendq_empty(server
, MSG
);
3674 sendto_anywhere_echo(user
, local_chan_v
, "TEST", "Hello %s!", "World");
3675 is_client_sendq_empty(user
, MSG
);
3676 is_client_sendq("@account=test_v :LChanVoice" TEST_ID_SUFFIX
" TEST " TEST_NICK
" Hello World!" CRLF
, local_chan_v
, MSG
);
3677 is_client_sendq_empty(server
, MSG
);
3679 sendto_anywhere_echo(local_chan_p
, local_chan_v
, "TEST", "Hello %s!", "World");
3680 is_client_sendq("@account=test_v :LChanVoice" TEST_ID_SUFFIX
" TEST LChanPeon Hello World!" CRLF
, local_chan_v
, MSG
);
3681 is_client_sendq_empty(local_chan_p
, MSG
);
3682 is_client_sendq_empty(server
, MSG
);
3684 sendto_anywhere_echo(&me
, local_chan_v
, "TEST", "Hello %s!", "World");
3685 is_client_sendq("@account=test_v :LChanVoice" TEST_ID_SUFFIX
" TEST " TEST_ME_NAME
" Hello World!" CRLF
, local_chan_v
, MSG
);
3686 is_client_sendq_empty(server
, MSG
);
3688 sendto_anywhere_echo(remote
, local_chan_v
, "TEST", "Hello %s!", "World");
3689 is_client_sendq("@account=test_v :LChanVoice" TEST_ID_SUFFIX
" TEST " TEST_REMOTE_NICK
" Hello World!" CRLF
, local_chan_v
, MSG
);
3690 is_client_sendq_empty(server
, MSG
);
3692 sendto_anywhere_echo(server
, local_chan_v
, "TEST", "Hello %s!", "World");
3693 is_client_sendq("@account=test_v :LChanVoice" TEST_ID_SUFFIX
" TEST " TEST_SERVER_NAME
" Hello World!" CRLF
, local_chan_v
, MSG
);
3694 is_client_sendq_empty(server
, MSG
);
3697 sendto_anywhere_echo(local_chan_p
, local_chan_p
, "TEST", "Hello %s!", "World");
3698 is_client_sendq(":LChanPeon" TEST_ID_SUFFIX
" TEST LChanPeon Hello World!" CRLF
, local_chan_p
, MSG
);
3699 is_client_sendq_empty(server
, MSG
);
3701 sendto_anywhere_echo(user
, local_chan_p
, "TEST", "Hello %s!", "World");
3702 is_client_sendq_empty(user
, MSG
);
3703 is_client_sendq(":LChanPeon" TEST_ID_SUFFIX
" TEST " TEST_NICK
" Hello World!" CRLF
, local_chan_p
, MSG
);
3704 is_client_sendq_empty(server
, MSG
);
3706 sendto_anywhere_echo(&me
, local_chan_p
, "TEST", "Hello %s!", "World");
3707 is_client_sendq(":LChanPeon" TEST_ID_SUFFIX
" TEST " TEST_ME_NAME
" Hello World!" CRLF
, local_chan_p
, MSG
);
3708 is_client_sendq_empty(server
, MSG
);
3710 sendto_anywhere_echo(remote
, local_chan_p
, "TEST", "Hello %s!", "World");
3711 is_client_sendq(":LChanPeon" TEST_ID_SUFFIX
" TEST " TEST_REMOTE_NICK
" Hello World!" CRLF
, local_chan_p
, MSG
);
3712 is_client_sendq_empty(server
, MSG
);
3714 sendto_anywhere_echo(server
, local_chan_p
, "TEST", "Hello %s!", "World");
3715 is_client_sendq(":LChanPeon" TEST_ID_SUFFIX
" TEST " TEST_SERVER_NAME
" Hello World!" CRLF
, local_chan_p
, MSG
);
3716 is_client_sendq_empty(server
, MSG
);
3721 static void sendto_match_servs1(void)
3725 server
->localClient
->caps
= CAP_ENCAP
;
3726 server2
->localClient
->caps
= CAP_ENCAP
;
3727 server2
->localClient
->caps
|= CAP_KNOCK
;
3728 server3
->localClient
->caps
= CAP_BAN
;
3730 // This function does not support TS5...
3734 sendto_match_servs(&me
, "*.test", 0, 0, "Hello %s!", "World");
3735 is_client_sendq(":" TEST_ME_ID
" Hello World!" CRLF
, server
, MSG
);
3736 is_client_sendq(":" TEST_ME_ID
" Hello World!" CRLF
, server2
, MSG
);
3737 is_client_sendq(":" TEST_ME_ID
" Hello World!" CRLF
, server3
, MSG
);
3739 sendto_match_servs(user
, "*.test", 0, 0, "Hello %s!", "World");
3740 is_client_sendq(":" TEST_ID
" Hello World!" CRLF
, server
, MSG
);
3741 is_client_sendq(":" TEST_ID
" Hello World!" CRLF
, server2
, MSG
);
3742 is_client_sendq(":" TEST_ID
" Hello World!" CRLF
, server3
, MSG
);
3744 sendto_match_servs(remote
, "*.test", 0, 0, "Hello %s!", "World");
3745 is_client_sendq_empty(server
, MSG
);
3746 is_client_sendq(":" TEST_REMOTE_ID
" Hello World!" CRLF
, server2
, MSG
);
3747 is_client_sendq(":" TEST_REMOTE_ID
" Hello World!" CRLF
, server3
, MSG
);
3749 sendto_match_servs(server
, "*.test", 0, 0, "Hello %s!", "World");
3750 is_client_sendq_empty(server
, MSG
);
3751 is_client_sendq(":" TEST_SERVER_ID
" Hello World!" CRLF
, server2
, MSG
);
3752 is_client_sendq(":" TEST_SERVER_ID
" Hello World!" CRLF
, server3
, MSG
);
3754 // Match all, CAP_ENCAP but not CAP_KNOCK
3755 sendto_match_servs(&me
, "*.test", CAP_ENCAP
, CAP_KNOCK
, "Hello %s!", "World");
3756 is_client_sendq(":" TEST_ME_ID
" Hello World!" CRLF
, server
, MSG
);
3757 is_client_sendq_empty(server2
, MSG
);
3758 is_client_sendq_empty(server3
, MSG
);
3760 sendto_match_servs(user
, "*.test", CAP_ENCAP
, CAP_KNOCK
, "Hello %s!", "World");
3761 is_client_sendq(":" TEST_ID
" Hello World!" CRLF
, server
, MSG
);
3762 is_client_sendq_empty(server2
, MSG
);
3763 is_client_sendq_empty(server3
, MSG
);
3765 sendto_match_servs(remote
, "*.test", CAP_ENCAP
, CAP_KNOCK
, "Hello %s!", "World");
3766 is_client_sendq_empty(server
, MSG
);
3767 is_client_sendq_empty(server2
, MSG
);
3768 is_client_sendq_empty(server3
, MSG
);
3770 sendto_match_servs(server
, "*.test", CAP_ENCAP
, CAP_KNOCK
, "Hello %s!", "World");
3771 is_client_sendq_empty(server
, MSG
);
3772 is_client_sendq_empty(server2
, MSG
);
3773 is_client_sendq_empty(server3
, MSG
);
3775 // Match all, but not CAP_BAN
3776 sendto_match_servs(&me
, "*.test", 0, CAP_BAN
, "Hello %s!", "World");
3777 is_client_sendq(":" TEST_ME_ID
" Hello World!" CRLF
, server
, MSG
);
3778 is_client_sendq(":" TEST_ME_ID
" Hello World!" CRLF
, server2
, MSG
);
3779 is_client_sendq_empty(server3
, MSG
);
3781 sendto_match_servs(user
, "*.test", 0, CAP_BAN
, "Hello %s!", "World");
3782 is_client_sendq(":" TEST_ID
" Hello World!" CRLF
, server
, MSG
);
3783 is_client_sendq(":" TEST_ID
" Hello World!" CRLF
, server2
, MSG
);
3784 is_client_sendq_empty(server3
, MSG
);
3786 sendto_match_servs(remote
, "*.test", 0, CAP_BAN
, "Hello %s!", "World");
3787 is_client_sendq_empty(server
, MSG
);
3788 is_client_sendq(":" TEST_REMOTE_ID
" Hello World!" CRLF
, server2
, MSG
);
3789 is_client_sendq_empty(server3
, MSG
);
3791 sendto_match_servs(server
, "*.test", 0, CAP_BAN
, "Hello %s!", "World");
3792 is_client_sendq_empty(server
, MSG
);
3793 is_client_sendq(":" TEST_SERVER_ID
" Hello World!" CRLF
, server2
, MSG
);
3794 is_client_sendq_empty(server3
, MSG
);
3796 // Match all, CAP_BAN but not CAP_KNOCK
3797 sendto_match_servs(&me
, "*.test", CAP_BAN
, CAP_KNOCK
, "Hello %s!", "World");
3798 is_client_sendq_empty(server
, MSG
);
3799 is_client_sendq_empty(server2
, MSG
);
3800 is_client_sendq(":" TEST_ME_ID
" Hello World!" CRLF
, server3
, MSG
);
3802 sendto_match_servs(user
, "*.test", CAP_BAN
, CAP_KNOCK
, "Hello %s!", "World");
3803 is_client_sendq_empty(server
, MSG
);
3804 is_client_sendq_empty(server2
, MSG
);
3805 is_client_sendq(":" TEST_ID
" Hello World!" CRLF
, server3
, MSG
);
3807 sendto_match_servs(remote
, "*.test", CAP_BAN
, CAP_KNOCK
, "Hello %s!", "World");
3808 is_client_sendq_empty(server
, MSG
);
3809 is_client_sendq_empty(server2
, MSG
);
3810 is_client_sendq(":" TEST_REMOTE_ID
" Hello World!" CRLF
, server3
, MSG
);
3812 sendto_match_servs(server
, "*.test", CAP_BAN
, CAP_KNOCK
, "Hello %s!", "World");
3813 is_client_sendq_empty(server
, MSG
);
3814 is_client_sendq_empty(server2
, MSG
);
3815 is_client_sendq(":" TEST_SERVER_ID
" Hello World!" CRLF
, server3
, MSG
);
3817 // Match all, CAP_KNOCK
3818 sendto_match_servs(&me
, "*.test", CAP_KNOCK
, 0, "Hello %s!", "World");
3819 is_client_sendq_empty(server
, MSG
);
3820 is_client_sendq(":" TEST_ME_ID
" Hello World!" CRLF
, server2
, MSG
);
3821 is_client_sendq_empty(server3
, MSG
);
3823 sendto_match_servs(user
, "*.test", CAP_KNOCK
, 0, "Hello %s!", "World");
3824 is_client_sendq_empty(server
, MSG
);
3825 is_client_sendq(":" TEST_ID
" Hello World!" CRLF
, server2
, MSG
);
3826 is_client_sendq_empty(server3
, MSG
);
3828 sendto_match_servs(remote
, "*.test", CAP_KNOCK
, 0, "Hello %s!", "World");
3829 is_client_sendq_empty(server
, MSG
);
3830 is_client_sendq(":" TEST_REMOTE_ID
" Hello World!" CRLF
, server2
, MSG
);
3831 is_client_sendq_empty(server3
, MSG
);
3833 sendto_match_servs(server
, "*.test", CAP_KNOCK
, 0, "Hello %s!", "World");
3834 is_client_sendq_empty(server
, MSG
);
3835 is_client_sendq(":" TEST_SERVER_ID
" Hello World!" CRLF
, server2
, MSG
);
3836 is_client_sendq_empty(server3
, MSG
);
3839 sendto_match_servs(&me
, "*.invalid", 0, 0, "Hello %s!", "World");
3840 is_client_sendq_empty(server
, MSG
);
3841 is_client_sendq_empty(server2
, MSG
);
3842 is_client_sendq_empty(server3
, MSG
);
3844 sendto_match_servs(user
, "*.invalid", 0, 0, "Hello %s!", "World");
3845 is_client_sendq_empty(server
, MSG
);
3846 is_client_sendq_empty(server2
, MSG
);
3847 is_client_sendq_empty(server3
, MSG
);
3849 sendto_match_servs(remote
, "*.invalid", 0, 0, "Hello %s!", "World");
3850 is_client_sendq_empty(server
, MSG
);
3851 is_client_sendq_empty(server2
, MSG
);
3852 is_client_sendq_empty(server3
, MSG
);
3854 sendto_match_servs(server
, "*.invalid", 0, 0, "Hello %s!", "World");
3855 is_client_sendq_empty(server
, MSG
);
3856 is_client_sendq_empty(server2
, MSG
);
3857 is_client_sendq_empty(server3
, MSG
);
3862 static void sendto_match_servs1__tags(void)
3866 strcpy(user
->user
->suser
, "test");
3867 strcpy(remote
->user
->suser
, "rtest");
3868 user
->localClient
->caps
|= CAP_ACCOUNT_TAG
;
3869 user
->localClient
->caps
|= CAP_SERVER_TIME
;
3871 server
->localClient
->caps
= CAP_ENCAP
;
3872 server2
->localClient
->caps
= CAP_ENCAP
;
3873 server2
->localClient
->caps
|= CAP_KNOCK
;
3874 server3
->localClient
->caps
= CAP_BAN
;
3876 // This function does not support TS5...
3880 sendto_match_servs(&me
, "*.test", 0, 0, "Hello %s!", "World");
3881 is_client_sendq(":" TEST_ME_ID
" Hello World!" CRLF
, server
, MSG
);
3882 is_client_sendq(":" TEST_ME_ID
" Hello World!" CRLF
, server2
, MSG
);
3883 is_client_sendq(":" TEST_ME_ID
" Hello World!" CRLF
, server3
, MSG
);
3885 sendto_match_servs(user
, "*.test", 0, 0, "Hello %s!", "World");
3886 is_client_sendq(":" TEST_ID
" Hello World!" CRLF
, server
, MSG
);
3887 is_client_sendq(":" TEST_ID
" Hello World!" CRLF
, server2
, MSG
);
3888 is_client_sendq(":" TEST_ID
" Hello World!" CRLF
, server3
, MSG
);
3890 sendto_match_servs(remote
, "*.test", 0, 0, "Hello %s!", "World");
3891 is_client_sendq_empty(server
, MSG
);
3892 is_client_sendq(":" TEST_REMOTE_ID
" Hello World!" CRLF
, server2
, MSG
);
3893 is_client_sendq(":" TEST_REMOTE_ID
" Hello World!" CRLF
, server3
, MSG
);
3895 sendto_match_servs(server
, "*.test", 0, 0, "Hello %s!", "World");
3896 is_client_sendq_empty(server
, MSG
);
3897 is_client_sendq(":" TEST_SERVER_ID
" Hello World!" CRLF
, server2
, MSG
);
3898 is_client_sendq(":" TEST_SERVER_ID
" Hello World!" CRLF
, server3
, MSG
);
3900 // Match all, CAP_ENCAP but not CAP_KNOCK
3901 sendto_match_servs(&me
, "*.test", CAP_ENCAP
, CAP_KNOCK
, "Hello %s!", "World");
3902 is_client_sendq(":" TEST_ME_ID
" Hello World!" CRLF
, server
, MSG
);
3903 is_client_sendq_empty(server2
, MSG
);
3904 is_client_sendq_empty(server3
, MSG
);
3906 sendto_match_servs(user
, "*.test", CAP_ENCAP
, CAP_KNOCK
, "Hello %s!", "World");
3907 is_client_sendq(":" TEST_ID
" Hello World!" CRLF
, server
, MSG
);
3908 is_client_sendq_empty(server2
, MSG
);
3909 is_client_sendq_empty(server3
, MSG
);
3911 sendto_match_servs(remote
, "*.test", CAP_ENCAP
, CAP_KNOCK
, "Hello %s!", "World");
3912 is_client_sendq_empty(server
, MSG
);
3913 is_client_sendq_empty(server2
, MSG
);
3914 is_client_sendq_empty(server3
, MSG
);
3916 sendto_match_servs(server
, "*.test", CAP_ENCAP
, CAP_KNOCK
, "Hello %s!", "World");
3917 is_client_sendq_empty(server
, MSG
);
3918 is_client_sendq_empty(server2
, MSG
);
3919 is_client_sendq_empty(server3
, MSG
);
3921 // Match all, but not CAP_BAN
3922 sendto_match_servs(&me
, "*.test", 0, CAP_BAN
, "Hello %s!", "World");
3923 is_client_sendq(":" TEST_ME_ID
" Hello World!" CRLF
, server
, MSG
);
3924 is_client_sendq(":" TEST_ME_ID
" Hello World!" CRLF
, server2
, MSG
);
3925 is_client_sendq_empty(server3
, MSG
);
3927 sendto_match_servs(user
, "*.test", 0, CAP_BAN
, "Hello %s!", "World");
3928 is_client_sendq(":" TEST_ID
" Hello World!" CRLF
, server
, MSG
);
3929 is_client_sendq(":" TEST_ID
" Hello World!" CRLF
, server2
, MSG
);
3930 is_client_sendq_empty(server3
, MSG
);
3932 sendto_match_servs(remote
, "*.test", 0, CAP_BAN
, "Hello %s!", "World");
3933 is_client_sendq_empty(server
, MSG
);
3934 is_client_sendq(":" TEST_REMOTE_ID
" Hello World!" CRLF
, server2
, MSG
);
3935 is_client_sendq_empty(server3
, MSG
);
3937 sendto_match_servs(server
, "*.test", 0, CAP_BAN
, "Hello %s!", "World");
3938 is_client_sendq_empty(server
, MSG
);
3939 is_client_sendq(":" TEST_SERVER_ID
" Hello World!" CRLF
, server2
, MSG
);
3940 is_client_sendq_empty(server3
, MSG
);
3942 // Match all, CAP_BAN but not CAP_KNOCK
3943 sendto_match_servs(&me
, "*.test", CAP_BAN
, CAP_KNOCK
, "Hello %s!", "World");
3944 is_client_sendq_empty(server
, MSG
);
3945 is_client_sendq_empty(server2
, MSG
);
3946 is_client_sendq(":" TEST_ME_ID
" Hello World!" CRLF
, server3
, MSG
);
3948 sendto_match_servs(user
, "*.test", CAP_BAN
, CAP_KNOCK
, "Hello %s!", "World");
3949 is_client_sendq_empty(server
, MSG
);
3950 is_client_sendq_empty(server2
, MSG
);
3951 is_client_sendq(":" TEST_ID
" Hello World!" CRLF
, server3
, MSG
);
3953 sendto_match_servs(remote
, "*.test", CAP_BAN
, CAP_KNOCK
, "Hello %s!", "World");
3954 is_client_sendq_empty(server
, MSG
);
3955 is_client_sendq_empty(server2
, MSG
);
3956 is_client_sendq(":" TEST_REMOTE_ID
" Hello World!" CRLF
, server3
, MSG
);
3958 sendto_match_servs(server
, "*.test", CAP_BAN
, CAP_KNOCK
, "Hello %s!", "World");
3959 is_client_sendq_empty(server
, MSG
);
3960 is_client_sendq_empty(server2
, MSG
);
3961 is_client_sendq(":" TEST_SERVER_ID
" Hello World!" CRLF
, server3
, MSG
);
3963 // Match all, CAP_KNOCK
3964 sendto_match_servs(&me
, "*.test", CAP_KNOCK
, 0, "Hello %s!", "World");
3965 is_client_sendq_empty(server
, MSG
);
3966 is_client_sendq(":" TEST_ME_ID
" Hello World!" CRLF
, server2
, MSG
);
3967 is_client_sendq_empty(server3
, MSG
);
3969 sendto_match_servs(user
, "*.test", CAP_KNOCK
, 0, "Hello %s!", "World");
3970 is_client_sendq_empty(server
, MSG
);
3971 is_client_sendq(":" TEST_ID
" Hello World!" CRLF
, server2
, MSG
);
3972 is_client_sendq_empty(server3
, MSG
);
3974 sendto_match_servs(remote
, "*.test", CAP_KNOCK
, 0, "Hello %s!", "World");
3975 is_client_sendq_empty(server
, MSG
);
3976 is_client_sendq(":" TEST_REMOTE_ID
" Hello World!" CRLF
, server2
, MSG
);
3977 is_client_sendq_empty(server3
, MSG
);
3979 sendto_match_servs(server
, "*.test", CAP_KNOCK
, 0, "Hello %s!", "World");
3980 is_client_sendq_empty(server
, MSG
);
3981 is_client_sendq(":" TEST_SERVER_ID
" Hello World!" CRLF
, server2
, MSG
);
3982 is_client_sendq_empty(server3
, MSG
);
3985 sendto_match_servs(&me
, "*.invalid", 0, 0, "Hello %s!", "World");
3986 is_client_sendq_empty(server
, MSG
);
3987 is_client_sendq_empty(server2
, MSG
);
3988 is_client_sendq_empty(server3
, MSG
);
3990 sendto_match_servs(user
, "*.invalid", 0, 0, "Hello %s!", "World");
3991 is_client_sendq_empty(server
, MSG
);
3992 is_client_sendq_empty(server2
, MSG
);
3993 is_client_sendq_empty(server3
, MSG
);
3995 sendto_match_servs(remote
, "*.invalid", 0, 0, "Hello %s!", "World");
3996 is_client_sendq_empty(server
, MSG
);
3997 is_client_sendq_empty(server2
, MSG
);
3998 is_client_sendq_empty(server3
, MSG
);
4000 sendto_match_servs(server
, "*.invalid", 0, 0, "Hello %s!", "World");
4001 is_client_sendq_empty(server
, MSG
);
4002 is_client_sendq_empty(server2
, MSG
);
4003 is_client_sendq_empty(server3
, MSG
);
4008 static void sendto_realops_snomask1(void)
4010 struct Client
*oper1
= make_local_person_nick("oper1");
4011 struct Client
*oper2
= make_local_person_nick("oper2");
4012 struct Client
*oper3
= make_local_person_nick("oper3");
4013 struct Client
*oper4
= make_local_person_nick("oper4");
4017 make_local_person_oper(oper1
);
4018 make_local_person_oper(oper2
);
4019 make_local_person_oper(oper3
);
4020 make_local_person_oper(oper4
);
4022 oper1
->snomask
= SNO_BOTS
| SNO_SKILL
;
4023 oper2
->snomask
= SNO_GENERAL
| SNO_REJ
;
4024 oper3
->snomask
= SNO_BOTS
| SNO_SKILL
;
4025 oper4
->snomask
= SNO_GENERAL
| SNO_REJ
;
4027 oper3
->user
->privset
= privilegeset_get("admin");
4028 oper4
->user
->privset
= privilegeset_get("admin");
4030 server
->localClient
->caps
= CAP_ENCAP
| CAP_TS6
;
4031 server2
->localClient
->caps
= 0;
4033 ConfigFileEntry
.global_snotices
= 0;
4034 remote_rehash_oper_p
= NULL
;
4036 sendto_realops_snomask(SNO_BOTS
, L_ALL
, "Hello %s!", "World");
4037 is_client_sendq(":" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper1
, "Matches mask; " MSG
);
4038 is_client_sendq_empty(oper2
, "Doesn't match mask; " MSG
);
4039 is_client_sendq(":" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper3
, "Matches mask; " MSG
);
4040 is_client_sendq_empty(oper4
, "Doesn't match mask; " MSG
);
4041 is_client_sendq_empty(server
, MSG
);
4043 sendto_realops_snomask(SNO_BOTS
, L_ADMIN
, "Hello %s!", "World");
4044 is_client_sendq_empty(oper1
, "Not an admin; " MSG
);
4045 is_client_sendq_empty(oper2
, "Doesn't match mask; " MSG
);
4046 is_client_sendq(":" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper3
, "Matches mask; " MSG
);
4047 is_client_sendq_empty(oper4
, "Doesn't match mask; " MSG
);
4048 is_client_sendq_empty(server
, MSG
);
4050 sendto_realops_snomask(SNO_BOTS
, L_OPER
, "Hello %s!", "World");
4051 is_client_sendq(":" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper1
, "Matches mask; " MSG
);
4052 is_client_sendq_empty(oper2
, "Doesn't match mask; " MSG
);
4053 is_client_sendq_empty(oper3
, "Not an oper; " MSG
);
4054 is_client_sendq_empty(oper4
, "Doesn't match mask; " MSG
);
4055 is_client_sendq_empty(server
, MSG
);
4057 sendto_realops_snomask(SNO_GENERAL
, L_ALL
, "Hello %s!", "World");
4058 is_client_sendq_empty(oper1
, "Doesn't match mask; " MSG
);
4059 is_client_sendq(":" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper2
, "Matches mask; " MSG
);
4060 is_client_sendq_empty(oper3
, "Doesn't match mask; " MSG
);
4061 is_client_sendq(":" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper4
, "Matches mask; " MSG
);
4062 is_client_sendq_empty(server
, MSG
);
4064 sendto_realops_snomask(SNO_GENERAL
, L_ADMIN
, "Hello %s!", "World");
4065 is_client_sendq_empty(oper1
, "Doesn't match mask; " MSG
);
4066 is_client_sendq_empty(oper2
, "Not an admin; " MSG
);
4067 is_client_sendq_empty(oper3
, "Doesn't match mask; " MSG
);
4068 is_client_sendq(":" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper4
, "Matches mask; " MSG
);
4069 is_client_sendq_empty(server
, MSG
);
4071 sendto_realops_snomask(SNO_GENERAL
, L_OPER
, "Hello %s!", "World");
4072 is_client_sendq_empty(oper1
, "Doesn't match mask; " MSG
);
4073 is_client_sendq(":" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper2
, "Matches mask; " MSG
);
4074 is_client_sendq_empty(oper3
, "Doesn't match mask; " MSG
);
4075 is_client_sendq_empty(oper4
, "Not an oper; " MSG
);
4076 is_client_sendq_empty(server
, MSG
);
4078 remote_rehash_oper_p
= remote
;
4080 sendto_realops_snomask(SNO_BOTS
, L_ALL
, "Hello %s!", "World");
4081 is_client_sendq(":" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper1
, "Matches mask; " MSG
);
4082 is_client_sendq_empty(oper2
, "Doesn't match mask; " MSG
);
4083 is_client_sendq(":" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper3
, "Matches mask; " MSG
);
4084 is_client_sendq_empty(oper4
, "Doesn't match mask; " MSG
);
4085 is_client_sendq(":" TEST_ME_NAME
" NOTICE " TEST_REMOTE_NICK
" :*** Notice -- Hello World!" CRLF
, server
, MSG
);
4087 sendto_realops_snomask(SNO_BOTS
, L_ADMIN
, "Hello %s!", "World");
4088 is_client_sendq_empty(oper1
, "Not an admin; " MSG
);
4089 is_client_sendq_empty(oper2
, "Doesn't match mask; " MSG
);
4090 is_client_sendq(":" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper3
, "Matches mask; " MSG
);
4091 is_client_sendq_empty(oper4
, "Doesn't match mask; " MSG
);
4092 is_client_sendq(":" TEST_ME_NAME
" NOTICE " TEST_REMOTE_NICK
" :*** Notice -- Hello World!" CRLF
, server
, MSG
);
4094 sendto_realops_snomask(SNO_BOTS
, L_OPER
, "Hello %s!", "World");
4095 is_client_sendq(":" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper1
, "Matches mask; " MSG
);
4096 is_client_sendq_empty(oper2
, "Doesn't match mask; " MSG
);
4097 is_client_sendq_empty(oper3
, "Not an oper; " MSG
);
4098 is_client_sendq_empty(oper4
, "Doesn't match mask; " MSG
);
4099 is_client_sendq(":" TEST_ME_NAME
" NOTICE " TEST_REMOTE_NICK
" :*** Notice -- Hello World!" CRLF
, server
, MSG
);
4101 sendto_realops_snomask(SNO_GENERAL
, L_ALL
, "Hello %s!", "World");
4102 is_client_sendq_empty(oper1
, "Doesn't match mask; " MSG
);
4103 is_client_sendq(":" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper2
, "Matches mask; " MSG
);
4104 is_client_sendq_empty(oper3
, "Doesn't match mask; " MSG
);
4105 is_client_sendq(":" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper4
, "Matches mask; " MSG
);
4106 is_client_sendq(":" TEST_ME_NAME
" NOTICE " TEST_REMOTE_NICK
" :*** Notice -- Hello World!" CRLF
, server
, MSG
);
4108 sendto_realops_snomask(SNO_GENERAL
, L_ADMIN
, "Hello %s!", "World");
4109 is_client_sendq_empty(oper1
, "Doesn't match mask; " MSG
);
4110 is_client_sendq_empty(oper2
, "Not an admin; " MSG
);
4111 is_client_sendq_empty(oper3
, "Doesn't match mask; " MSG
);
4112 is_client_sendq(":" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper4
, "Matches mask; " MSG
);
4113 is_client_sendq(":" TEST_ME_NAME
" NOTICE " TEST_REMOTE_NICK
" :*** Notice -- Hello World!" CRLF
, server
, MSG
);
4115 sendto_realops_snomask(SNO_GENERAL
, L_OPER
, "Hello %s!", "World");
4116 is_client_sendq_empty(oper1
, "Doesn't match mask; " MSG
);
4117 is_client_sendq(":" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper2
, "Matches mask; " MSG
);
4118 is_client_sendq_empty(oper3
, "Doesn't match mask; " MSG
);
4119 is_client_sendq_empty(oper4
, "Not an oper; " MSG
);
4120 is_client_sendq(":" TEST_ME_NAME
" NOTICE " TEST_REMOTE_NICK
" :*** Notice -- Hello World!" CRLF
, server
, MSG
);
4124 sendto_realops_snomask(SNO_BOTS
, L_ALL
, "Hello %s!", "World");
4125 is_client_sendq(":" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper1
, "Matches mask; " MSG
);
4126 is_client_sendq_empty(oper2
, "Doesn't match mask; " MSG
);
4127 is_client_sendq(":" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper3
, "Matches mask; " MSG
);
4128 is_client_sendq_empty(oper4
, "Doesn't match mask; " MSG
);
4129 is_client_sendq(":" TEST_ME_ID
" NOTICE " TEST_REMOTE_ID
" :*** Notice -- Hello World!" CRLF
, server
, MSG
);
4131 sendto_realops_snomask(SNO_BOTS
, L_ADMIN
, "Hello %s!", "World");
4132 is_client_sendq_empty(oper1
, "Not an admin; " MSG
);
4133 is_client_sendq_empty(oper2
, "Doesn't match mask; " MSG
);
4134 is_client_sendq(":" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper3
, "Matches mask; " MSG
);
4135 is_client_sendq_empty(oper4
, "Doesn't match mask; " MSG
);
4136 is_client_sendq(":" TEST_ME_ID
" NOTICE " TEST_REMOTE_ID
" :*** Notice -- Hello World!" CRLF
, server
, MSG
);
4138 sendto_realops_snomask(SNO_BOTS
, L_OPER
, "Hello %s!", "World");
4139 is_client_sendq(":" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper1
, "Matches mask; " MSG
);
4140 is_client_sendq_empty(oper2
, "Doesn't match mask; " MSG
);
4141 is_client_sendq_empty(oper3
, "Not an oper; " MSG
);
4142 is_client_sendq_empty(oper4
, "Doesn't match mask; " MSG
);
4143 is_client_sendq(":" TEST_ME_ID
" NOTICE " TEST_REMOTE_ID
" :*** Notice -- Hello World!" CRLF
, server
, MSG
);
4145 sendto_realops_snomask(SNO_GENERAL
, L_ALL
, "Hello %s!", "World");
4146 is_client_sendq_empty(oper1
, "Doesn't match mask; " MSG
);
4147 is_client_sendq(":" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper2
, "Matches mask; " MSG
);
4148 is_client_sendq_empty(oper3
, "Doesn't match mask; " MSG
);
4149 is_client_sendq(":" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper4
, "Matches mask; " MSG
);
4150 is_client_sendq(":" TEST_ME_ID
" NOTICE " TEST_REMOTE_ID
" :*** Notice -- Hello World!" CRLF
, server
, MSG
);
4152 sendto_realops_snomask(SNO_GENERAL
, L_ADMIN
, "Hello %s!", "World");
4153 is_client_sendq_empty(oper1
, "Doesn't match mask; " MSG
);
4154 is_client_sendq_empty(oper2
, "Not an admin; " MSG
);
4155 is_client_sendq_empty(oper3
, "Doesn't match mask; " MSG
);
4156 is_client_sendq(":" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper4
, "Matches mask; " MSG
);
4157 is_client_sendq(":" TEST_ME_ID
" NOTICE " TEST_REMOTE_ID
" :*** Notice -- Hello World!" CRLF
, server
, MSG
);
4159 sendto_realops_snomask(SNO_GENERAL
, L_OPER
, "Hello %s!", "World");
4160 is_client_sendq_empty(oper1
, "Doesn't match mask; " MSG
);
4161 is_client_sendq(":" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper2
, "Matches mask; " MSG
);
4162 is_client_sendq_empty(oper3
, "Doesn't match mask; " MSG
);
4163 is_client_sendq_empty(oper4
, "Not an oper; " MSG
);
4164 is_client_sendq(":" TEST_ME_ID
" NOTICE " TEST_REMOTE_ID
" :*** Notice -- Hello World!" CRLF
, server
, MSG
);
4166 // This feature does not support TS5...
4167 ConfigFileEntry
.global_snotices
= 1;
4169 sendto_realops_snomask(SNO_BOTS
, L_NETWIDE
| L_ALL
, "Hello %s!", "World");
4170 is_client_sendq(":" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper1
, "Matches mask; " MSG
);
4171 is_client_sendq_empty(oper2
, "Doesn't match mask; " MSG
);
4172 is_client_sendq(":" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper3
, "Matches mask; " MSG
);
4173 is_client_sendq_empty(oper4
, "Doesn't match mask; " MSG
);
4174 is_client_sendq(":" TEST_ME_ID
" ENCAP * SNOTE b :Hello World!" CRLF
, server
, MSG
);
4175 is_client_sendq_empty(server2
, MSG
);
4177 sendto_realops_snomask(SNO_BOTS
, L_NETWIDE
| L_ADMIN
, "Hello %s!", "World");
4178 is_client_sendq_empty(oper1
, "Not an admin; " MSG
);
4179 is_client_sendq_empty(oper2
, "Doesn't match mask; " MSG
);
4180 is_client_sendq(":" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper3
, "Matches mask; " MSG
);
4181 is_client_sendq_empty(oper4
, "Doesn't match mask; " MSG
);
4182 is_client_sendq(":" TEST_ME_ID
" ENCAP * SNOTE b :Hello World!" CRLF
, server
, MSG
);
4183 is_client_sendq_empty(server2
, MSG
);
4185 sendto_realops_snomask(SNO_BOTS
, L_NETWIDE
| L_OPER
, "Hello %s!", "World");
4186 is_client_sendq(":" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper1
, "Matches mask; " MSG
);
4187 is_client_sendq_empty(oper2
, "Doesn't match mask; " MSG
);
4188 is_client_sendq_empty(oper3
, "Not an oper; " MSG
);
4189 is_client_sendq_empty(oper4
, "Doesn't match mask; " MSG
);
4190 is_client_sendq(":" TEST_ME_ID
" ENCAP * SNOTE b :Hello World!" CRLF
, server
, MSG
);
4191 is_client_sendq_empty(server2
, MSG
);
4193 sendto_realops_snomask(SNO_GENERAL
, L_NETWIDE
| L_ALL
, "Hello %s!", "World");
4194 is_client_sendq_empty(oper1
, "Doesn't match mask; " MSG
);
4195 is_client_sendq(":" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper2
, "Matches mask; " MSG
);
4196 is_client_sendq_empty(oper3
, "Doesn't match mask; " MSG
);
4197 is_client_sendq(":" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper4
, "Matches mask; " MSG
);
4198 is_client_sendq(":" TEST_ME_ID
" ENCAP * SNOTE s :Hello World!" CRLF
, server
, MSG
);
4199 is_client_sendq_empty(server2
, MSG
);
4201 sendto_realops_snomask(SNO_GENERAL
, L_NETWIDE
| L_ADMIN
, "Hello %s!", "World");
4202 is_client_sendq_empty(oper1
, "Doesn't match mask; " MSG
);
4203 is_client_sendq_empty(oper2
, "Not an admin; " MSG
);
4204 is_client_sendq_empty(oper3
, "Doesn't match mask; " MSG
);
4205 is_client_sendq(":" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper4
, "Matches mask; " MSG
);
4206 is_client_sendq(":" TEST_ME_ID
" ENCAP * SNOTE s :Hello World!" CRLF
, server
, MSG
);
4207 is_client_sendq_empty(server2
, MSG
);
4209 sendto_realops_snomask(SNO_GENERAL
, L_NETWIDE
| L_OPER
, "Hello %s!", "World");
4210 is_client_sendq_empty(oper1
, "Doesn't match mask; " MSG
);
4211 is_client_sendq(":" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper2
, "Matches mask; " MSG
);
4212 is_client_sendq_empty(oper3
, "Doesn't match mask; " MSG
);
4213 is_client_sendq_empty(oper4
, "Not an oper; " MSG
);
4214 is_client_sendq(":" TEST_ME_ID
" ENCAP * SNOTE s :Hello World!" CRLF
, server
, MSG
);
4215 is_client_sendq_empty(server2
, MSG
);
4217 remove_local_person(oper1
);
4218 remove_local_person(oper2
);
4219 remove_local_person(oper3
);
4220 remove_local_person(oper4
);
4225 static void sendto_realops_snomask1__tags(void)
4227 struct Client
*oper1
= make_local_person_nick("oper1");
4228 struct Client
*oper2
= make_local_person_nick("oper2");
4229 struct Client
*oper3
= make_local_person_nick("oper3");
4230 struct Client
*oper4
= make_local_person_nick("oper4");
4234 strcpy(oper1
->user
->suser
, "test1");
4235 strcpy(oper2
->user
->suser
, "test2");
4236 strcpy(oper3
->user
->suser
, "test3");
4237 strcpy(oper4
->user
->suser
, "test4");
4239 oper1
->localClient
->caps
|= CAP_ACCOUNT_TAG
;
4240 oper1
->localClient
->caps
|= CAP_SERVER_TIME
;
4241 oper2
->localClient
->caps
|= CAP_SERVER_TIME
;
4242 oper3
->localClient
->caps
|= CAP_ACCOUNT_TAG
;
4244 make_local_person_oper(oper1
);
4245 make_local_person_oper(oper2
);
4246 make_local_person_oper(oper3
);
4247 make_local_person_oper(oper4
);
4249 oper1
->snomask
= SNO_BOTS
| SNO_SKILL
;
4250 oper2
->snomask
= SNO_GENERAL
| SNO_REJ
;
4251 oper3
->snomask
= SNO_BOTS
| SNO_SKILL
;
4252 oper4
->snomask
= SNO_GENERAL
| SNO_REJ
;
4254 oper3
->user
->privset
= privilegeset_get("admin");
4255 oper4
->user
->privset
= privilegeset_get("admin");
4257 server
->localClient
->caps
= CAP_ENCAP
| CAP_TS6
;
4258 server2
->localClient
->caps
= 0;
4260 ConfigFileEntry
.global_snotices
= 0;
4261 remote_rehash_oper_p
= NULL
;
4263 sendto_realops_snomask(SNO_BOTS
, L_ALL
, "Hello %s!", "World");
4264 is_client_sendq("@time=" ADVENTURE_TIME
" :" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper1
, "Matches mask; " MSG
);
4265 is_client_sendq_empty(oper2
, "Doesn't match mask; " MSG
);
4266 is_client_sendq(":" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper3
, "Matches mask; " MSG
);
4267 is_client_sendq_empty(oper4
, "Doesn't match mask; " MSG
);
4268 is_client_sendq_empty(server
, MSG
);
4270 sendto_realops_snomask(SNO_BOTS
, L_ADMIN
, "Hello %s!", "World");
4271 is_client_sendq_empty(oper1
, "Not an admin; " MSG
);
4272 is_client_sendq_empty(oper2
, "Doesn't match mask; " MSG
);
4273 is_client_sendq(":" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper3
, "Matches mask; " MSG
);
4274 is_client_sendq_empty(oper4
, "Doesn't match mask; " MSG
);
4275 is_client_sendq_empty(server
, MSG
);
4277 sendto_realops_snomask(SNO_BOTS
, L_OPER
, "Hello %s!", "World");
4278 is_client_sendq("@time=" ADVENTURE_TIME
" :" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper1
, "Matches mask; " MSG
);
4279 is_client_sendq_empty(oper2
, "Doesn't match mask; " MSG
);
4280 is_client_sendq_empty(oper3
, "Not an oper; " MSG
);
4281 is_client_sendq_empty(oper4
, "Doesn't match mask; " MSG
);
4282 is_client_sendq_empty(server
, MSG
);
4284 sendto_realops_snomask(SNO_GENERAL
, L_ALL
, "Hello %s!", "World");
4285 is_client_sendq_empty(oper1
, "Doesn't match mask; " MSG
);
4286 is_client_sendq("@time=" ADVENTURE_TIME
" :" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper2
, "Matches mask; " MSG
);
4287 is_client_sendq_empty(oper3
, "Doesn't match mask; " MSG
);
4288 is_client_sendq(":" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper4
, "Matches mask; " MSG
);
4289 is_client_sendq_empty(server
, MSG
);
4291 sendto_realops_snomask(SNO_GENERAL
, L_ADMIN
, "Hello %s!", "World");
4292 is_client_sendq_empty(oper1
, "Doesn't match mask; " MSG
);
4293 is_client_sendq_empty(oper2
, "Not an admin; " MSG
);
4294 is_client_sendq_empty(oper3
, "Doesn't match mask; " MSG
);
4295 is_client_sendq(":" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper4
, "Matches mask; " MSG
);
4296 is_client_sendq_empty(server
, MSG
);
4298 sendto_realops_snomask(SNO_GENERAL
, L_OPER
, "Hello %s!", "World");
4299 is_client_sendq_empty(oper1
, "Doesn't match mask; " MSG
);
4300 is_client_sendq("@time=" ADVENTURE_TIME
" :" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper2
, "Matches mask; " MSG
);
4301 is_client_sendq_empty(oper3
, "Doesn't match mask; " MSG
);
4302 is_client_sendq_empty(oper4
, "Not an oper; " MSG
);
4303 is_client_sendq_empty(server
, MSG
);
4305 remote_rehash_oper_p
= remote
;
4307 sendto_realops_snomask(SNO_BOTS
, L_ALL
, "Hello %s!", "World");
4308 is_client_sendq("@time=" ADVENTURE_TIME
" :" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper1
, "Matches mask; " MSG
);
4309 is_client_sendq_empty(oper2
, "Doesn't match mask; " MSG
);
4310 is_client_sendq(":" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper3
, "Matches mask; " MSG
);
4311 is_client_sendq_empty(oper4
, "Doesn't match mask; " MSG
);
4312 is_client_sendq(":" TEST_ME_NAME
" NOTICE " TEST_REMOTE_NICK
" :*** Notice -- Hello World!" CRLF
, server
, MSG
);
4314 sendto_realops_snomask(SNO_BOTS
, L_ADMIN
, "Hello %s!", "World");
4315 is_client_sendq_empty(oper1
, "Not an admin; " MSG
);
4316 is_client_sendq_empty(oper2
, "Doesn't match mask; " MSG
);
4317 is_client_sendq(":" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper3
, "Matches mask; " MSG
);
4318 is_client_sendq_empty(oper4
, "Doesn't match mask; " MSG
);
4319 is_client_sendq(":" TEST_ME_NAME
" NOTICE " TEST_REMOTE_NICK
" :*** Notice -- Hello World!" CRLF
, server
, MSG
);
4321 sendto_realops_snomask(SNO_BOTS
, L_OPER
, "Hello %s!", "World");
4322 is_client_sendq("@time=" ADVENTURE_TIME
" :" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper1
, "Matches mask; " MSG
);
4323 is_client_sendq_empty(oper2
, "Doesn't match mask; " MSG
);
4324 is_client_sendq_empty(oper3
, "Not an oper; " MSG
);
4325 is_client_sendq_empty(oper4
, "Doesn't match mask; " MSG
);
4326 is_client_sendq(":" TEST_ME_NAME
" NOTICE " TEST_REMOTE_NICK
" :*** Notice -- Hello World!" CRLF
, server
, MSG
);
4328 sendto_realops_snomask(SNO_GENERAL
, L_ALL
, "Hello %s!", "World");
4329 is_client_sendq_empty(oper1
, "Doesn't match mask; " MSG
);
4330 is_client_sendq("@time=" ADVENTURE_TIME
" :" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper2
, "Matches mask; " MSG
);
4331 is_client_sendq_empty(oper3
, "Doesn't match mask; " MSG
);
4332 is_client_sendq(":" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper4
, "Matches mask; " MSG
);
4333 is_client_sendq(":" TEST_ME_NAME
" NOTICE " TEST_REMOTE_NICK
" :*** Notice -- Hello World!" CRLF
, server
, MSG
);
4335 sendto_realops_snomask(SNO_GENERAL
, L_ADMIN
, "Hello %s!", "World");
4336 is_client_sendq_empty(oper1
, "Doesn't match mask; " MSG
);
4337 is_client_sendq_empty(oper2
, "Not an admin; " MSG
);
4338 is_client_sendq_empty(oper3
, "Doesn't match mask; " MSG
);
4339 is_client_sendq(":" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper4
, "Matches mask; " MSG
);
4340 is_client_sendq(":" TEST_ME_NAME
" NOTICE " TEST_REMOTE_NICK
" :*** Notice -- Hello World!" CRLF
, server
, MSG
);
4342 sendto_realops_snomask(SNO_GENERAL
, L_OPER
, "Hello %s!", "World");
4343 is_client_sendq_empty(oper1
, "Doesn't match mask; " MSG
);
4344 is_client_sendq("@time=" ADVENTURE_TIME
" :" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper2
, "Matches mask; " MSG
);
4345 is_client_sendq_empty(oper3
, "Doesn't match mask; " MSG
);
4346 is_client_sendq_empty(oper4
, "Not an oper; " MSG
);
4347 is_client_sendq(":" TEST_ME_NAME
" NOTICE " TEST_REMOTE_NICK
" :*** Notice -- Hello World!" CRLF
, server
, MSG
);
4351 sendto_realops_snomask(SNO_BOTS
, L_ALL
, "Hello %s!", "World");
4352 is_client_sendq("@time=" ADVENTURE_TIME
" :" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper1
, "Matches mask; " MSG
);
4353 is_client_sendq_empty(oper2
, "Doesn't match mask; " MSG
);
4354 is_client_sendq(":" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper3
, "Matches mask; " MSG
);
4355 is_client_sendq_empty(oper4
, "Doesn't match mask; " MSG
);
4356 is_client_sendq(":" TEST_ME_ID
" NOTICE " TEST_REMOTE_ID
" :*** Notice -- Hello World!" CRLF
, server
, MSG
);
4358 sendto_realops_snomask(SNO_BOTS
, L_ADMIN
, "Hello %s!", "World");
4359 is_client_sendq_empty(oper1
, "Not an admin; " MSG
);
4360 is_client_sendq_empty(oper2
, "Doesn't match mask; " MSG
);
4361 is_client_sendq(":" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper3
, "Matches mask; " MSG
);
4362 is_client_sendq_empty(oper4
, "Doesn't match mask; " MSG
);
4363 is_client_sendq(":" TEST_ME_ID
" NOTICE " TEST_REMOTE_ID
" :*** Notice -- Hello World!" CRLF
, server
, MSG
);
4365 sendto_realops_snomask(SNO_BOTS
, L_OPER
, "Hello %s!", "World");
4366 is_client_sendq("@time=" ADVENTURE_TIME
" :" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper1
, "Matches mask; " MSG
);
4367 is_client_sendq_empty(oper2
, "Doesn't match mask; " MSG
);
4368 is_client_sendq_empty(oper3
, "Not an oper; " MSG
);
4369 is_client_sendq_empty(oper4
, "Doesn't match mask; " MSG
);
4370 is_client_sendq(":" TEST_ME_ID
" NOTICE " TEST_REMOTE_ID
" :*** Notice -- Hello World!" CRLF
, server
, MSG
);
4372 sendto_realops_snomask(SNO_GENERAL
, L_ALL
, "Hello %s!", "World");
4373 is_client_sendq_empty(oper1
, "Doesn't match mask; " MSG
);
4374 is_client_sendq("@time=" ADVENTURE_TIME
" :" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper2
, "Matches mask; " MSG
);
4375 is_client_sendq_empty(oper3
, "Doesn't match mask; " MSG
);
4376 is_client_sendq(":" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper4
, "Matches mask; " MSG
);
4377 is_client_sendq(":" TEST_ME_ID
" NOTICE " TEST_REMOTE_ID
" :*** Notice -- Hello World!" CRLF
, server
, MSG
);
4379 sendto_realops_snomask(SNO_GENERAL
, L_ADMIN
, "Hello %s!", "World");
4380 is_client_sendq_empty(oper1
, "Doesn't match mask; " MSG
);
4381 is_client_sendq_empty(oper2
, "Not an admin; " MSG
);
4382 is_client_sendq_empty(oper3
, "Doesn't match mask; " MSG
);
4383 is_client_sendq(":" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper4
, "Matches mask; " MSG
);
4384 is_client_sendq(":" TEST_ME_ID
" NOTICE " TEST_REMOTE_ID
" :*** Notice -- Hello World!" CRLF
, server
, MSG
);
4386 sendto_realops_snomask(SNO_GENERAL
, L_OPER
, "Hello %s!", "World");
4387 is_client_sendq_empty(oper1
, "Doesn't match mask; " MSG
);
4388 is_client_sendq("@time=" ADVENTURE_TIME
" :" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper2
, "Matches mask; " MSG
);
4389 is_client_sendq_empty(oper3
, "Doesn't match mask; " MSG
);
4390 is_client_sendq_empty(oper4
, "Not an oper; " MSG
);
4391 is_client_sendq(":" TEST_ME_ID
" NOTICE " TEST_REMOTE_ID
" :*** Notice -- Hello World!" CRLF
, server
, MSG
);
4393 // This feature does not support TS5...
4394 ConfigFileEntry
.global_snotices
= 1;
4396 sendto_realops_snomask(SNO_BOTS
, L_NETWIDE
| L_ALL
, "Hello %s!", "World");
4397 is_client_sendq("@time=" ADVENTURE_TIME
" :" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper1
, "Matches mask; " MSG
);
4398 is_client_sendq_empty(oper2
, "Doesn't match mask; " MSG
);
4399 is_client_sendq(":" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper3
, "Matches mask; " MSG
);
4400 is_client_sendq_empty(oper4
, "Doesn't match mask; " MSG
);
4401 is_client_sendq(":" TEST_ME_ID
" ENCAP * SNOTE b :Hello World!" CRLF
, server
, MSG
);
4402 is_client_sendq_empty(server2
, MSG
);
4404 sendto_realops_snomask(SNO_BOTS
, L_NETWIDE
| L_ADMIN
, "Hello %s!", "World");
4405 is_client_sendq_empty(oper1
, "Not an admin; " MSG
);
4406 is_client_sendq_empty(oper2
, "Doesn't match mask; " MSG
);
4407 is_client_sendq(":" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper3
, "Matches mask; " MSG
);
4408 is_client_sendq_empty(oper4
, "Doesn't match mask; " MSG
);
4409 is_client_sendq(":" TEST_ME_ID
" ENCAP * SNOTE b :Hello World!" CRLF
, server
, MSG
);
4410 is_client_sendq_empty(server2
, MSG
);
4412 sendto_realops_snomask(SNO_BOTS
, L_NETWIDE
| L_OPER
, "Hello %s!", "World");
4413 is_client_sendq("@time=" ADVENTURE_TIME
" :" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper1
, "Matches mask; " MSG
);
4414 is_client_sendq_empty(oper2
, "Doesn't match mask; " MSG
);
4415 is_client_sendq_empty(oper3
, "Not an oper; " MSG
);
4416 is_client_sendq_empty(oper4
, "Doesn't match mask; " MSG
);
4417 is_client_sendq(":" TEST_ME_ID
" ENCAP * SNOTE b :Hello World!" CRLF
, server
, MSG
);
4418 is_client_sendq_empty(server2
, MSG
);
4420 sendto_realops_snomask(SNO_GENERAL
, L_NETWIDE
| L_ALL
, "Hello %s!", "World");
4421 is_client_sendq_empty(oper1
, "Doesn't match mask; " MSG
);
4422 is_client_sendq("@time=" ADVENTURE_TIME
" :" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper2
, "Matches mask; " MSG
);
4423 is_client_sendq_empty(oper3
, "Doesn't match mask; " MSG
);
4424 is_client_sendq(":" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper4
, "Matches mask; " MSG
);
4425 is_client_sendq(":" TEST_ME_ID
" ENCAP * SNOTE s :Hello World!" CRLF
, server
, MSG
);
4426 is_client_sendq_empty(server2
, MSG
);
4428 sendto_realops_snomask(SNO_GENERAL
, L_NETWIDE
| L_ADMIN
, "Hello %s!", "World");
4429 is_client_sendq_empty(oper1
, "Doesn't match mask; " MSG
);
4430 is_client_sendq_empty(oper2
, "Not an admin; " MSG
);
4431 is_client_sendq_empty(oper3
, "Doesn't match mask; " MSG
);
4432 is_client_sendq(":" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper4
, "Matches mask; " MSG
);
4433 is_client_sendq(":" TEST_ME_ID
" ENCAP * SNOTE s :Hello World!" CRLF
, server
, MSG
);
4434 is_client_sendq_empty(server2
, MSG
);
4436 sendto_realops_snomask(SNO_GENERAL
, L_NETWIDE
| L_OPER
, "Hello %s!", "World");
4437 is_client_sendq_empty(oper1
, "Doesn't match mask; " MSG
);
4438 is_client_sendq("@time=" ADVENTURE_TIME
" :" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper2
, "Matches mask; " MSG
);
4439 is_client_sendq_empty(oper3
, "Doesn't match mask; " MSG
);
4440 is_client_sendq_empty(oper4
, "Not an oper; " MSG
);
4441 is_client_sendq(":" TEST_ME_ID
" ENCAP * SNOTE s :Hello World!" CRLF
, server
, MSG
);
4442 is_client_sendq_empty(server2
, MSG
);
4444 remove_local_person(oper1
);
4445 remove_local_person(oper2
);
4446 remove_local_person(oper3
);
4447 remove_local_person(oper4
);
4452 static void sendto_realops_snomask_from1(void)
4454 struct Client
*oper1
= make_local_person_nick("oper1");
4455 struct Client
*oper2
= make_local_person_nick("oper2");
4456 struct Client
*oper3
= make_local_person_nick("oper3");
4457 struct Client
*oper4
= make_local_person_nick("oper4");
4459 make_local_person_oper(oper1
);
4460 make_local_person_oper(oper2
);
4461 make_local_person_oper(oper3
);
4462 make_local_person_oper(oper4
);
4464 oper1
->snomask
= SNO_BOTS
| SNO_SKILL
;
4465 oper2
->snomask
= SNO_GENERAL
| SNO_REJ
;
4466 oper3
->snomask
= SNO_BOTS
| SNO_SKILL
;
4467 oper4
->snomask
= SNO_GENERAL
| SNO_REJ
;
4469 oper3
->user
->privset
= privilegeset_get("admin");
4470 oper4
->user
->privset
= privilegeset_get("admin");
4472 sendto_realops_snomask_from(SNO_BOTS
, L_ALL
, &me
, "Hello %s!", "World");
4473 is_client_sendq(":" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper1
, "Matches mask; " MSG
);
4474 is_client_sendq_empty(oper2
, "Doesn't match mask; " MSG
);
4475 is_client_sendq(":" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper3
, "Matches mask; " MSG
);
4476 is_client_sendq_empty(oper4
, "Doesn't match mask; " MSG
);
4477 is_client_sendq_empty(server
, MSG
);
4479 sendto_realops_snomask_from(SNO_BOTS
, L_ADMIN
, &me
, "Hello %s!", "World");
4480 is_client_sendq_empty(oper1
, "Not an admin; " MSG
);
4481 is_client_sendq_empty(oper2
, "Doesn't match mask; " MSG
);
4482 is_client_sendq(":" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper3
, "Matches mask; " MSG
);
4483 is_client_sendq_empty(oper4
, "Doesn't match mask; " MSG
);
4484 is_client_sendq_empty(server
, MSG
);
4486 sendto_realops_snomask_from(SNO_BOTS
, L_OPER
, &me
, "Hello %s!", "World");
4487 is_client_sendq(":" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper1
, "Matches mask; " MSG
);
4488 is_client_sendq_empty(oper2
, "Doesn't match mask; " MSG
);
4489 is_client_sendq_empty(oper3
, "Not an oper; " MSG
);
4490 is_client_sendq_empty(oper4
, "Doesn't match mask; " MSG
);
4491 is_client_sendq_empty(server
, MSG
);
4493 sendto_realops_snomask_from(SNO_BOTS
, L_ALL
, server
, "Hello %s!", "World");
4494 is_client_sendq(":" TEST_SERVER_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper1
, "Matches mask; " MSG
);
4495 is_client_sendq_empty(oper2
, "Doesn't match mask; " MSG
);
4496 is_client_sendq(":" TEST_SERVER_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper3
, "Matches mask; " MSG
);
4497 is_client_sendq_empty(oper4
, "Doesn't match mask; " MSG
);
4498 is_client_sendq_empty(server
, MSG
);
4500 sendto_realops_snomask_from(SNO_BOTS
, L_ADMIN
, server
, "Hello %s!", "World");
4501 is_client_sendq_empty(oper1
, "Not an admin; " MSG
);
4502 is_client_sendq_empty(oper2
, "Doesn't match mask; " MSG
);
4503 is_client_sendq(":" TEST_SERVER_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper3
, "Matches mask; " MSG
);
4504 is_client_sendq_empty(oper4
, "Doesn't match mask; " MSG
);
4505 is_client_sendq_empty(server
, MSG
);
4507 sendto_realops_snomask_from(SNO_BOTS
, L_OPER
, server
, "Hello %s!", "World");
4508 is_client_sendq(":" TEST_SERVER_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper1
, "Matches mask; " MSG
);
4509 is_client_sendq_empty(oper2
, "Doesn't match mask; " MSG
);
4510 is_client_sendq_empty(oper3
, "Not an oper; " MSG
);
4511 is_client_sendq_empty(oper4
, "Doesn't match mask; " MSG
);
4512 is_client_sendq_empty(server
, MSG
);
4514 sendto_realops_snomask_from(SNO_GENERAL
, L_ALL
, &me
, "Hello %s!", "World");
4515 is_client_sendq_empty(oper1
, "Doesn't match mask; " MSG
);
4516 is_client_sendq(":" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper2
, "Matches mask; " MSG
);
4517 is_client_sendq_empty(oper3
, "Doesn't match mask; " MSG
);
4518 is_client_sendq(":" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper4
, "Matches mask; " MSG
);
4519 is_client_sendq_empty(server
, MSG
);
4521 sendto_realops_snomask_from(SNO_GENERAL
, L_ADMIN
, &me
, "Hello %s!", "World");
4522 is_client_sendq_empty(oper1
, "Doesn't match mask; " MSG
);
4523 is_client_sendq_empty(oper2
, "Not an admin; " MSG
);
4524 is_client_sendq_empty(oper3
, "Doesn't match mask; " MSG
);
4525 is_client_sendq(":" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper4
, "Matches mask; " MSG
);
4526 is_client_sendq_empty(server
, MSG
);
4528 sendto_realops_snomask_from(SNO_GENERAL
, L_OPER
, &me
, "Hello %s!", "World");
4529 is_client_sendq_empty(oper1
, "Doesn't match mask; " MSG
);
4530 is_client_sendq(":" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper2
, "Matches mask; " MSG
);
4531 is_client_sendq_empty(oper3
, "Doesn't match mask; " MSG
);
4532 is_client_sendq_empty(oper4
, "Not an oper; " MSG
);
4533 is_client_sendq_empty(server
, MSG
);
4535 sendto_realops_snomask_from(SNO_GENERAL
, L_ALL
, server
, "Hello %s!", "World");
4536 is_client_sendq_empty(oper1
, "Doesn't match mask; " MSG
);
4537 is_client_sendq(":" TEST_SERVER_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper2
, "Matches mask; " MSG
);
4538 is_client_sendq_empty(oper3
, "Doesn't match mask; " MSG
);
4539 is_client_sendq(":" TEST_SERVER_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper4
, "Matches mask; " MSG
);
4540 is_client_sendq_empty(server
, MSG
);
4542 sendto_realops_snomask_from(SNO_GENERAL
, L_ADMIN
, server
, "Hello %s!", "World");
4543 is_client_sendq_empty(oper1
, "Doesn't match mask; " MSG
);
4544 is_client_sendq_empty(oper2
, "Not an admin; " MSG
);
4545 is_client_sendq_empty(oper3
, "Doesn't match mask; " MSG
);
4546 is_client_sendq(":" TEST_SERVER_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper4
, "Matches mask; " MSG
);
4547 is_client_sendq_empty(server
, MSG
);
4549 sendto_realops_snomask_from(SNO_GENERAL
, L_OPER
, server
, "Hello %s!", "World");
4550 is_client_sendq_empty(oper1
, "Doesn't match mask; " MSG
);
4551 is_client_sendq(":" TEST_SERVER_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper2
, "Matches mask; " MSG
);
4552 is_client_sendq_empty(oper3
, "Doesn't match mask; " MSG
);
4553 is_client_sendq_empty(oper4
, "Not an oper; " MSG
);
4554 is_client_sendq_empty(server
, MSG
);
4556 remove_local_person(oper1
);
4557 remove_local_person(oper2
);
4558 remove_local_person(oper3
);
4559 remove_local_person(oper4
);
4562 static void sendto_realops_snomask_from1__tags(void)
4564 struct Client
*oper1
= make_local_person_nick("oper1");
4565 struct Client
*oper2
= make_local_person_nick("oper2");
4566 struct Client
*oper3
= make_local_person_nick("oper3");
4567 struct Client
*oper4
= make_local_person_nick("oper4");
4569 strcpy(oper1
->user
->suser
, "test1");
4570 strcpy(oper2
->user
->suser
, "test2");
4571 strcpy(oper3
->user
->suser
, "test3");
4572 strcpy(oper4
->user
->suser
, "test4");
4574 oper1
->localClient
->caps
|= CAP_ACCOUNT_TAG
;
4575 oper1
->localClient
->caps
|= CAP_SERVER_TIME
;
4576 oper2
->localClient
->caps
|= CAP_SERVER_TIME
;
4577 oper3
->localClient
->caps
|= CAP_ACCOUNT_TAG
;
4579 make_local_person_oper(oper1
);
4580 make_local_person_oper(oper2
);
4581 make_local_person_oper(oper3
);
4582 make_local_person_oper(oper4
);
4584 oper1
->snomask
= SNO_BOTS
| SNO_SKILL
;
4585 oper2
->snomask
= SNO_GENERAL
| SNO_REJ
;
4586 oper3
->snomask
= SNO_BOTS
| SNO_SKILL
;
4587 oper4
->snomask
= SNO_GENERAL
| SNO_REJ
;
4589 oper3
->user
->privset
= privilegeset_get("admin");
4590 oper4
->user
->privset
= privilegeset_get("admin");
4592 sendto_realops_snomask_from(SNO_BOTS
, L_ALL
, &me
, "Hello %s!", "World");
4593 is_client_sendq("@time=" ADVENTURE_TIME
" :" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper1
, "Matches mask; " MSG
);
4594 is_client_sendq_empty(oper2
, "Doesn't match mask; " MSG
);
4595 is_client_sendq(":" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper3
, "Matches mask; " MSG
);
4596 is_client_sendq_empty(oper4
, "Doesn't match mask; " MSG
);
4597 is_client_sendq_empty(server
, MSG
);
4599 sendto_realops_snomask_from(SNO_BOTS
, L_ADMIN
, &me
, "Hello %s!", "World");
4600 is_client_sendq_empty(oper1
, "Not an admin; " MSG
);
4601 is_client_sendq_empty(oper2
, "Doesn't match mask; " MSG
);
4602 is_client_sendq(":" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper3
, "Matches mask; " MSG
);
4603 is_client_sendq_empty(oper4
, "Doesn't match mask; " MSG
);
4604 is_client_sendq_empty(server
, MSG
);
4606 sendto_realops_snomask_from(SNO_BOTS
, L_OPER
, &me
, "Hello %s!", "World");
4607 is_client_sendq("@time=" ADVENTURE_TIME
" :" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper1
, "Matches mask; " MSG
);
4608 is_client_sendq_empty(oper2
, "Doesn't match mask; " MSG
);
4609 is_client_sendq_empty(oper3
, "Not an oper; " MSG
);
4610 is_client_sendq_empty(oper4
, "Doesn't match mask; " MSG
);
4611 is_client_sendq_empty(server
, MSG
);
4613 sendto_realops_snomask_from(SNO_BOTS
, L_ALL
, server
, "Hello %s!", "World");
4614 is_client_sendq("@time=" ADVENTURE_TIME
" :" TEST_SERVER_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper1
, "Matches mask; " MSG
);
4615 is_client_sendq_empty(oper2
, "Doesn't match mask; " MSG
);
4616 is_client_sendq(":" TEST_SERVER_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper3
, "Matches mask; " MSG
);
4617 is_client_sendq_empty(oper4
, "Doesn't match mask; " MSG
);
4618 is_client_sendq_empty(server
, MSG
);
4620 sendto_realops_snomask_from(SNO_BOTS
, L_ADMIN
, server
, "Hello %s!", "World");
4621 is_client_sendq_empty(oper1
, "Not an admin; " MSG
);
4622 is_client_sendq_empty(oper2
, "Doesn't match mask; " MSG
);
4623 is_client_sendq(":" TEST_SERVER_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper3
, "Matches mask; " MSG
);
4624 is_client_sendq_empty(oper4
, "Doesn't match mask; " MSG
);
4625 is_client_sendq_empty(server
, MSG
);
4627 sendto_realops_snomask_from(SNO_BOTS
, L_OPER
, server
, "Hello %s!", "World");
4628 is_client_sendq("@time=" ADVENTURE_TIME
" :" TEST_SERVER_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper1
, "Matches mask; " MSG
);
4629 is_client_sendq_empty(oper2
, "Doesn't match mask; " MSG
);
4630 is_client_sendq_empty(oper3
, "Not an oper; " MSG
);
4631 is_client_sendq_empty(oper4
, "Doesn't match mask; " MSG
);
4632 is_client_sendq_empty(server
, MSG
);
4634 sendto_realops_snomask_from(SNO_GENERAL
, L_ALL
, &me
, "Hello %s!", "World");
4635 is_client_sendq_empty(oper1
, "Doesn't match mask; " MSG
);
4636 is_client_sendq("@time=" ADVENTURE_TIME
" :" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper2
, "Matches mask; " MSG
);
4637 is_client_sendq_empty(oper3
, "Doesn't match mask; " MSG
);
4638 is_client_sendq(":" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper4
, "Matches mask; " MSG
);
4639 is_client_sendq_empty(server
, MSG
);
4641 sendto_realops_snomask_from(SNO_GENERAL
, L_ADMIN
, &me
, "Hello %s!", "World");
4642 is_client_sendq_empty(oper1
, "Doesn't match mask; " MSG
);
4643 is_client_sendq_empty(oper2
, "Not an admin; " MSG
);
4644 is_client_sendq_empty(oper3
, "Doesn't match mask; " MSG
);
4645 is_client_sendq(":" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper4
, "Matches mask; " MSG
);
4646 is_client_sendq_empty(server
, MSG
);
4648 sendto_realops_snomask_from(SNO_GENERAL
, L_OPER
, &me
, "Hello %s!", "World");
4649 is_client_sendq_empty(oper1
, "Doesn't match mask; " MSG
);
4650 is_client_sendq("@time=" ADVENTURE_TIME
" :" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper2
, "Matches mask; " MSG
);
4651 is_client_sendq_empty(oper3
, "Doesn't match mask; " MSG
);
4652 is_client_sendq_empty(oper4
, "Not an oper; " MSG
);
4653 is_client_sendq_empty(server
, MSG
);
4655 sendto_realops_snomask_from(SNO_GENERAL
, L_ALL
, server
, "Hello %s!", "World");
4656 is_client_sendq_empty(oper1
, "Doesn't match mask; " MSG
);
4657 is_client_sendq("@time=" ADVENTURE_TIME
" :" TEST_SERVER_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper2
, "Matches mask; " MSG
);
4658 is_client_sendq_empty(oper3
, "Doesn't match mask; " MSG
);
4659 is_client_sendq(":" TEST_SERVER_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper4
, "Matches mask; " MSG
);
4660 is_client_sendq_empty(server
, MSG
);
4662 sendto_realops_snomask_from(SNO_GENERAL
, L_ADMIN
, server
, "Hello %s!", "World");
4663 is_client_sendq_empty(oper1
, "Doesn't match mask; " MSG
);
4664 is_client_sendq_empty(oper2
, "Not an admin; " MSG
);
4665 is_client_sendq_empty(oper3
, "Doesn't match mask; " MSG
);
4666 is_client_sendq(":" TEST_SERVER_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper4
, "Matches mask; " MSG
);
4667 is_client_sendq_empty(server
, MSG
);
4669 sendto_realops_snomask_from(SNO_GENERAL
, L_OPER
, server
, "Hello %s!", "World");
4670 is_client_sendq_empty(oper1
, "Doesn't match mask; " MSG
);
4671 is_client_sendq("@time=" ADVENTURE_TIME
" :" TEST_SERVER_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper2
, "Matches mask; " MSG
);
4672 is_client_sendq_empty(oper3
, "Doesn't match mask; " MSG
);
4673 is_client_sendq_empty(oper4
, "Not an oper; " MSG
);
4674 is_client_sendq_empty(server
, MSG
);
4676 remove_local_person(oper1
);
4677 remove_local_person(oper2
);
4678 remove_local_person(oper3
);
4679 remove_local_person(oper4
);
4682 static void sendto_wallops_flags1(void)
4684 struct Client
*user1
= make_local_person_nick("user1");
4685 struct Client
*user2
= make_local_person_nick("user2");
4686 struct Client
*oper1
= make_local_person_nick("oper1");
4687 struct Client
*oper2
= make_local_person_nick("oper2");
4688 struct Client
*oper3
= make_local_person_nick("oper3");
4689 struct Client
*oper4
= make_local_person_nick("oper4");
4691 make_local_person_oper(oper1
);
4692 make_local_person_oper(oper2
);
4693 make_local_person_oper(oper3
);
4694 make_local_person_oper(oper4
);
4696 user1
->umodes
|= UMODE_WALLOP
;
4697 oper1
->umodes
|= UMODE_WALLOP
| UMODE_OPERWALL
;
4698 oper2
->umodes
|= UMODE_WALLOP
| UMODE_OPERWALL
| UMODE_ADMIN
;
4699 oper3
->umodes
|= UMODE_WALLOP
;
4700 oper4
->umodes
|= UMODE_OPERWALL
;
4702 sendto_wallops_flags(UMODE_WALLOP
, oper1
, "Test to users");
4703 is_client_sendq(":oper1" TEST_ID_SUFFIX
" WALLOPS :Test to users" CRLF
, user1
, "User is +w; " MSG
);
4704 is_client_sendq_empty(user2
, "User is -w; " MSG
);
4705 is_client_sendq(":oper1" TEST_ID_SUFFIX
" WALLOPS :Test to users" CRLF
, oper1
, "User is +w; " MSG
);
4706 is_client_sendq(":oper1" TEST_ID_SUFFIX
" WALLOPS :Test to users" CRLF
, oper2
, "User is +w; " MSG
);
4707 is_client_sendq(":oper1" TEST_ID_SUFFIX
" WALLOPS :Test to users" CRLF
, oper3
, "User is +w; " MSG
);
4708 is_client_sendq_empty(oper4
, "User is -w; " MSG
);
4709 is_client_sendq_empty(server
, MSG
);
4711 sendto_wallops_flags(UMODE_OPERWALL
, oper2
, "Test to opers");
4712 is_client_sendq_empty(user1
, "Not an oper; " MSG
);
4713 is_client_sendq_empty(user2
, "Not an oper; " MSG
);
4714 is_client_sendq(":oper2" TEST_ID_SUFFIX
" WALLOPS :Test to opers" CRLF
, oper1
, "Oper is +z; " MSG
);
4715 is_client_sendq(":oper2" TEST_ID_SUFFIX
" WALLOPS :Test to opers" CRLF
, oper2
, "Oper is +z; " MSG
);
4716 is_client_sendq_empty(oper3
, "Oper is -z; " MSG
);
4717 is_client_sendq(":oper2" TEST_ID_SUFFIX
" WALLOPS :Test to opers" CRLF
, oper4
, "Oper is +z; " MSG
);
4718 is_client_sendq_empty(server
, MSG
);
4720 sendto_wallops_flags(UMODE_ADMIN
, &me
, "Test to admins");
4721 is_client_sendq_empty(user1
, "Not an admin; " MSG
);
4722 is_client_sendq_empty(user2
, "Not an admin; " MSG
);
4723 is_client_sendq_empty(oper1
, "Not an admin; " MSG
);
4724 is_client_sendq(":" TEST_ME_NAME
" WALLOPS :Test to admins" CRLF
, oper2
, MSG
);
4725 is_client_sendq_empty(oper3
, "Not an admin; " MSG
);
4726 is_client_sendq_empty(oper4
, "Not an admin; " MSG
);
4727 is_client_sendq_empty(server
, MSG
);
4729 remove_local_person(user1
);
4730 remove_local_person(user2
);
4731 remove_local_person(oper1
);
4732 remove_local_person(oper2
);
4733 remove_local_person(oper3
);
4734 remove_local_person(oper4
);
4737 static void sendto_wallops_flags1__tags(void)
4739 struct Client
*user1
= make_local_person_nick("user1");
4740 struct Client
*user2
= make_local_person_nick("user2");
4741 struct Client
*oper1
= make_local_person_nick("oper1");
4742 struct Client
*oper2
= make_local_person_nick("oper2");
4743 struct Client
*oper3
= make_local_person_nick("oper3");
4744 struct Client
*oper4
= make_local_person_nick("oper4");
4746 strcpy(oper1
->user
->suser
, "test1");
4747 strcpy(oper2
->user
->suser
, "test2");
4748 strcpy(oper3
->user
->suser
, "test3");
4749 strcpy(oper4
->user
->suser
, "test4");
4751 oper1
->localClient
->caps
|= CAP_ACCOUNT_TAG
;
4752 oper1
->localClient
->caps
|= CAP_SERVER_TIME
;
4753 oper2
->localClient
->caps
|= CAP_SERVER_TIME
;
4754 oper3
->localClient
->caps
|= CAP_ACCOUNT_TAG
;
4756 make_local_person_oper(oper1
);
4757 make_local_person_oper(oper2
);
4758 make_local_person_oper(oper3
);
4759 make_local_person_oper(oper4
);
4761 user1
->umodes
|= UMODE_WALLOP
;
4762 oper1
->umodes
|= UMODE_WALLOP
| UMODE_OPERWALL
;
4763 oper2
->umodes
|= UMODE_WALLOP
| UMODE_OPERWALL
| UMODE_ADMIN
;
4764 oper3
->umodes
|= UMODE_WALLOP
;
4765 oper4
->umodes
|= UMODE_OPERWALL
;
4767 sendto_wallops_flags(UMODE_WALLOP
, oper1
, "Test to users");
4768 is_client_sendq(":oper1" TEST_ID_SUFFIX
" WALLOPS :Test to users" CRLF
, user1
, "User is +w; " MSG
);
4769 is_client_sendq_empty(user2
, "User is -w; " MSG
);
4770 is_client_sendq("@time=" ADVENTURE_TIME
";account=test1 :oper1" TEST_ID_SUFFIX
" WALLOPS :Test to users" CRLF
, oper1
, "User is +w; " MSG
);
4771 is_client_sendq("@time=" ADVENTURE_TIME
" :oper1" TEST_ID_SUFFIX
" WALLOPS :Test to users" CRLF
, oper2
, "User is +w; " MSG
);
4772 is_client_sendq("@account=test1 :oper1" TEST_ID_SUFFIX
" WALLOPS :Test to users" CRLF
, oper3
, "User is +w; " MSG
);
4773 is_client_sendq_empty(oper4
, "User is -w; " MSG
);
4774 is_client_sendq_empty(server
, MSG
);
4776 sendto_wallops_flags(UMODE_OPERWALL
, oper2
, "Test to opers");
4777 is_client_sendq_empty(user1
, "Not an oper; " MSG
);
4778 is_client_sendq_empty(user2
, "Not an oper; " MSG
);
4779 is_client_sendq("@time=" ADVENTURE_TIME
";account=test2 :oper2" TEST_ID_SUFFIX
" WALLOPS :Test to opers" CRLF
, oper1
, "Oper is +z; " MSG
);
4780 is_client_sendq("@time=" ADVENTURE_TIME
" :oper2" TEST_ID_SUFFIX
" WALLOPS :Test to opers" CRLF
, oper2
, "Oper is +z; " MSG
);
4781 is_client_sendq_empty(oper3
, "Oper is -z; " MSG
);
4782 is_client_sendq(":oper2" TEST_ID_SUFFIX
" WALLOPS :Test to opers" CRLF
, oper4
, "Oper is +z; " MSG
);
4783 is_client_sendq_empty(server
, MSG
);
4785 sendto_wallops_flags(UMODE_ADMIN
, &me
, "Test to admins");
4786 is_client_sendq_empty(user1
, "Not an admin; " MSG
);
4787 is_client_sendq_empty(user2
, "Not an admin; " MSG
);
4788 is_client_sendq_empty(oper1
, "Not an admin; " MSG
);
4789 is_client_sendq("@time=" ADVENTURE_TIME
" :" TEST_ME_NAME
" WALLOPS :Test to admins" CRLF
, oper2
, MSG
);
4790 is_client_sendq_empty(oper3
, "Not an admin; " MSG
);
4791 is_client_sendq_empty(oper4
, "Not an admin; " MSG
);
4792 is_client_sendq_empty(server
, MSG
);
4794 remove_local_person(user1
);
4795 remove_local_person(user2
);
4796 remove_local_person(oper1
);
4797 remove_local_person(oper2
);
4798 remove_local_person(oper3
);
4799 remove_local_person(oper4
);
4802 static void sendto_wallops_flags2(void)
4804 struct Client
*user1
= make_local_person_nick("user1");
4805 struct Client
*user2
= make_local_person_nick("user2");
4806 struct Client
*oper1
= make_local_person_nick("oper1");
4807 struct Client
*oper2
= make_local_person_nick("oper2");
4808 struct Client
*oper3
= make_local_person_nick("oper3");
4809 struct Client
*oper4
= make_local_person_nick("oper4");
4811 make_local_person_oper(oper1
);
4812 make_local_person_oper(oper2
);
4813 make_local_person_oper(oper3
);
4814 make_local_person_oper(oper4
);
4816 user1
->umodes
|= UMODE_WALLOP
;
4817 oper1
->umodes
|= UMODE_WALLOP
| UMODE_OPERWALL
;
4818 oper2
->umodes
|= UMODE_WALLOP
| UMODE_OPERWALL
| UMODE_ADMIN
;
4819 oper3
->umodes
|= UMODE_WALLOP
;
4820 oper4
->umodes
|= UMODE_OPERWALL
;
4822 sendto_wallops_flags(UMODE_WALLOP
, oper1
, "Test to users %s", "42");
4823 is_client_sendq(":oper1" TEST_ID_SUFFIX
" WALLOPS :Test to users 42" CRLF
, user1
, "User is +w; " MSG
);
4824 is_client_sendq_empty(user2
, "User is -w; " MSG
);
4825 is_client_sendq(":oper1" TEST_ID_SUFFIX
" WALLOPS :Test to users 42" CRLF
, oper1
, "User is +w; " MSG
);
4826 is_client_sendq(":oper1" TEST_ID_SUFFIX
" WALLOPS :Test to users 42" CRLF
, oper2
, "User is +w; " MSG
);
4827 is_client_sendq(":oper1" TEST_ID_SUFFIX
" WALLOPS :Test to users 42" CRLF
, oper3
, "User is +w; " MSG
);
4828 is_client_sendq_empty(oper4
, "User is -w; " MSG
);
4829 is_client_sendq_empty(server
, MSG
);
4831 sendto_wallops_flags(UMODE_OPERWALL
, oper2
, "Test to opers %s", "42");
4832 is_client_sendq_empty(user1
, "Not an oper; " MSG
);
4833 is_client_sendq_empty(user2
, "Not an oper; " MSG
);
4834 is_client_sendq(":oper2" TEST_ID_SUFFIX
" WALLOPS :Test to opers 42" CRLF
, oper1
, "Oper is +z; " MSG
);
4835 is_client_sendq(":oper2" TEST_ID_SUFFIX
" WALLOPS :Test to opers 42" CRLF
, oper2
, "Oper is +z; " MSG
);
4836 is_client_sendq_empty(oper3
, "Oper is -z; " MSG
);
4837 is_client_sendq(":oper2" TEST_ID_SUFFIX
" WALLOPS :Test to opers 42" CRLF
, oper4
, "Oper is +z; " MSG
);
4838 is_client_sendq_empty(server
, MSG
);
4840 sendto_wallops_flags(UMODE_ADMIN
, &me
, "Test to admins %s", "42");
4841 is_client_sendq_empty(user1
, "Not an admin; " MSG
);
4842 is_client_sendq_empty(user2
, "Not an admin; " MSG
);
4843 is_client_sendq_empty(oper1
, "Not an admin; " MSG
);
4844 is_client_sendq(":" TEST_ME_NAME
" WALLOPS :Test to admins 42" CRLF
, oper2
, MSG
);
4845 is_client_sendq_empty(oper3
, "Not an admin; " MSG
);
4846 is_client_sendq_empty(oper4
, "Not an admin; " MSG
);
4847 is_client_sendq_empty(server
, MSG
);
4849 remove_local_person(user1
);
4850 remove_local_person(user2
);
4851 remove_local_person(oper1
);
4852 remove_local_person(oper2
);
4853 remove_local_person(oper3
);
4854 remove_local_person(oper4
);
4857 static void sendto_wallops_flags2__tags(void)
4859 struct Client
*user1
= make_local_person_nick("user1");
4860 struct Client
*user2
= make_local_person_nick("user2");
4861 struct Client
*oper1
= make_local_person_nick("oper1");
4862 struct Client
*oper2
= make_local_person_nick("oper2");
4863 struct Client
*oper3
= make_local_person_nick("oper3");
4864 struct Client
*oper4
= make_local_person_nick("oper4");
4866 strcpy(oper1
->user
->suser
, "test1");
4867 strcpy(oper2
->user
->suser
, "test2");
4868 strcpy(oper3
->user
->suser
, "test3");
4869 strcpy(oper4
->user
->suser
, "test4");
4871 oper1
->localClient
->caps
|= CAP_ACCOUNT_TAG
;
4872 oper1
->localClient
->caps
|= CAP_SERVER_TIME
;
4873 oper2
->localClient
->caps
|= CAP_SERVER_TIME
;
4874 oper3
->localClient
->caps
|= CAP_ACCOUNT_TAG
;
4876 make_local_person_oper(oper1
);
4877 make_local_person_oper(oper2
);
4878 make_local_person_oper(oper3
);
4879 make_local_person_oper(oper4
);
4881 user1
->umodes
|= UMODE_WALLOP
;
4882 oper1
->umodes
|= UMODE_WALLOP
| UMODE_OPERWALL
;
4883 oper2
->umodes
|= UMODE_WALLOP
| UMODE_OPERWALL
| UMODE_ADMIN
;
4884 oper3
->umodes
|= UMODE_WALLOP
;
4885 oper4
->umodes
|= UMODE_OPERWALL
;
4887 sendto_wallops_flags(UMODE_WALLOP
, oper1
, "Test to users %s", "42");
4888 is_client_sendq(":oper1" TEST_ID_SUFFIX
" WALLOPS :Test to users 42" CRLF
, user1
, "User is +w; " MSG
);
4889 is_client_sendq_empty(user2
, "User is -w; " MSG
);
4890 is_client_sendq("@time=" ADVENTURE_TIME
";account=test1 :oper1" TEST_ID_SUFFIX
" WALLOPS :Test to users 42" CRLF
, oper1
, "User is +w; " MSG
);
4891 is_client_sendq("@time=" ADVENTURE_TIME
" :oper1" TEST_ID_SUFFIX
" WALLOPS :Test to users 42" CRLF
, oper2
, "User is +w; " MSG
);
4892 is_client_sendq("@account=test1 :oper1" TEST_ID_SUFFIX
" WALLOPS :Test to users 42" CRLF
, oper3
, "User is +w; " MSG
);
4893 is_client_sendq_empty(oper4
, "User is -w; " MSG
);
4894 is_client_sendq_empty(server
, MSG
);
4896 sendto_wallops_flags(UMODE_OPERWALL
, oper2
, "Test to opers %s", "42");
4897 is_client_sendq_empty(user1
, "Not an oper; " MSG
);
4898 is_client_sendq_empty(user2
, "Not an oper; " MSG
);
4899 is_client_sendq("@time=" ADVENTURE_TIME
";account=test2 :oper2" TEST_ID_SUFFIX
" WALLOPS :Test to opers 42" CRLF
, oper1
, "Oper is +z; " MSG
);
4900 is_client_sendq("@time=" ADVENTURE_TIME
" :oper2" TEST_ID_SUFFIX
" WALLOPS :Test to opers 42" CRLF
, oper2
, "Oper is +z; " MSG
);
4901 is_client_sendq_empty(oper3
, "Oper is -z; " MSG
);
4902 is_client_sendq(":oper2" TEST_ID_SUFFIX
" WALLOPS :Test to opers 42" CRLF
, oper4
, "Oper is +z; " MSG
);
4903 is_client_sendq_empty(server
, MSG
);
4905 sendto_wallops_flags(UMODE_ADMIN
, &me
, "Test to admins %s", "42");
4906 is_client_sendq_empty(user1
, "Not an admin; " MSG
);
4907 is_client_sendq_empty(user2
, "Not an admin; " MSG
);
4908 is_client_sendq_empty(oper1
, "Not an admin; " MSG
);
4909 is_client_sendq("@time=" ADVENTURE_TIME
" :" TEST_ME_NAME
" WALLOPS :Test to admins 42" CRLF
, oper2
, MSG
);
4910 is_client_sendq_empty(oper3
, "Not an admin; " MSG
);
4911 is_client_sendq_empty(oper4
, "Not an admin; " MSG
);
4912 is_client_sendq_empty(server
, MSG
);
4914 remove_local_person(user1
);
4915 remove_local_person(user2
);
4916 remove_local_person(oper1
);
4917 remove_local_person(oper2
);
4918 remove_local_person(oper3
);
4919 remove_local_person(oper4
);
4922 static void kill_client1(void)
4926 kill_client(server
, remote
, "Hello %s!", "World");
4927 is_client_sendq(":" TEST_ME_NAME
" KILL " TEST_REMOTE_NICK
" :Hello World!" CRLF
, server
, MSG
);
4928 is_client_sendq_empty(server2
, MSG
);
4932 kill_client(server
, remote
, "Hello %s!", "World");
4933 is_client_sendq(":" TEST_ME_ID
" KILL " TEST_REMOTE_ID
" :Hello World!" CRLF
, server
, MSG
);
4934 is_client_sendq_empty(server2
, MSG
);
4939 static void kill_client1__tags(void)
4943 strcpy(remote
->user
->suser
, "test");
4945 kill_client(server
, remote
, "Hello %s!", "World");
4946 is_client_sendq(":" TEST_ME_NAME
" KILL " TEST_REMOTE_NICK
" :Hello World!" CRLF
, server
, MSG
);
4947 is_client_sendq_empty(server2
, MSG
);
4951 kill_client(server
, remote
, "Hello %s!", "World");
4952 is_client_sendq(":" TEST_ME_ID
" KILL " TEST_REMOTE_ID
" :Hello World!" CRLF
, server
, MSG
);
4953 is_client_sendq_empty(server2
, MSG
);
4958 static void kill_client_serv_butone1(void)
4962 // This function does not support TS5...
4965 // If the server being sent to (or the kill target) is TS6,
4966 // then "but one" is ignored and the kill is sent anyway
4967 kill_client_serv_butone(remote
, remote
, "Hello %s!", "World");
4968 is_client_sendq(":" TEST_ME_ID
" KILL " TEST_REMOTE_ID
" :Hello World!" CRLF
, server
, MSG
);
4969 is_client_sendq(":" TEST_ME_ID
" KILL " TEST_REMOTE_ID
" :Hello World!" CRLF
, server2
, MSG
);
4970 is_client_sendq(":" TEST_ME_ID
" KILL " TEST_REMOTE_ID
" :Hello World!" CRLF
, server3
, MSG
);
4972 kill_client_serv_butone(remote
, remote2
, "Hello %s!", "World");
4973 is_client_sendq(":" TEST_ME_ID
" KILL " TEST_REMOTE2_ID
" :Hello World!" CRLF
, server
, MSG
);
4974 is_client_sendq(":" TEST_ME_ID
" KILL " TEST_REMOTE2_ID
" :Hello World!" CRLF
, server2
, MSG
);
4975 is_client_sendq(":" TEST_ME_ID
" KILL " TEST_REMOTE2_ID
" :Hello World!" CRLF
, server3
, MSG
);
4977 kill_client_serv_butone(remote2
, remote
, "Hello %s!", "World");
4978 is_client_sendq(":" TEST_ME_ID
" KILL " TEST_REMOTE_ID
" :Hello World!" CRLF
, server
, MSG
);
4979 is_client_sendq(":" TEST_ME_ID
" KILL " TEST_REMOTE_ID
" :Hello World!" CRLF
, server2
, MSG
);
4980 is_client_sendq(":" TEST_ME_ID
" KILL " TEST_REMOTE_ID
" :Hello World!" CRLF
, server3
, MSG
);
4982 kill_client_serv_butone(remote2
, remote2
, "Hello %s!", "World");
4983 is_client_sendq(":" TEST_ME_ID
" KILL " TEST_REMOTE2_ID
" :Hello World!" CRLF
, server
, MSG
);
4984 is_client_sendq(":" TEST_ME_ID
" KILL " TEST_REMOTE2_ID
" :Hello World!" CRLF
, server2
, MSG
);
4985 is_client_sendq(":" TEST_ME_ID
" KILL " TEST_REMOTE2_ID
" :Hello World!" CRLF
, server3
, MSG
);
4990 static void kill_client_serv_butone1__tags(void)
4994 strcpy(remote2
->user
->suser
, "test");
4995 strcpy(remote2
->user
->suser
, "test2");
4997 // This function does not support TS5...
5000 // If the server being sent to (or the kill target) is TS6,
5001 // then "but one" is ignored and the kill is sent anyway
5002 kill_client_serv_butone(remote
, remote
, "Hello %s!", "World");
5003 is_client_sendq(":" TEST_ME_ID
" KILL " TEST_REMOTE_ID
" :Hello World!" CRLF
, server
, MSG
);
5004 is_client_sendq(":" TEST_ME_ID
" KILL " TEST_REMOTE_ID
" :Hello World!" CRLF
, server2
, MSG
);
5005 is_client_sendq(":" TEST_ME_ID
" KILL " TEST_REMOTE_ID
" :Hello World!" CRLF
, server3
, MSG
);
5007 kill_client_serv_butone(remote
, remote2
, "Hello %s!", "World");
5008 is_client_sendq(":" TEST_ME_ID
" KILL " TEST_REMOTE2_ID
" :Hello World!" CRLF
, server
, MSG
);
5009 is_client_sendq(":" TEST_ME_ID
" KILL " TEST_REMOTE2_ID
" :Hello World!" CRLF
, server2
, MSG
);
5010 is_client_sendq(":" TEST_ME_ID
" KILL " TEST_REMOTE2_ID
" :Hello World!" CRLF
, server3
, MSG
);
5012 kill_client_serv_butone(remote2
, remote
, "Hello %s!", "World");
5013 is_client_sendq(":" TEST_ME_ID
" KILL " TEST_REMOTE_ID
" :Hello World!" CRLF
, server
, MSG
);
5014 is_client_sendq(":" TEST_ME_ID
" KILL " TEST_REMOTE_ID
" :Hello World!" CRLF
, server2
, MSG
);
5015 is_client_sendq(":" TEST_ME_ID
" KILL " TEST_REMOTE_ID
" :Hello World!" CRLF
, server3
, MSG
);
5017 kill_client_serv_butone(remote2
, remote2
, "Hello %s!", "World");
5018 is_client_sendq(":" TEST_ME_ID
" KILL " TEST_REMOTE2_ID
" :Hello World!" CRLF
, server
, MSG
);
5019 is_client_sendq(":" TEST_ME_ID
" KILL " TEST_REMOTE2_ID
" :Hello World!" CRLF
, server2
, MSG
);
5020 is_client_sendq(":" TEST_ME_ID
" KILL " TEST_REMOTE2_ID
" :Hello World!" CRLF
, server3
, MSG
);
5025 int main(int argc
, char *argv
[])
5029 ircd_util_init(__FILE__
);
5032 // Load modules in a predictable order so that tags are added in the same order every time
5033 ircd_util_reload_module("cap_account_tag");
5034 ircd_util_reload_module("cap_server_time");
5036 CAP_ACCOUNT_TAG
= capability_get(cli_capindex
, "account-tag", NULL
);
5037 ok(CAP_ACCOUNT_TAG
!= 0, "CAP_ACCOUNT_TAG missing; " MSG
);
5039 CAP_SERVER_TIME
= capability_get(cli_capindex
, "server-time", NULL
);
5040 ok(CAP_SERVER_TIME
!= 0, "CAP_SERVER_TIME missing; " MSG
);
5042 CAP_MULTI_PREFIX
= capability_get(cli_capindex
, "multi-prefix", NULL
);
5043 ok(CAP_MULTI_PREFIX
!= 0, "CAP_MULTI_PREFIX missing; " MSG
);
5046 sendto_one1__tags();
5047 sendto_one_prefix1();
5048 sendto_one_prefix1__tags();
5049 sendto_one_notice1();
5050 sendto_one_notice1__tags();
5051 sendto_one_numeric1();
5052 sendto_one_numeric1__tags();
5054 sendto_server1__tags();
5056 sendto_channel_flags__local__all_members();
5057 sendto_channel_flags__remote__all_members();
5058 sendto_channel_flags__local__all_members__tags();
5059 sendto_channel_flags__remote__all_members__tags();
5060 sendto_channel_flags__local__voice();
5061 sendto_channel_flags__remote__voice();
5062 sendto_channel_flags__local__chanop();
5063 sendto_channel_flags__remote__chanop();
5064 sendto_channel_flags__local__chanop_voice();
5065 sendto_channel_flags__remote__chanop_voice();
5067 sendto_channel_opmod__local();
5068 sendto_channel_opmod_statusmsg__local();
5069 sendto_channel_opmod__local__tags();
5070 sendto_channel_opmod__remote();
5071 sendto_channel_opmod_statusmsg__remote();
5072 sendto_channel_opmod__remote__tags();
5073 sendto_channel_local1();
5074 sendto_channel_local1__tags();
5075 sendto_channel_local_with_capability1();
5076 sendto_channel_local_with_capability1__tags();
5077 sendto_channel_local_with_capability_butone1();
5078 sendto_channel_local_with_capability_butone1__tags();
5079 sendto_channel_local_butone1();
5080 sendto_channel_local_butone1__tags();
5081 sendto_common_channels_local1();
5082 sendto_common_channels_local1__tags();
5083 sendto_common_channels_local_butone1();
5084 sendto_common_channels_local_butone1__tags();
5086 sendto_match_butone__host();
5087 sendto_match_butone__host__tags();
5088 sendto_match_butone__server();
5089 sendto_match_butone__server__tags();
5090 sendto_match_servs1();
5091 sendto_match_servs1__tags();
5092 sendto_local_clients_with_capability1();
5093 sendto_local_clients_with_capability1__tags();
5095 sendto_monitor1__tags();
5097 sendto_anywhere1__tags();
5098 sendto_anywhere_echo1();
5099 sendto_anywhere_echo1__tags();
5101 sendto_realops_snomask1();
5102 sendto_realops_snomask1__tags();
5103 sendto_realops_snomask_from1();
5104 sendto_realops_snomask_from1__tags();
5105 sendto_wallops_flags1();
5106 sendto_wallops_flags1__tags();
5107 sendto_wallops_flags2();
5108 sendto_wallops_flags2__tags();
5111 kill_client1__tags();
5112 kill_client_serv_butone1();
5113 kill_client_serv_butone1__tags();