14
15
static void event_whois(IRC_SERVER_REC *server, const char *data)
16
char *params, *nick, *user, *host, *realname;
17
char *params, *nick, *user, *host, *realname, *recoded;
18
19
g_return_if_fail(data != NULL);
20
21
params = event_get_params(data, 6, NULL, &nick, &user,
21
22
&host, NULL, &realname);
23
recoded = recode_in(SERVER(server), realname, nick);
22
24
printformat(server, nick, MSGLEVEL_CRAP,
23
IRCTXT_WHOIS, nick, user, host, realname);
25
IRCTXT_WHOIS, nick, user, host, recoded);
27
30
static void event_whois_special(IRC_SERVER_REC *server, const char *data)
114
117
g_return_if_fail(data != NULL);
116
params = event_get_params(data, 6, NULL, &nick,
117
NULL, NULL, NULL, &modes);
119
params = event_get_params(data, 3 | PARAM_FLAG_GETREST,
120
NULL, &nick, &modes);
121
if (!strncmp(modes, "is using modes ", 15))
118
123
printformat(server, nick, MSGLEVEL_CRAP,
119
124
IRCTXT_WHOIS_MODES, nick, modes);
139
144
if (hostname != NULL) hostname += 5;
142
if (hostname == NULL) {
147
if (hostname != NULL) {
148
if (!strncmp(hostname, "*@", 2))
143
150
printformat(server, nick, MSGLEVEL_CRAP,
144
151
IRCTXT_WHOIS_REALHOST, nick, hostname, "");
188
static void event_whois_realhost338(IRC_SERVER_REC *server, const char *data)
190
char *params, *nick, *arg1, *arg2, *arg3;
192
g_return_if_fail(data != NULL);
195
* :<server> 338 <yournick> <nick> <user>@<host> <ip> :Actual user@host, actual IP
197
* :<server> 338 <yournick> <nick> <ip> :actually using host
200
params = event_get_params(data, 5, NULL, &nick, &arg1, &arg2, &arg3);
202
printformat(server, nick, MSGLEVEL_CRAP,
203
IRCTXT_WHOIS_REALHOST, nick, arg1, arg2);
204
} else if (*arg2 != '\0') {
205
printformat(server, nick, MSGLEVEL_CRAP,
206
IRCTXT_WHOIS_REALHOST, nick, arg1, "");
208
event_whois_special(server, data);
181
213
static void event_whois_usermode(IRC_SERVER_REC *server, const char *data)
183
215
char *params, *txt_usermodes, *nick, *usermode;
247
279
static void event_whois_channels(IRC_SERVER_REC *server, const char *data)
249
char *params, *nick, *chans;
281
char *params, *nick, *chans, *recoded;
251
283
g_return_if_fail(data != NULL);
259
291
chans = show_lowascii(chans);
260
292
if (settings_get_bool("whois_hide_safe_channel_id"))
261
293
hide_safe_channel_id(server, chans);
294
recoded = recode_in(SERVER(server), chans, nick);
262
295
printformat(server, nick, MSGLEVEL_CRAP,
263
IRCTXT_WHOIS_CHANNELS, nick, chans);
296
IRCTXT_WHOIS_CHANNELS, nick, recoded);
269
303
static void event_whois_away(IRC_SERVER_REC *server, const char *data)
271
char *params, *nick, *awaymsg;
305
char *params, *nick, *awaymsg, *recoded;
273
307
g_return_if_fail(data != NULL);
275
309
params = event_get_params(data, 3, NULL, &nick, &awaymsg);
310
recoded = recode_in(SERVER(server), awaymsg, nick);
276
311
printformat(server, nick, MSGLEVEL_CRAP,
277
IRCTXT_WHOIS_AWAY, nick, awaymsg);
312
IRCTXT_WHOIS_AWAY, nick, recoded);
281
317
static void event_end_of_whois(IRC_SERVER_REC *server, const char *data)
307
343
static void event_whowas(IRC_SERVER_REC *server, const char *data)
309
char *params, *nick, *user, *host, *realname;
345
char *params, *nick, *user, *host, *realname, *recoded;
311
347
g_return_if_fail(data != NULL);
313
349
params = event_get_params(data, 6, NULL, &nick, &user,
314
350
&host, NULL, &realname);
351
recoded = recode_in(SERVER(server), realname, nick);
315
352
printformat(server, nick, MSGLEVEL_CRAP,
316
IRCTXT_WHOWAS, nick, user, host, realname);
353
IRCTXT_WHOWAS, nick, user, host, recoded);
320
358
static void event_end_of_whowas(IRC_SERVER_REC *server, const char *data)
340
378
{ 312, event_whois_server },
341
379
{ 326, event_whois_usermode326 },
342
380
{ 327, event_whois_realhost327 },
381
{ 338, event_whois_realhost338 },
343
382
{ 379, event_whois_modes },
344
383
{ 378, event_whois_realhost },
345
384
{ 377, event_whois_usermode },
381
420
signal_add("event 379", (SIGNAL_FUNC) event_whois_modes);
382
421
signal_add("event 327", (SIGNAL_FUNC) event_whois_realhost327);
383
422
signal_add("event 326", (SIGNAL_FUNC) event_whois_usermode326);
423
signal_add("event 338", (SIGNAL_FUNC) event_whois_realhost338);
384
424
signal_add("whois away", (SIGNAL_FUNC) event_whois_away);
385
425
signal_add("whois oper", (SIGNAL_FUNC) event_whois_oper);
386
426
signal_add("whowas away", (SIGNAL_FUNC) event_whois_away);
403
443
signal_remove("event 379", (SIGNAL_FUNC) event_whois_modes);
404
444
signal_remove("event 327", (SIGNAL_FUNC) event_whois_realhost327);
405
445
signal_remove("event 326", (SIGNAL_FUNC) event_whois_usermode326);
446
signal_remove("event 338", (SIGNAL_FUNC) event_whois_realhost338);
406
447
signal_remove("whois away", (SIGNAL_FUNC) event_whois_away);
407
448
signal_remove("whois oper", (SIGNAL_FUNC) event_whois_oper);
408
449
signal_remove("whowas away", (SIGNAL_FUNC) event_whois_away);