diff options
-rw-r--r-- | modules/core/m_server.c | 3 | ||||
-rw-r--r-- | 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)); |