summaryrefslogtreecommitdiff
path: root/modules/core
diff options
context:
space:
mode:
authormichael <michael@82007160-df01-0410-b94d-b575c5fd34c7>2014-01-31 12:31:32 +0000
committermichael <michael@82007160-df01-0410-b94d-b575c5fd34c7>2014-01-31 12:31:32 +0000
commit1fd30de6a32a89eacf67bd7204c49193ec43c102 (patch)
treea46cae36636688b1db3dea69fcd585612d3bb4d7 /modules/core
parent568a147d10334e1d77046d40e1004c5a41b8e199 (diff)
- m_server.c:mr_server(): don't falsely exit a server with the reason
being "SID already exists" if it's just hash_find_server() that returned non-NULL. git-svn-id: svn://svn.ircd-hybrid.org/svnroot/ircd-hybrid/branches/8.1.x@2977 82007160-df01-0410-b94d-b575c5fd34c7
Diffstat (limited to 'modules/core')
-rw-r--r--modules/core/m_server.c18
1 files changed, 15 insertions, 3 deletions
diff --git a/modules/core/m_server.c b/modules/core/m_server.c
index 340492e..b7c71b9 100644
--- a/modules/core/m_server.c
+++ b/modules/core/m_server.c
@@ -178,8 +178,7 @@ mr_server(struct Client *client_p, struct Client *source_p,
break;
}
- if ((client_p->id[0] && (target_p = hash_find_id(client_p->id)))
- || (target_p = hash_find_server(name)))
+ if ((target_p = hash_find_server(name)))
{
/* This link is trying feed me a server that I already have
* access through another path -- multiple paths not accepted
@@ -192,6 +191,19 @@ mr_server(struct Client *client_p, struct Client *source_p,
* connect - A1kmm.
*/
sendto_realops_flags(UMODE_ALL, L_ADMIN, SEND_NOTICE,
+ "Attempt to re-introduce server %s from %s",
+ name, get_client_name(client_p, HIDE_IP));
+ sendto_realops_flags(UMODE_ALL, L_OPER, SEND_NOTICE,
+ "Attempt to re-introduce server %s from %s",
+ name, get_client_name(client_p, MASK_IP));
+ sendto_one(client_p, "ERROR :Server already exists.");
+ exit_client(client_p, client_p, "Server already exists");
+ return 0;
+ }
+
+ if ((client_p->id[0] && (target_p = hash_find_id(client_p->id))))
+ {
+ sendto_realops_flags(UMODE_ALL, L_ADMIN, SEND_NOTICE,
"Attempt to re-introduce server %s SID %s from %s",
name, client_p->id,
get_client_name(client_p, HIDE_IP));
@@ -200,7 +212,7 @@ mr_server(struct Client *client_p, struct Client *source_p,
name, client_p->id,
get_client_name(client_p, MASK_IP));
sendto_one(client_p, "ERROR :Server ID already exists.");
- exit_client(client_p, client_p, "Server ID Exists");
+ exit_client(client_p, client_p, "Server ID already exists");
return 0;
}