diff options
| author | Alexander Barton <alex@barton.de> | 2012-10-07 12:06:11 +0200 |
|---|---|---|
| committer | Alexander Barton <alex@barton.de> | 2012-10-07 12:06:11 +0200 |
| commit | a9cbb375b77576c371c0c9b48e8e8cf64f7731a4 (patch) | |
| tree | 556267aff5e7c5d7a85796bb0f0e108b57fddce3 /contrib/Anope/0004-ngircd-Do-PING-PONG-on-server-burst-to-sync-servers.patch | |
| parent | 161adbb1aa6235acda9677ab14edd19581d9fcf4 (diff) | |
| download | ngircd-a9cbb375b77576c371c0c9b48e8e8cf64f7731a4.tar.gz ngircd-a9cbb375b77576c371c0c9b48e8e8cf64f7731a4.zip | |
Shorten filenames of Anope protocol module patchfiles
Filenames have been too long and couldn't be stored in all tar archive formats ...
Diffstat (limited to 'contrib/Anope/0004-ngircd-Do-PING-PONG-on-server-burst-to-sync-servers.patch')
| -rw-r--r-- | contrib/Anope/0004-ngircd-Do-PING-PONG-on-server-burst-to-sync-servers.patch | 93 |
1 files changed, 0 insertions, 93 deletions
diff --git a/contrib/Anope/0004-ngircd-Do-PING-PONG-on-server-burst-to-sync-servers.patch b/contrib/Anope/0004-ngircd-Do-PING-PONG-on-server-burst-to-sync-servers.patch deleted file mode 100644 index 0aec3e9e..00000000 --- a/contrib/Anope/0004-ngircd-Do-PING-PONG-on-server-burst-to-sync-servers.patch +++ /dev/null @@ -1,93 +0,0 @@ -From 88b2b14a76b8ee053b1f6ea64139350260590043 Mon Sep 17 00:00:00 2001 -From: DukePyrolator <DukePyrolator@anope.org> -Date: Mon, 22 Aug 2011 14:55:07 +0200 -Subject: [PATCH 04/16] ngircd: Do PING-PONG on server burst to "sync servers" - -Imagine we had three servers, A, B & C linked like so: A<->B<->C: - -If Anope is linked to A and B splits from A and then reconnects B -introduces itself, introduces C, sends EOS for C, introduces B's clients -introduces C's clients, sends EOS for B. This causes all of C's clients -to be introduced with their server "not syncing". - -We now send a PING immediately when receiving a new server and then -finish sync once we get a pong back from that server. ---- - modules/protocol/ngircd.cpp | 28 ++++++++++++++++++++++++++-- - 1 files changed, 26 insertions(+), 2 deletions(-) - -diff --git a/modules/protocol/ngircd.cpp b/modules/protocol/ngircd.cpp -index 790b8f4..89aecfd 100644 ---- a/modules/protocol/ngircd.cpp -+++ b/modules/protocol/ngircd.cpp -@@ -108,11 +108,13 @@ class ngIRCdProto : public IRCDProto - - void SendModeInternal(const BotInfo *bi, const Channel *dest, const Anope::string &buf) - { -+Log(LOG_DEBUG) << "SendModeInternal 1"; - send_cmd(bi ? bi->nick : Config->ServerName, "MODE %s %s", dest->name.c_str(), buf.c_str()); - } - - void SendModeInternal(const BotInfo *bi, const User *u, const Anope::string &buf) - { -+Log(LOG_DEBUG) << "SendModeInternal 2"; - send_cmd(bi ? bi->nick : Config->ServerName, "MODE %s %s", u->nick.c_str(), buf.c_str()); - } - -@@ -212,6 +214,8 @@ class ngIRCdIRCdMessage : public IRCdMessage - do_server("", params[0], 0, params[2], params[1]); - else - do_server(source, params[0], params[1].is_pos_number_only() ? convertTo<unsigned>(params[1]) : 0, params[3], params[2]); -+ -+ ircdproto->SendPing(Config->ServerName, params[0]); - return true; - } - -@@ -253,6 +257,25 @@ class ngIRCdIRCdMessage : public IRCdMessage - } - }; - -+/** This is here because: -+ * -+ * If we had three servers, A, B & C linked like so: A<->B<->C -+ * If Anope is linked to A and B splits from A and then reconnects -+ * B introduces itself, introduces C, sends EOS for C, introduces Bs clients -+ * introduces Cs clients, sends EOS for B. This causes all of Cs clients to be introduced -+ * with their server "not syncing". We now send a PING immediately when receiving a new server -+ * and then finish sync once we get a pong back from that server. -+ */ -+bool event_pong(const Anope::string &source, const std::vector<Anope::string> ¶ms) -+{ -+ Server *s = Server::Find(source); -+ if (s && !s->IsSynced()) -+ s->Sync(false); -+ return true; -+} -+ -+ -+ - /* - * CHANINFO <chan> +<modes> - * CHANINFO <chan> +<modes> :<topic> -@@ -416,7 +439,7 @@ bool event_376(const Anope::string &source, const std::vector<Anope::string> &pa - class ProtongIRCd : public Module - { - Message message_kick, message_pass, message_njoin, message_chaninfo, message_005, -- message_442, message_376; -+ message_442, message_376, message_pong; - - ngIRCdProto ircd_proto; - ngIRCdIRCdMessage ircd_message; -@@ -457,7 +480,8 @@ class ProtongIRCd : public Module - ProtongIRCd(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator, PROTOCOL), - message_kick("KICK", event_kick), message_pass("PASS", event_pass), - message_njoin("NJOIN", event_njoin), message_chaninfo("CHANINFO", event_chaninfo), -- message_005("005", event_005), message_442("442", event_442), message_376("376", event_376) -+ message_005("005", event_005), message_442("442", event_442), message_376("376", event_376), -+ message_pong("PONG", event_pong) - { - this->SetAuthor("Anope"); - --- -1.7.8.3 - |