summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>2004-05-29 14:46:18 +0000
committerbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>2004-05-29 14:46:18 +0000
commitb12617d293455e80d330d54e7d59bca57afdb0a0 (patch)
tree13abad867f69ee7ee6b52370e9799d684942f029 /src
parent44a7931867b710365859d72de0f71b5f87bbdfe3 (diff)
Fixed uline synching
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@833 e03df62e-2008-0410-955e-edbf42e46eb7
Diffstat (limited to 'src')
-rw-r--r--src/commands.cpp17
-rw-r--r--src/inspircd.cpp16
2 files changed, 33 insertions, 0 deletions
diff --git a/src/commands.cpp b/src/commands.cpp
index ff9a5e41c..7d8523ece 100644
--- a/src/commands.cpp
+++ b/src/commands.cpp
@@ -1911,6 +1911,23 @@ void handle_H(char token,char* params,serverrec* source,serverrec* reply, char*
ircd_connector s;
s.SetState(STATE_DISCONNECTED);
s.SetServerName(params);
+
+ for (int j = 0; j < 32; j++)
+ {
+ if (me[j] != NULL)
+ {
+ for (int k = 0; k < me[j]->connectors.size(); k++)
+ {
+ if (!strcasecmp(me[j]->connectors[k].GetServerName().c_str(),params))
+ {
+ // dont allow a server to be added twice
+ log(DEBUG,"ULined server %s already in the map!",params);
+ return;
+ }
+ }
+ }
+ }
+
source->connectors.push_back(s);
WriteOpers("Non-Mesh server %s has joined the network",params);
}
diff --git a/src/inspircd.cpp b/src/inspircd.cpp
index a71cf08ab..8b8e3a9d0 100644
--- a/src/inspircd.cpp
+++ b/src/inspircd.cpp
@@ -3010,6 +3010,22 @@ void DoSync(serverrec* serv, char* tcp_host)
}
// sync global zlines, glines, etc
sync_xlines(serv,tcp_host);
+
+ for (int j = 0; j < 32; j++)
+ {
+ if (me[j] != NULL)
+ {
+ for (int k = 0; k < me[j]->connectors.size(); k++)
+ {
+ if (is_uline(me[j]->connectors[k].GetServerName().c_str()))
+ {
+ sprintf(data,"H %s",me[j]->connectors[k].GetServerName().c_str());
+ serv->SendPacket(data,tcp_host);
+ }
+ }
+ }
+ }
+
snprintf(data,MAXBUF,"F %d",time(NULL));
serv->SendPacket(data,tcp_host);
log(DEBUG,"Sent sync");