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:
Jilles Tjoelker 2008-09-04 01:41:49 +02:00
parent b92d34adc1
commit 8e34ffc66e

View file

@ -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;
} }