| 95 |
|
0, /* @ */ |
| 96 |
|
0, /* A */ |
| 97 |
|
0, /* B */ |
| 98 |
< |
0, /* C */ |
| 98 |
> |
UMODE_CCONN_FULL, /* C */ |
| 99 |
|
UMODE_DEAF, /* D */ |
| 100 |
|
0, /* E */ |
| 101 |
|
0, /* F */ |
| 445 |
|
"255.255.255.255" : ipaddr, get_client_class(source_p), |
| 446 |
|
source_p->info); |
| 447 |
|
|
| 448 |
+ |
sendto_realops_flags(UMODE_CCONN_FULL, L_ALL, |
| 449 |
+ |
"CLICONN %s %s %s %s %s %s %s 0 %s", |
| 450 |
+ |
nick, source_p->username, source_p->host, |
| 451 |
+ |
ConfigFileEntry.hide_spoof_ips && IsIPSpoof(source_p) ? |
| 452 |
+ |
"255.255.255.255" : ipaddr, |
| 453 |
+ |
get_client_class(source_p), |
| 454 |
+ |
ConfigFileEntry.hide_spoof_ips && IsIPSpoof(source_p) ? |
| 455 |
+ |
"<hidden>" : source_p->client_host, |
| 456 |
+ |
ConfigFileEntry.hide_spoof_ips && IsIPSpoof(source_p) ? |
| 457 |
+ |
"<hidden>" : source_p->client_server, |
| 458 |
+ |
source_p->info); |
| 459 |
+ |
|
| 460 |
+ |
|
| 461 |
|
/* If they have died in send_* don't do anything. */ |
| 462 |
|
if (IsDead(source_p)) |
| 463 |
|
return; |
| 851 |
|
|
| 852 |
|
strlcpy(source_p->info, realname, sizeof(source_p->info)); |
| 853 |
|
|
| 854 |
+ |
/* stash for later */ |
| 855 |
+ |
strlcpy(source_p->client_host, host, sizeof(source_p->client_host)); |
| 856 |
+ |
strlcpy(source_p->client_server, server, sizeof(source_p->client_server)); |
| 857 |
+ |
|
| 858 |
|
if (!IsGotId(source_p)) |
| 859 |
|
{ |
| 860 |
|
/* save the username in the client |
| 1067 |
|
/* send_umode() |
| 1068 |
|
* send the MODE string for user (user) to connection client_p |
| 1069 |
|
* -avalon |
| 1070 |
+ |
* |
| 1071 |
+ |
* inputs - client_p |
| 1072 |
+ |
* - source_p |
| 1073 |
+ |
* - int old |
| 1074 |
+ |
* - sendmask mask of modes to send |
| 1075 |
+ |
* - suplied umode_buf |
| 1076 |
+ |
* output - NONE |
| 1077 |
|
*/ |
| 1078 |
|
void |
| 1079 |
|
send_umode(struct Client *client_p, struct Client *source_p, |