summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>2004-04-23 11:58:39 +0000
committerbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>2004-04-23 11:58:39 +0000
commit97556b1f4ef0118e71dbc06b39e91dfc593d2fe0 (patch)
treeaa3f443982a344d686fee7a7fb03b7c567ee173b
parent6129f2e4a0c3bd50c3f9ff62c7dfd0b27ecdcc7f (diff)
Added tons of services stuff - prepared for multiserver trial run
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@697 e03df62e-2008-0410-955e-edbf42e46eb7
-rw-r--r--src/commands.cpp1
-rw-r--r--src/inspircd.cpp12
2 files changed, 11 insertions, 2 deletions
diff --git a/src/commands.cpp b/src/commands.cpp
index 3adf3fc33..a36dc5425 100644
--- a/src/commands.cpp
+++ b/src/commands.cpp
@@ -1932,6 +1932,7 @@ void handle_dollar(char token,char* params,serverrec* source,serverrec* reply, c
void handle_amp(char token,char* params,serverrec* source,serverrec* reply, char* tcp_host)
{
log(DEBUG,"Netsplit! %s split from mesh, removing!",params);
+ WriteOpers("*** NOTICE - Controlled netsplit: %s split from %s",params,ServerName);
bool go_again = true;
while (go_again)
{
diff --git a/src/inspircd.cpp b/src/inspircd.cpp
index 80909b312..18c4c4fb8 100644
--- a/src/inspircd.cpp
+++ b/src/inspircd.cpp
@@ -3201,9 +3201,17 @@ int InspIRCd(void)
break;
}
// during a netburst, send all data to all other linked servers
- if ((nb_start>0) && (udp_msg[0] != 'Y') && (udp_msg[0] != 'X') && (udp_msg[0] != 'F'))
+ if ((((nb_start>0) && (udp_msg[0] != 'Y') && (udp_msg[0] != 'X') && (udp_msg[0] != 'F'))) || (is_uline(tcp_host)))
{
- NetSendToAllExcept(tcp_host,udp_msg);
+ if (is_uline(tcp_host))
+ {
+ if ((udp_msg[0] != 'Y') && (udp_msg[0] != 'X') && (udp_msg[0] != 'F'))
+ {
+ NetSendToAllExcept(tcp_host,udp_msg);
+ }
+ }
+ else
+ NetSendToAllExcept(tcp_host,udp_msg);
}
FOREACH_MOD OnPacketReceive(udp_msg);
handle_link_packet(udp_msg, tcp_host, me[x]);