From 0a93030b3048fb160c17bd88104b7da0b470a577 Mon Sep 17 00:00:00 2001 From: michael Date: Tue, 17 Jun 2014 18:17:13 +0000 Subject: - Fixed EOB logic for remote servers. Fix derived from p4 git-svn-id: svn://svn.ircd-hybrid.org/svnroot/ircd-hybrid/branches/8.1.x@3962 82007160-df01-0410-b94d-b575c5fd34c7 --- modules/core/m_server.c | 3 --- modules/m_eob.c | 15 ++++++++++++++- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/modules/core/m_server.c b/modules/core/m_server.c index f1851b8..c8cefe7 100644 --- a/modules/core/m_server.c +++ b/modules/core/m_server.c @@ -454,9 +454,6 @@ server_estab(struct Client *client_p) sendto_one(client_p, ":%s SERVER %s %d :%s%s", target_p->servptr->name, target_p->name, target_p->hopcount+1, IsHidden(target_p) ? "(H) " : "", target_p->info); - - if (HasFlag(target_p, FLAGS_EOB)) - sendto_one(client_p, ":%s EOB", ID_or_name(target_p, client_p)); } server_burst(client_p); diff --git a/modules/m_eob.c b/modules/m_eob.c index 46982cb..cf57dd3 100644 --- a/modules/m_eob.c +++ b/modules/m_eob.c @@ -33,6 +33,19 @@ #include "s_serv.h" +static void +server_eob(struct Client *server) +{ + dlink_node *ptr = NULL; + + assert(IsServer(source_p)); + + AddFlag(server, FLAGS_EOB); + + DLINK_FOREACH(ptr, server->serv->server_list.head) + server_eob(ptr->data); +} + /* * ms_eob - EOB command handler * parv[0] = sender prefix @@ -50,7 +63,7 @@ ms_eob(struct Client *client_p, struct Client *source_p, source_p->name, (unsigned int)(CurrentTime - source_p->localClient->firsttime)); - AddFlag(source_p, FLAGS_EOB); + server_eob(source_p); sendto_server(client_p, CAP_TS6, NOCAPS, ":%s EOB", ID(source_p)); -- cgit