Improve server notices about duplicate SIDs.
Note that this is checked after duplicate server names, so it can only happen if multiple servers have the same SID configured.
This commit is contained in:
parent
64973a71e6
commit
9649981ba7
|
@ -220,14 +220,15 @@ mr_server(struct Client *client_p, struct Client *source_p, int parc, const char
|
||||||
if(has_id(client_p) && (target_p = find_id(client_p->id)) != NULL)
|
if(has_id(client_p) && (target_p = find_id(client_p->id)) != NULL)
|
||||||
{
|
{
|
||||||
sendto_realops_snomask(SNO_GENERAL, is_remote_connect(client_p) ? L_NETWIDE : L_ALL,
|
sendto_realops_snomask(SNO_GENERAL, is_remote_connect(client_p) ? L_NETWIDE : L_ALL,
|
||||||
"Attempt to re-introduce SID %s from %s%s",
|
"Attempt to re-introduce SID %s from %s%s (already in use by %s)",
|
||||||
client_p->id,
|
client_p->id,
|
||||||
EmptyString(client_p->name) ? name : "",
|
EmptyString(client_p->name) ? name : "",
|
||||||
client_p->name);
|
client_p->name, target_p->name);
|
||||||
ilog(L_SERVER, "Attempt to re-introduce SID %s from %s%s",
|
ilog(L_SERVER, "Attempt to re-introduce SID %s from %s%s (already in use by %s)",
|
||||||
client_p->id,
|
client_p->id,
|
||||||
EmptyString(client_p->name) ? name : "",
|
EmptyString(client_p->name) ? name : "",
|
||||||
log_client_name(client_p, SHOW_IP));
|
log_client_name(client_p, SHOW_IP),
|
||||||
|
target_p->name);
|
||||||
|
|
||||||
sendto_one(client_p, "ERROR :SID already exists.");
|
sendto_one(client_p, "ERROR :SID already exists.");
|
||||||
exit_client(client_p, client_p, client_p, "SID Exists");
|
exit_client(client_p, client_p, client_p, "SID Exists");
|
||||||
|
@ -467,6 +468,7 @@ ms_sid(struct Client *client_p, struct Client *source_p, int parc, const char *p
|
||||||
int hop;
|
int hop;
|
||||||
int hlined = 0;
|
int hlined = 0;
|
||||||
int llined = 0;
|
int llined = 0;
|
||||||
|
char squitreason[160];
|
||||||
|
|
||||||
hop = atoi(parv[2]);
|
hop = atoi(parv[2]);
|
||||||
|
|
||||||
|
@ -487,14 +489,19 @@ ms_sid(struct Client *client_p, struct Client *source_p, int parc, const char *p
|
||||||
/* collision on the SID? */
|
/* collision on the SID? */
|
||||||
if((target_p = find_id(parv[3])) != NULL)
|
if((target_p = find_id(parv[3])) != NULL)
|
||||||
{
|
{
|
||||||
sendto_one(client_p, "ERROR :SID %s already exists", parv[3]);
|
sendto_wallops_flags(UMODE_WALLOP, &me,
|
||||||
sendto_realops_snomask(SNO_GENERAL, L_ALL,
|
"Link %s cancelled, SID %s for server %s already in use by %s",
|
||||||
"Link %s cancelled, SID %s already exists",
|
client_p->name, parv[3], parv[1], target_p->name);
|
||||||
client_p->name, parv[3]);
|
sendto_server(NULL, NULL, CAP_TS6, NOCAPS,
|
||||||
ilog(L_SERVER, "Link %s cancelled, SID %s already exists",
|
":%s WALLOPS :Link %s cancelled, SID %s for server %s already in use by %s",
|
||||||
client_p->name, parv[3]);
|
me.id, client_p->name, parv[3], parv[1], target_p->name);
|
||||||
|
ilog(L_SERVER, "Link %s cancelled, SID %s for server %s already in use by %s",
|
||||||
|
client_p->name, parv[3], parv[1], target_p->name);
|
||||||
|
|
||||||
exit_client(NULL, client_p, &me, "SID Exists");
|
snprintf(squitreason, sizeof squitreason,
|
||||||
|
"SID %s for %s already in use by %s",
|
||||||
|
parv[3], parv[1], target_p->name);
|
||||||
|
exit_client(NULL, client_p, &me, squitreason);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue