131 |
|
buf[1] = '\0'; |
132 |
|
} |
133 |
|
|
134 |
< |
sendto_one(client_p, ":%s UID %s %u %ju %s %s %s %s %s %s %s :%s", |
135 |
< |
target_p->servptr->id, |
136 |
< |
target_p->name, target_p->hopcount + 1, |
137 |
< |
target_p->tsinfo, |
138 |
< |
buf, target_p->username, target_p->host, target_p->realhost, |
139 |
< |
target_p->sockhost, target_p->id, |
140 |
< |
target_p->account, target_p->info); |
134 |
> |
/* TBR: compatibility mode */ |
135 |
> |
if (IsCapable(client_p, CAPAB_RHOST)) |
136 |
> |
sendto_one(client_p, ":%s UID %s %u %ju %s %s %s %s %s %s %s :%s", |
137 |
> |
target_p->servptr->id, |
138 |
> |
target_p->name, target_p->hopcount + 1, |
139 |
> |
target_p->tsinfo, |
140 |
> |
buf, target_p->username, target_p->host, target_p->realhost, |
141 |
> |
target_p->sockhost, target_p->id, |
142 |
> |
target_p->account, target_p->info); |
143 |
> |
else |
144 |
> |
sendto_one(client_p, ":%s UID %s %u %ju %s %s %s %s %s %s :%s", |
145 |
> |
target_p->servptr->id, |
146 |
> |
target_p->name, target_p->hopcount + 1, |
147 |
> |
target_p->tsinfo, |
148 |
> |
buf, target_p->username, target_p->host, |
149 |
> |
target_p->sockhost, target_p->id, |
150 |
> |
target_p->account, target_p->info); |
151 |
|
|
152 |
|
if (!EmptyString(target_p->tls_certfp)) |
153 |
|
sendto_one(client_p, ":%s CERTFP %s", target_p->id, target_p->tls_certfp); |
230 |
|
{ |
231 |
|
const struct MaskItem *const conf = client_p->connection->confs.head->data; |
232 |
|
|
233 |
< |
sendto_one(client_p, "PASS %s", conf->spasswd); |
233 |
> |
sendto_one(client_p, "PASS %s TS %u %s", conf->spasswd, TS_CURRENT, me.id); |
234 |
|
|
235 |
|
sendto_one(client_p, "CAPAB :%s", capab_get(NULL)); |
236 |
|
|
237 |
< |
sendto_one(client_p, "SERVER %s 1 %s +%s :%s", me.name, me.id, |
238 |
< |
ConfigServerHide.hidden ? "h" : "", me.info); |
237 |
> |
sendto_one(client_p, "SERVER %s 1 :%s%s", |
238 |
> |
me.name, ConfigServerHide.hidden ? "(H) " : "", me.info); |
239 |
|
} |
240 |
|
|
241 |
|
sendto_one(client_p, ":%s SVINFO %u %u 0 :%ju", me.id, TS_CURRENT, TS_MIN, |
309 |
|
|
310 |
|
fd_note(client_p->connection->fd, "Server: %s", client_p->name); |
311 |
|
|
312 |
< |
sendto_server(client_p, 0, 0, ":%s SID %s 2 %s +%s :%s", |
312 |
> |
sendto_server(client_p, 0, 0, ":%s SID %s 2 %s :%s%s", |
313 |
|
me.id, client_p->name, client_p->id, |
314 |
< |
IsHidden(client_p) ? "h" : "", client_p->info); |
314 |
> |
IsHidden(client_p) ? "(H) " : "", client_p->info); |
315 |
|
|
316 |
|
/* |
317 |
|
* Pass on my client information to the new server |
336 |
|
if (IsMe(target_p) || target_p->from == client_p) |
337 |
|
continue; |
338 |
|
|
339 |
< |
sendto_one(client_p, ":%s SID %s %u %s +%s :%s", |
339 |
> |
sendto_one(client_p, ":%s SID %s %u %s :%s%s", |
340 |
|
target_p->servptr->id, target_p->name, target_p->hopcount+1, |
341 |
< |
target_p->id, IsHidden(target_p) ? "h" : "", |
341 |
> |
target_p->id, IsHidden(target_p) ? "(H) " : "", |
342 |
|
target_p->info); |
343 |
|
} |
344 |
|
|
783 |
|
hash_add_client(target_p); |
784 |
|
hash_add_id(target_p); |
785 |
|
|
786 |
< |
sendto_server(source_p->from, 0, 0, ":%s SID %s %u %s +%s :%s", |
786 |
> |
sendto_server(source_p->from, 0, 0, ":%s SID %s %u %s :%s%s", |
787 |
|
source_p->id, target_p->name, target_p->hopcount + 1, |
788 |
< |
target_p->id, IsHidden(target_p) ? "h" : "", target_p->info); |
788 |
> |
target_p->id, IsHidden(target_p) ? "(H) " : "", target_p->info); |
789 |
|
sendto_realops_flags(UMODE_EXTERNAL, L_ALL, SEND_NOTICE, |
790 |
|
"Server %s being introduced by %s", |
791 |
|
target_p->name, source_p->name); |