Remove Anope "ngircd" protocol module patches
authorAlexander Barton <alex@barton.de>
Sun, 4 Nov 2012 12:58:25 +0000 (13:58 +0100)
committerAlexander Barton <alex@barton.de>
Sat, 10 Nov 2012 20:26:25 +0000 (21:26 +0100)
Starting with Anope 1.9.8, the ngIRCd protocol module is included in the
Anope distribution, so there's no longer any need to support our own (but
now heavily outdated!) patches. Therefore remove them.

21 files changed:
configure.ng
contrib/Anope/0001-Revert-Removed-ngircd.patch [deleted file]
contrib/Anope/0002-ngircd-whitespace-fixes.patch [deleted file]
contrib/Anope/0003-Update-ngIRCd-protocol-module-for-current-Anope.patch [deleted file]
contrib/Anope/0004-ngircd-Do-PING-PONG-on-server-burst-to-sync.patch [deleted file]
contrib/Anope/0005-ngircd-always-prefix-modes-in-CHANINFO-with.patch [deleted file]
contrib/Anope/0006-ngircd-support-user-mode-R-and-channel-mode-R.patch [deleted file]
contrib/Anope/0007-ngircd-Fix-handling-of-JOIN-commands.patch [deleted file]
contrib/Anope/0008-ngircd-Allow-setting-modes-by-clients-on-burst.patch [deleted file]
contrib/Anope/0009-ngircd-Update-protocol-module-for-current-Anope.patch [deleted file]
contrib/Anope/0010-ngircd-Add-ProtongIRCd.patch [deleted file]
contrib/Anope/0011-ngircd-Update-protocol-module-for-current-Anope.patch [deleted file]
contrib/Anope/0012-ngircd-Channel-mode-r-is-supported-now.patch [deleted file]
contrib/Anope/0013-ngircd-Update-copyright-notice.patch [deleted file]
contrib/Anope/0014-ngircd-set-unset-GLINE-s-on-AKILL-commands.patch [deleted file]
contrib/Anope/0015-ngircd-ngIRCd-supports-channel-mode-e-now.patch [deleted file]
contrib/Anope/0016-ngircd-support-SQUERY-command.patch [deleted file]
contrib/Anope/Makefile.am [deleted file]
contrib/Anope/README [deleted file]
contrib/Makefile.am
contrib/README

index 4f0a14e..84e2750 100644 (file)
@@ -604,7 +604,6 @@ test -n "$CFLAGS_END" && CFLAGS="$CFLAGS $CFLAGS_END"
 
 AC_CONFIG_FILES([ \
        Makefile \
-       contrib/Anope/Makefile \
        contrib/Debian/Makefile \
        contrib/MacOSX/Makefile \
        contrib/MacOSX/ngIRCd.pmdoc/Makefile \
diff --git a/contrib/Anope/0001-Revert-Removed-ngircd.patch b/contrib/Anope/0001-Revert-Removed-ngircd.patch
deleted file mode 100644 (file)
index efed0ad..0000000
+++ /dev/null
@@ -1,496 +0,0 @@
-From bc5023fdba8091ab7eee29fe0deeca6843159743 Mon Sep 17 00:00:00 2001
-From: Alexander Barton <alex@barton.de>
-Date: Mon, 16 May 2011 18:23:01 +0200
-Subject: [PATCH 1/2] Revert "Removed ngircd as we've decided not to support it at this time"
-
-This reverts commit 605b5d57171d2f0fac56ee2ee3e1b1bbdadeb24f and re-enables
-the ngIRCd protocol module for Anope.
----
- modules/protocol/ngircd.cpp |  475 +++++++++++++++++++++++++++++++++++++++++++
- 1 files changed, 475 insertions(+), 0 deletions(-)
- create mode 100644 modules/protocol/ngircd.cpp
-
-diff --git a/modules/protocol/ngircd.cpp b/modules/protocol/ngircd.cpp
-new file mode 100644
-index 0000000..6e1f21f
---- /dev/null
-+++ b/modules/protocol/ngircd.cpp
-@@ -0,0 +1,475 @@
-+/* ngIRCd IRCD functions
-+ *
-+ * (C) 2003-2011 Anope Team
-+ * Contact us at team@anope.org
-+ *
-+ * Please read COPYING and README for further details.
-+ *
-+ * Based on the original code of Epona by Lara.
-+ * Based on the original code of Services by Andy Church.
-+ */
-+
-+#include "services.h"
-+#include "modules.h"
-+
-+IRCDVar myIrcd[] = {
-+      {"ngIRCd",      /* ircd name */
-+       "+oi",         /* Modes used by pseudoclients */
-+       0,             /* SVSNICK */
-+       0,             /* Vhost */
-+       0,             /* Supports SNlines */
-+       0,             /* Supports SQlines */
-+       0,             /* Supports SZlines */
-+       0,             /* Join 2 Message */
-+       0,             /* Chan SQlines */
-+       1,             /* Quit on Kill */
-+       0,             /* vidents */
-+       0,             /* svshold */
-+       0,             /* time stamp on mode */
-+       0,             /* UMODE */
-+       0,             /* O:LINE */
-+       0,             /* No Knock requires +i */
-+       0,             /* Can remove User Channel Modes with SVSMODE */
-+       0,             /* Sglines are not enforced until user reconnects */
-+       0,             /* ts6 */
-+       "$",           /* TLD Prefix for Global */
-+       20,            /* Max number of modes we can send per line */
-+       0,             /* IRCd sends a SSL users certificate fingerprint */
-+       }
-+      ,
-+      {NULL}
-+};
-+
-+/* PASS */
-+class ngIRCdProto : public IRCDProto
-+{
-+      void SendAkill(User *u, const XLine *x)
-+      {
-+              if (SGLine && u == NULL)
-+                      for (Anope::insensitive_map<User *>::iterator it = UserListByNick.begin(); it != UserListByNick.end();)
-+                      {
-+                              u = it->second;
-+                              ++it;
-+                              if (SGLine->Check(u) != NULL)
-+                                      break;
-+                      }
-+      }
-+
-+      void SendAkillDel(const XLine*) { }
-+
-+      void SendGlobopsInternal(const BotInfo *source, const Anope::string &buf)
-+      {
-+              send_cmd(source ? source->nick : Config->ServerName, "WALLOPS :%s", buf.c_str());
-+      }
-+
-+      void SendJoin(BotInfo *user, Channel *c, const ChannelStatus *status)
-+      {
-+              send_cmd(user->nick, "JOIN %s", c->name.c_str());
-+              if (status)
-+                      for (unsigned i = 0; i < ModeManager::ChannelModes.size(); ++i)
-+                              if (status->HasFlag(ModeManager::ChannelModes[i]->Name))
-+                                      c->SetMode(user, ModeManager::ChannelModes[i], user->nick, false);
-+      }
-+
-+      void SendSVSKillInternal(const BotInfo *source, const User *user, const Anope::string &buf)
-+      {
-+              send_cmd(source ? source->nick : Config->ServerName, "KILL %s :%s", user->nick.c_str(), buf.c_str());
-+      }
-+
-+      /* SERVER name hop descript */
-+      void SendServer(const Server *server)
-+      {
-+              send_cmd("", "SERVER %s %d :%s", server->GetName().c_str(), server->GetHops(), server->GetDescription().c_str());
-+      }
-+
-+      void SendConnect()
-+      {
-+              send_cmd("", "PASS %s 0210-IRC+ Anope|%s:CLHSo P", uplink_server->password.c_str(), Anope::VersionShort().c_str());
-+              /* Make myself known to myself in the serverlist */
-+              SendServer(Me);
-+              /* finish the enhanced server handshake and register the connection */
-+              this->SendNumeric(Config->ServerName, 376, "*", ":End of MOTD command");
-+      }
-+
-+      // Received: :dev.anope.de NICK DukeP 1 ~DukePyro p57ABF9C9.dip.t-dialin.net 1 +i :DukePyrolator
-+      void SendClientIntroduction(const User *u, const Anope::string &modes)
-+      {
-+              EnforceQlinedNick(u->nick, "");
-+              send_cmd(Config->ServerName, "NICK %s 1 %s %s 1 %s :%s", u->nick.c_str(), u->GetIdent().c_str(), u->host.c_str(), modes.c_str(), u->realname.c_str());
-+      }
-+
-+      void SendPartInternal(const BotInfo *bi, const Channel *chan, const Anope::string &buf)
-+      {
-+              if (!buf.empty())
-+                      send_cmd(bi->nick, "PART %s :%s", chan->name.c_str(), buf.c_str());
-+              else
-+                      send_cmd(bi->nick, "PART %s", chan->name.c_str());
-+      }
-+
-+      void SendModeInternal(const BotInfo *bi, const Channel *dest, const Anope::string &buf)
-+      {
-+              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)
-+      {
-+              send_cmd(bi ? bi->nick : Config->ServerName, "MODE %s %s", u->nick.c_str(), buf.c_str());
-+      }
-+
-+      void SendKickInternal(const BotInfo *bi, const Channel *chan, const User *user, const Anope::string &buf)
-+      {
-+              if (!buf.empty())
-+                      send_cmd(bi->nick, "KICK %s %s :%s", chan->name.c_str(), user->nick.c_str(), buf.c_str());
-+              else
-+                      send_cmd(bi->nick, "KICK %s %s", chan->name.c_str(), user->nick.c_str());
-+      }
-+
-+      void SendNoticeChanopsInternal(const BotInfo *source, const Channel *dest, const Anope::string &buf)
-+      {
-+              send_cmd(source ? source->nick : Config->s_ChanServ, "NOTICE @%s :%s", dest->name.c_str(), buf.c_str());
-+      }
-+
-+      /* INVITE */
-+      void SendInvite(BotInfo *source, const Anope::string &chan, const Anope::string &nick)
-+      {
-+              send_cmd(source->nick, "INVITE %s %s", nick.c_str(), chan.c_str());
-+      }
-+
-+      void SendChannel(Channel *c)
-+      {
-+              Anope::string mlock_modes = get_mlock_modes(c->ci, true);
-+              if (mlock_modes.empty())
-+                      mlock_modes = "+";
-+              send_cmd(Config->ServerName, "CHANINFO %s %s", c->name.c_str(), mlock_modes.c_str());
-+      }
-+      void SendTopic(BotInfo *bi, Channel *c)
-+      {
-+              send_cmd(bi->nick, "TOPIC %s :%s", c->name.c_str(), c->topic.c_str());
-+      }
-+};
-+
-+class ngIRCdIRCdMessage : public IRCdMessage
-+{
-+ public:
-+      bool OnSJoin(const Anope::string&, const std::vector<Anope::string>&) { return false; }
-+
-+      /*
-+       * Received: :dev.anope.de MODE #anope +b *!*@*aol*
-+       */
-+      bool OnMode(const Anope::string &source, const std::vector<Anope::string> &params)
-+      {
-+              if (params.size() < 2)
-+                      return true;
-+
-+              Anope::string modes = params[1];
-+              for (unsigned i = 2; i < params.size(); ++i)
-+                      modes += " " + params[i];
-+
-+              if (params[0][0] == '#' || params[0][0] == '&')
-+                      do_cmode(source, params[0], modes, "");
-+              else
-+                      do_umode(params[0], params[1]);
-+
-+              return true;
-+      }
-+
-+      /*
-+        Received: :DukeP_ NICK :test2
-+        Received: :dev.anope.de NICK DukeP_ 1 ~DukePyro ip-2-201-236-154.web.vodafone.de 1 + :DukePyrolator
-+        source = nickname on nickchange, servername on newuser
-+        params[0] = nick
-+        params[1] = <unknown>
-+        params[2] = username
-+        params[3] = host
-+        params[4] = <unknown>
-+        params[5] = modes
-+        params[6] = info
-+      */
-+      bool OnNick(const Anope::string &source, const std::vector<Anope::string> &params)
-+      {
-+              if (params.size() == 1)
-+              {
-+                      // we have a nickchange
-+                      do_nick(source, params[0], "", "", "", "", Anope::CurTime, "", "", "", "");
-+              }
-+              else if (params.size() == 7)
-+              {
-+                      // a new user is connecting to the network
-+                      User *user = do_nick("", params[0], params[2], params[3], source, params[6], Anope::CurTime, "", "", "", params[5]);
-+                      if (user)
-+                              validate_user(user);
-+              }
-+              else
-+              {
-+                      Log() << "Received NICK with invalid number of parameters. source = " << source << "param[0] = " << params[0] << "params.size() = " << params.size();
-+              }
-+              return true;
-+      }
-+
-+      bool OnServer(const Anope::string &source, const std::vector<Anope::string> &params)
-+      {
-+              if (params.size() == 3)
-+                      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]);
-+              return true;
-+      }
-+
-+      bool OnTopic(const Anope::string &source, const std::vector<Anope::string> &params)
-+      {
-+              Channel *c = findchan(params[0]);
-+              if (!c)
-+              {
-+                      Log() << "TOPIC for nonexistant channel " << params[0];
-+                      return true;
-+              }
-+
-+              c->ChangeTopicInternal(source, params[1]);
-+              return true;
-+      }
-+
-+      /*
-+       * <@po||ux> DukeP: RFC 2813, 4.2.1: the JOIN command on server-server links
-+       * separates the modes ("o") with ASCII 7, not space. And you can't see ASCII 7.
-+       *
-+       * if a user joins a new channel, the ircd sends <channelname>\7<umode>
-+       */
-+      bool OnJoin (const Anope::string &source, const std::vector<Anope::string> &params)
-+      {
-+              if (!params.empty())
-+              {
-+                      size_t pos = params[0].find('\7');
-+                      if (pos != Anope::string::npos)
-+                      {
-+                              Anope::string channel = params[0].substr(0, pos);
-+                              Anope::string mode = '+' + params[0].substr(pos, params[0].length()) + " " + source;
-+                              do_join(source, channel, "");
-+                              do_cmode(source, channel, mode, "");
-+                      }
-+                      else
-+                              do_join(source, params[0], "");
-+              }
-+              return true;
-+      }
-+};
-+
-+/*
-+ * CHANINFO <chan> +<modes>
-+ * CHANINFO <chan> +<modes> :<topic>
-+ * CHANINFO <chan> +<modes> <key> <limit> :<topic>
-+ */
-+bool event_chaninfo(const Anope::string &source, const std::vector<Anope::string> &params)
-+{
-+
-+      Channel *c = findchan(params[0]);
-+      if (!c)
-+              c = new Channel(params[0]);
-+
-+      Anope::string modes = params[1];
-+      
-+      if (params.size() == 3)
-+      {
-+              c->ChangeTopicInternal(source, params[2], Anope::CurTime);
-+      } 
-+      else if (params.size() == 5)
-+      {
-+              for (size_t i = 0, end = params[1].length(); i < end; ++i)
-+              {
-+                      switch(params[1][i])
-+                      {
-+                              case 'k':
-+                                      modes += " " + params[2];
-+                                      continue;
-+                              case 'l':
-+                                      modes += " " + params[3];
-+                                      continue;
-+                      }
-+              }
-+              c->ChangeTopicInternal(source, params[4], Anope::CurTime);
-+      }
-+
-+      c->SetModesInternal(NULL, modes);
-+
-+      return true;
-+}
-+
-+/*
-+ * Received: :dev.anope.de NJOIN #test :DukeP2,@DukeP
-+ */
-+bool event_njoin(const Anope::string &source, const std::vector<Anope::string> &params)
-+{
-+      Channel *c = findchan(params[0]);
-+      commasepstream sep(params[1]);
-+      Anope::string buf;
-+
-+      if (!c)
-+      {
-+              c = new Channel(params[0], Anope::CurTime);
-+              c->SetFlag(CH_SYNCING);
-+      }
-+      
-+      while (sep.GetToken(buf))
-+      {
-+              std::list<ChannelMode *> Status;
-+              char ch;
-+
-+              /* Get prefixes from the nick */
-+              while ((ch = ModeManager::GetStatusChar(buf[0])))
-+              {
-+                      buf.erase(buf.begin());
-+                      ChannelMode *cm = ModeManager::FindChannelModeByChar(ch);
-+                      if (!cm)
-+                      {
-+                              Log() << "Received unknown mode prefix " << ch << " in NJOIN string.";
-+                              continue;
-+                      }
-+                      Status.push_back(cm);
-+              }
-+              User *u = finduser(buf);
-+              if (!u)
-+              {
-+                      Log(LOG_DEBUG) << "NJOIN for nonexistant user " << buf << " on " << c->name;
-+                      continue;
-+              }
-+
-+              EventReturn MOD_RESULT;
-+              FOREACH_RESULT(I_OnPreJoinChannel, OnPreJoinChannel(u, c));
-+
-+              /* Add the user to the Channel */
-+              c->JoinUser(u);
-+
-+              /* Update their status internally on the channel
-+               * This will enforce secureops etc on the user
-+               */
-+              for (std::list<ChannelMode *>::iterator it = Status.begin(), it_end = Status.end(); it != it_end; ++it)
-+                      c->SetModeInternal(*it, buf);
-+              /* Now set whatever modes this user is allowed to have on the channel */
-+              chan_set_correct_modes(u, c, 1);
-+
-+              /* Check to see if modules want the user to join, if they do
-+               * check to see if they are allowed to join (CheckKick will kick/ban them)
-+               * Don't trigger OnJoinChannel event then as the user will be destroyed
-+               */
-+              if (MOD_RESULT != EVENT_STOP && c->ci && c->ci->CheckKick(u))
-+                      continue;
-+
-+              FOREACH_MOD(I_OnJoinChannel, OnJoinChannel(u, c));
-+      } /* while */
-+
-+      if (c->HasFlag(CH_SYNCING))
-+      {
-+              c->UnsetFlag(CH_SYNCING);
-+              c->Sync();
-+      }
-+
-+      return true;
-+}
-+
-+bool event_kick(const Anope::string &source, const std::vector<Anope::string> &params)
-+{
-+      if (params.size() > 2)
-+              do_kick(source, params[0], params[1], params[2]);
-+      return true;
-+}
-+
-+bool event_pass(const Anope::string &source, const std::vector<Anope::string> &params)
-+{
-+      return true;
-+}
-+
-+bool event_005(const Anope::string &source, const std::vector<Anope::string> &params)
-+{
-+      size_t pos;
-+      Anope::string name, data;
-+      for (unsigned i = 0, end = params.size(); i < end; ++i)
-+      {
-+              pos = params[i].find('=');
-+              if (pos != Anope::string::npos)
-+              {
-+                      name = params[i].substr(0, pos);
-+                      data = params[i].substr(pos+1, params[i].length());
-+                      if (name == "NICKLEN")
-+                      {
-+                              unsigned newlen = convertTo<unsigned>(data);
-+                              if (Config->NickLen != newlen)
-+                              {
-+                                      Log() << "Config->NickLen changed from " << Config->NickLen << " to " << newlen;
-+                                      Config->NickLen = newlen;
-+                              }
-+                      }
-+              }
-+      }
-+      return true;
-+}
-+
-+bool event_442(const Anope::string &source, const std::vector<Anope::string> &params)
-+{
-+      return true;
-+}
-+
-+bool event_376(const Anope::string &source, const std::vector<Anope::string> &params)
-+{
-+      return true;
-+}
-+
-+
-+class ProtongIRCd : public Module
-+{
-+      Message message_kick, message_pass, message_njoin, message_chaninfo, message_005, 
-+              message_442, message_376;
-+      
-+      ngIRCdProto ircd_proto;
-+      ngIRCdIRCdMessage ircd_message;
-+
-+      void AddModes()
-+      {
-+              /* Add user modes */
-+              ModeManager::AddUserMode(new UserMode(UMODE_ADMIN, 'a'));
-+              ModeManager::AddUserMode(new UserMode(UMODE_INVIS, 'i'));
-+              ModeManager::AddUserMode(new UserMode(UMODE_OPER, 'o'));
-+              ModeManager::AddUserMode(new UserMode(UMODE_RESTRICTED, 'r'));
-+              ModeManager::AddUserMode(new UserMode(UMODE_SNOMASK, 's'));
-+              ModeManager::AddUserMode(new UserMode(UMODE_WALLOPS, 'w'));
-+              ModeManager::AddUserMode(new UserMode(UMODE_CLOAK, 'x'));
-+
-+              /* b/e/I */
-+              ModeManager::AddChannelMode(new ChannelModeBan(CMODE_BAN, 'b'));
-+              ModeManager::AddChannelMode(new ChannelModeList(CMODE_INVITEOVERRIDE, 'I'));
-+
-+              /* v/h/o/a/q */
-+              ModeManager::AddChannelMode(new ChannelModeStatus(CMODE_VOICE, 'v', '+'));
-+              ModeManager::AddChannelMode(new ChannelModeStatus(CMODE_OP, 'o', '@'));
-+
-+              /* Add channel modes */
-+              // channel modes: biIklmnoPstvz
-+              ModeManager::AddChannelMode(new ChannelMode(CMODE_INVITE, 'i'));
-+              ModeManager::AddChannelMode(new ChannelModeKey('k'));
-+              ModeManager::AddChannelMode(new ChannelModeParam(CMODE_LIMIT, 'l'));
-+              ModeManager::AddChannelMode(new ChannelMode(CMODE_MODERATED, 'm'));
-+              ModeManager::AddChannelMode(new ChannelMode(CMODE_NOEXTERNAL, 'n'));
-+              ModeManager::AddChannelMode(new ChannelMode(CMODE_PERM, 'P'));
-+              ModeManager::AddChannelMode(new ChannelMode(CMODE_SECRET, 's'));
-+              ModeManager::AddChannelMode(new ChannelMode(CMODE_TOPIC, 't'));
-+              ModeManager::AddChannelMode(new ChannelMode(CMODE_SSL, 'z'));
-+      }
-+
-+ public:
-+      ProtongIRCd(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator),
-+              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)
-+      {
-+              this->SetAuthor("Anope");
-+              this->SetType(PROTOCOL);
-+              
-+              Capab.SetFlag(CAPAB_QS);
-+
-+              pmodule_ircd_var(myIrcd);
-+              pmodule_ircd_proto(&this->ircd_proto);
-+              pmodule_ircd_message(&this->ircd_message);
-+
-+              this->AddModes();
-+      }
-+};
-+
-+MODULE_INIT(ProtongIRCd)
--- 
-1.7.2.5
-
diff --git a/contrib/Anope/0002-ngircd-whitespace-fixes.patch b/contrib/Anope/0002-ngircd-whitespace-fixes.patch
deleted file mode 100644 (file)
index 60356a8..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-From 1ea1dd2095e63cef34edbebb729edc687f410a96 Mon Sep 17 00:00:00 2001
-From: Alexander Barton <alex@barton.de>
-Date: Mon, 16 May 2011 18:26:56 +0200
-Subject: [PATCH 2/2] ngircd: whitespace fixes
-
----
- modules/protocol/ngircd.cpp |   12 ++++++------
- 1 files changed, 6 insertions(+), 6 deletions(-)
-
-diff --git a/modules/protocol/ngircd.cpp b/modules/protocol/ngircd.cpp
-index 6e1f21f..e546d05 100644
---- a/modules/protocol/ngircd.cpp
-+++ b/modules/protocol/ngircd.cpp
-@@ -266,11 +266,11 @@ bool event_chaninfo(const Anope::string &source, const std::vector<Anope::string
-               c = new Channel(params[0]);
-       Anope::string modes = params[1];
--      
-+
-       if (params.size() == 3)
-       {
-               c->ChangeTopicInternal(source, params[2], Anope::CurTime);
--      } 
-+      }
-       else if (params.size() == 5)
-       {
-               for (size_t i = 0, end = params[1].length(); i < end; ++i)
-@@ -307,7 +307,7 @@ bool event_njoin(const Anope::string &source, const std::vector<Anope::string> &
-               c = new Channel(params[0], Anope::CurTime);
-               c->SetFlag(CH_SYNCING);
-       }
--      
-+
-       while (sep.GetToken(buf))
-       {
-               std::list<ChannelMode *> Status;
-@@ -415,9 +415,9 @@ 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 message_kick, message_pass, message_njoin, message_chaninfo, message_005,
-               message_442, message_376;
--      
-+
-       ngIRCdProto ircd_proto;
-       ngIRCdIRCdMessage ircd_message;
-@@ -461,7 +461,7 @@ class ProtongIRCd : public Module
-       {
-               this->SetAuthor("Anope");
-               this->SetType(PROTOCOL);
--              
-+
-               Capab.SetFlag(CAPAB_QS);
-               pmodule_ircd_var(myIrcd);
--- 
-1.7.2.5
-
diff --git a/contrib/Anope/0003-Update-ngIRCd-protocol-module-for-current-Anope.patch b/contrib/Anope/0003-Update-ngIRCd-protocol-module-for-current-Anope.patch
deleted file mode 100644 (file)
index c4ea0e6..0000000
+++ /dev/null
@@ -1,128 +0,0 @@
-From d8eddbeaadc7d161865b5342d59748b80266533c Mon Sep 17 00:00:00 2001
-From: DukePyrolator <DukePyrolator@anope.org>
-Date: Mon, 22 Aug 2011 14:53:37 +0200
-Subject: [PATCH 03/16] Update ngIRCd protocol module for current Anope 1.9
- GIT
-
----
- modules/protocol/ngircd.cpp |   37 ++++++++++++++++++-------------------
- 1 files changed, 18 insertions(+), 19 deletions(-)
-
-diff --git a/modules/protocol/ngircd.cpp b/modules/protocol/ngircd.cpp
-index e546d05..790b8f4 100644
---- a/modules/protocol/ngircd.cpp
-+++ b/modules/protocol/ngircd.cpp
-@@ -11,6 +11,8 @@
- #include "services.h"
- #include "modules.h"
-+#include "nickserv.h"
-+#include "oper.h"
- IRCDVar myIrcd[] = {
-       {"ngIRCd",      /* ircd name */
-@@ -45,14 +47,7 @@ class ngIRCdProto : public IRCDProto
- {
-       void SendAkill(User *u, const XLine *x)
-       {
--              if (SGLine && u == NULL)
--                      for (Anope::insensitive_map<User *>::iterator it = UserListByNick.begin(); it != UserListByNick.end();)
--                      {
--                              u = it->second;
--                              ++it;
--                              if (SGLine->Check(u) != NULL)
--                                      break;
--                      }
-+              // TODO: ADD SOME CODE
-       }
-       void SendAkillDel(const XLine*) { }
-@@ -62,13 +57,16 @@ class ngIRCdProto : public IRCDProto
-               send_cmd(source ? source->nick : Config->ServerName, "WALLOPS :%s", buf.c_str());
-       }
--      void SendJoin(BotInfo *user, Channel *c, const ChannelStatus *status)
-+      void SendJoin(User *user, Channel *c, const ChannelStatus *status)
-       {
-               send_cmd(user->nick, "JOIN %s", c->name.c_str());
-               if (status)
-+              {
-+                      BotInfo *setter = findbot(user->nick);
-                       for (unsigned i = 0; i < ModeManager::ChannelModes.size(); ++i)
-                               if (status->HasFlag(ModeManager::ChannelModes[i]->Name))
--                                      c->SetMode(user, ModeManager::ChannelModes[i], user->nick, false);
-+                                      c->SetMode(setter, ModeManager::ChannelModes[i], user->nick, false);
-+              }
-       }
-       void SendSVSKillInternal(const BotInfo *source, const User *user, const Anope::string &buf)
-@@ -84,7 +82,7 @@ class ngIRCdProto : public IRCDProto
-       void SendConnect()
-       {
--              send_cmd("", "PASS %s 0210-IRC+ Anope|%s:CLHSo P", uplink_server->password.c_str(), Anope::VersionShort().c_str());
-+              send_cmd("", "PASS %s 0210-IRC+ Anope|%s:CLHSo P", Config->Uplinks[CurrentUplink]->password.c_str(), Anope::VersionShort().c_str());
-               /* Make myself known to myself in the serverlist */
-               SendServer(Me);
-               /* finish the enhanced server handshake and register the connection */
-@@ -92,9 +90,11 @@ class ngIRCdProto : public IRCDProto
-       }
-       // Received: :dev.anope.de NICK DukeP 1 ~DukePyro p57ABF9C9.dip.t-dialin.net 1 +i :DukePyrolator
--      void SendClientIntroduction(const User *u, const Anope::string &modes)
-+      void SendClientIntroduction(const User *u)
-       {
--              EnforceQlinedNick(u->nick, "");
-+              Anope::string modes = "+" + u->GetModes();
-+              XLine x(u->nick, "Reserved for services");
-+              ircdproto->SendSQLine(NULL, &x);
-               send_cmd(Config->ServerName, "NICK %s 1 %s %s 1 %s :%s", u->nick.c_str(), u->GetIdent().c_str(), u->host.c_str(), modes.c_str(), u->realname.c_str());
-       }
-@@ -126,7 +126,7 @@ class ngIRCdProto : public IRCDProto
-       void SendNoticeChanopsInternal(const BotInfo *source, const Channel *dest, const Anope::string &buf)
-       {
--              send_cmd(source ? source->nick : Config->s_ChanServ, "NOTICE @%s :%s", dest->name.c_str(), buf.c_str());
-+              send_cmd(source->nick, "NOTICE @%s :%s", dest->name.c_str(), buf.c_str());
-       }
-       /* INVITE */
-@@ -196,8 +196,8 @@ class ngIRCdIRCdMessage : public IRCdMessage
-               {
-                       // a new user is connecting to the network
-                       User *user = do_nick("", params[0], params[2], params[3], source, params[6], Anope::CurTime, "", "", "", params[5]);
--                      if (user)
--                              validate_user(user);
-+                      if (user && nickserv)
-+                              nickserv->Validate(user);
-               }
-               else
-               {
-@@ -433,7 +433,7 @@ class ProtongIRCd : public Module
-               ModeManager::AddUserMode(new UserMode(UMODE_CLOAK, 'x'));
-               /* b/e/I */
--              ModeManager::AddChannelMode(new ChannelModeBan(CMODE_BAN, 'b'));
-+              ModeManager::AddChannelMode(new ChannelModeList(CMODE_BAN, 'b'));
-               ModeManager::AddChannelMode(new ChannelModeList(CMODE_INVITEOVERRIDE, 'I'));
-               /* v/h/o/a/q */
-@@ -454,13 +454,12 @@ class ProtongIRCd : public Module
-       }
-  public:
--      ProtongIRCd(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator),
-+      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)
-       {
-               this->SetAuthor("Anope");
--              this->SetType(PROTOCOL);
-               Capab.SetFlag(CAPAB_QS);
--- 
-1.7.8.3
-
diff --git a/contrib/Anope/0004-ngircd-Do-PING-PONG-on-server-burst-to-sync.patch b/contrib/Anope/0004-ngircd-Do-PING-PONG-on-server-burst-to-sync.patch
deleted file mode 100644 (file)
index 0aec3e9..0000000
+++ /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> &params)
-+{
-+      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
-
diff --git a/contrib/Anope/0005-ngircd-always-prefix-modes-in-CHANINFO-with.patch b/contrib/Anope/0005-ngircd-always-prefix-modes-in-CHANINFO-with.patch
deleted file mode 100644 (file)
index 27b7163..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-From 0d83f8f9ca0de651d664eca6f467f36df0417f7d Mon Sep 17 00:00:00 2001
-From: Alexander Barton <alex@barton.de>
-Date: Mon, 22 Aug 2011 14:59:49 +0200
-Subject: [PATCH 05/16] ngircd: always prefix modes in CHANINFO with "+"
-
----
- modules/protocol/ngircd.cpp |    6 ++----
- 1 files changed, 2 insertions(+), 4 deletions(-)
-
-diff --git a/modules/protocol/ngircd.cpp b/modules/protocol/ngircd.cpp
-index 89aecfd..3e5beb3 100644
---- a/modules/protocol/ngircd.cpp
-+++ b/modules/protocol/ngircd.cpp
-@@ -139,10 +139,8 @@ Log(LOG_DEBUG) << "SendModeInternal 2";
-       void SendChannel(Channel *c)
-       {
--              Anope::string mlock_modes = get_mlock_modes(c->ci, true);
--              if (mlock_modes.empty())
--                      mlock_modes = "+";
--              send_cmd(Config->ServerName, "CHANINFO %s %s", c->name.c_str(), mlock_modes.c_str());
-+              Anope::string modes = c->GetModes(true, true);
-+              send_cmd(Config->ServerName, "CHANINFO %s +%s", c->name.c_str(), modes.c_str());
-       }
-       void SendTopic(BotInfo *bi, Channel *c)
-       {
--- 
-1.7.8.3
-
diff --git a/contrib/Anope/0006-ngircd-support-user-mode-R-and-channel-mode-R.patch b/contrib/Anope/0006-ngircd-support-user-mode-R-and-channel-mode-R.patch
deleted file mode 100644 (file)
index 8038555..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-From 1914a36b83b1fc6b4678ef261a1a06eefab9a0ca Mon Sep 17 00:00:00 2001
-From: Alexander Barton <alex@barton.de>
-Date: Fri, 26 Aug 2011 17:51:37 +0200
-Subject: [PATCH 06/16] ngircd: support user mode "R" and channel mode "R"
-
----
- modules/protocol/ngircd.cpp |    7 ++++---
- 1 files changed, 4 insertions(+), 3 deletions(-)
-
-diff --git a/modules/protocol/ngircd.cpp b/modules/protocol/ngircd.cpp
-index 3e5beb3..7f4186e 100644
---- a/modules/protocol/ngircd.cpp
-+++ b/modules/protocol/ngircd.cpp
-@@ -449,26 +449,27 @@ class ProtongIRCd : public Module
-               ModeManager::AddUserMode(new UserMode(UMODE_INVIS, 'i'));
-               ModeManager::AddUserMode(new UserMode(UMODE_OPER, 'o'));
-               ModeManager::AddUserMode(new UserMode(UMODE_RESTRICTED, 'r'));
-+              ModeManager::AddUserMode(new UserMode(UMODE_REGISTERED, 'R'));
-               ModeManager::AddUserMode(new UserMode(UMODE_SNOMASK, 's'));
-               ModeManager::AddUserMode(new UserMode(UMODE_WALLOPS, 'w'));
-               ModeManager::AddUserMode(new UserMode(UMODE_CLOAK, 'x'));
--              /* b/e/I */
-+              /* Add modes for ban and invite lists */
-               ModeManager::AddChannelMode(new ChannelModeList(CMODE_BAN, 'b'));
-               ModeManager::AddChannelMode(new ChannelModeList(CMODE_INVITEOVERRIDE, 'I'));
--              /* v/h/o/a/q */
-+              /* Add channel user modes */
-               ModeManager::AddChannelMode(new ChannelModeStatus(CMODE_VOICE, 'v', '+'));
-               ModeManager::AddChannelMode(new ChannelModeStatus(CMODE_OP, 'o', '@'));
-               /* Add channel modes */
--              // channel modes: biIklmnoPstvz
-               ModeManager::AddChannelMode(new ChannelMode(CMODE_INVITE, 'i'));
-               ModeManager::AddChannelMode(new ChannelModeKey('k'));
-               ModeManager::AddChannelMode(new ChannelModeParam(CMODE_LIMIT, 'l'));
-               ModeManager::AddChannelMode(new ChannelMode(CMODE_MODERATED, 'm'));
-               ModeManager::AddChannelMode(new ChannelMode(CMODE_NOEXTERNAL, 'n'));
-               ModeManager::AddChannelMode(new ChannelMode(CMODE_PERM, 'P'));
-+              ModeManager::AddChannelMode(new ChannelMode(CMODE_REGISTEREDONLY, 'R'));
-               ModeManager::AddChannelMode(new ChannelMode(CMODE_SECRET, 's'));
-               ModeManager::AddChannelMode(new ChannelMode(CMODE_TOPIC, 't'));
-               ModeManager::AddChannelMode(new ChannelMode(CMODE_SSL, 'z'));
--- 
-1.7.8.3
-
diff --git a/contrib/Anope/0007-ngircd-Fix-handling-of-JOIN-commands.patch b/contrib/Anope/0007-ngircd-Fix-handling-of-JOIN-commands.patch
deleted file mode 100644 (file)
index f507499..0000000
+++ /dev/null
@@ -1,96 +0,0 @@
-From 4c9300ede35310ee5642f34e5ac227bd96fc7384 Mon Sep 17 00:00:00 2001
-From: DukePyrolator <DukePyrolator@anope.org>
-Date: Sun, 4 Sep 2011 15:08:55 +0200
-Subject: [PATCH 07/16] ngircd: Fix handling of JOIN commands
-
----
- modules/protocol/ngircd.cpp |   60 +++++++++++++++++++++++++++++++++++++++---
- 1 files changed, 55 insertions(+), 5 deletions(-)
-
-diff --git a/modules/protocol/ngircd.cpp b/modules/protocol/ngircd.cpp
-index 7f4186e..3024fdd 100644
---- a/modules/protocol/ngircd.cpp
-+++ b/modules/protocol/ngircd.cpp
-@@ -240,16 +240,58 @@ class ngIRCdIRCdMessage : public IRCdMessage
-       {
-               if (!params.empty())
-               {
-+                      Anope::string channel, mode;
-                       size_t pos = params[0].find('\7');
-                       if (pos != Anope::string::npos)
-                       {
--                              Anope::string channel = params[0].substr(0, pos);
--                              Anope::string mode = '+' + params[0].substr(pos, params[0].length()) + " " + source;
--                              do_join(source, channel, "");
--                              do_cmode(source, channel, mode, "");
-+                              channel = params[0].substr(0, pos);
-+                              mode = '+' + params[0].substr(pos+1, params[0].length()) + " " + source;
-                       }
-                       else
--                              do_join(source, params[0], "");
-+                              channel = params[0];
-+
-+                      Channel *c = findchan(channel);
-+
-+                      if (!c)
-+                      {
-+                              c = new Channel(channel, Anope::CurTime);
-+                              c->SetFlag(CH_SYNCING);
-+                      }
-+
-+                      User *u = finduser(source);
-+
-+                      if (!u)
-+                      {
-+                              Log(LOG_DEBUG) << "JOIN for nonexistant user " << source << " on " << channel;
-+                              return false;
-+                      }
-+
-+                      EventReturn MOD_RESULT;
-+                      FOREACH_RESULT(I_OnPreJoinChannel, OnPreJoinChannel(u, c));
-+
-+                      /* Add the user to the channel */
-+                      c->JoinUser(u);
-+
-+                      /* set the usermodes to the channel */
-+                      do_cmode(source, channel, mode, "");
-+
-+                      /* Now set whatever modes this user is allowed to have on the channel */
-+                      chan_set_correct_modes(u, c, 1);
-+
-+                      /* Check to see if modules want the user to join, if they do
-+                       * check to see if they are allowed to join (CheckKick will kick/ban them)
-+                       * Don't trigger OnJoinChannel event then as the user will be destroyed
-+                       */
-+                      if (MOD_RESULT != EVENT_STOP && c->ci && c->ci->CheckKick(u))
-+                              return false;
-+
-+                      FOREACH_MOD(I_OnJoinChannel, OnJoinChannel(u, c));
-+
-+                      if (c->HasFlag(CH_SYNCING))
-+                      {
-+                              c->UnsetFlag(CH_SYNCING);
-+                              c->Sync();
-+                      }
-               }
-               return true;
-       }
-@@ -491,7 +533,15 @@ class ProtongIRCd : public Module
-               pmodule_ircd_message(&this->ircd_message);
-               this->AddModes();
-+
-+              ModuleManager::Attach(I_OnUserNickChange, this);
-       }
-+
-+      void OnUserNickChange(User *u, const Anope::string &)
-+      {
-+              u->RemoveModeInternal(ModeManager::FindUserModeByName(UMODE_REGISTERED));
-+      }
-+
- };
- MODULE_INIT(ProtongIRCd)
--- 
-1.7.8.3
-
diff --git a/contrib/Anope/0008-ngircd-Allow-setting-modes-by-clients-on-burst.patch b/contrib/Anope/0008-ngircd-Allow-setting-modes-by-clients-on-burst.patch
deleted file mode 100644 (file)
index eb2c214..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-From d363ebd841ea7e1db3c62730023759d69520e0d8 Mon Sep 17 00:00:00 2001
-From: Alexander Barton <alex@barton.de>
-Date: Tue, 27 Sep 2011 15:08:09 +0200
-Subject: [PATCH 08/16] ngircd: Allow setting modes by clients on burst
-
-This change is required by commit 43201ead9575a for the ngIRCd protocol
-module as well.
----
- modules/protocol/ngircd.cpp |    7 +++++--
- 1 files changed, 5 insertions(+), 2 deletions(-)
-
-diff --git a/modules/protocol/ngircd.cpp b/modules/protocol/ngircd.cpp
-index 3024fdd..2774168 100644
---- a/modules/protocol/ngircd.cpp
-+++ b/modules/protocol/ngircd.cpp
-@@ -57,14 +57,17 @@ class ngIRCdProto : public IRCDProto
-               send_cmd(source ? source->nick : Config->ServerName, "WALLOPS :%s", buf.c_str());
-       }
--      void SendJoin(User *user, Channel *c, const ChannelStatus *status)
-+      void SendJoin(User *user, Channel *c, ChannelStatus *status)
-       {
-               send_cmd(user->nick, "JOIN %s", c->name.c_str());
-               if (status)
-               {
-+                      ChannelStatus cs = *status;
-+                      status->ClearFlags();
-+
-                       BotInfo *setter = findbot(user->nick);
-                       for (unsigned i = 0; i < ModeManager::ChannelModes.size(); ++i)
--                              if (status->HasFlag(ModeManager::ChannelModes[i]->Name))
-+                              if (cs.HasFlag(ModeManager::ChannelModes[i]->Name))
-                                       c->SetMode(setter, ModeManager::ChannelModes[i], user->nick, false);
-               }
-       }
--- 
-1.7.8.3
-
diff --git a/contrib/Anope/0009-ngircd-Update-protocol-module-for-current-Anope.patch b/contrib/Anope/0009-ngircd-Update-protocol-module-for-current-Anope.patch
deleted file mode 100644 (file)
index b6a003a..0000000
+++ /dev/null
@@ -1,143 +0,0 @@
-From e74a5303f2357f4a9915bb91038a2e326323db3c Mon Sep 17 00:00:00 2001
-From: Alexander Barton <alex@barton.de>
-Date: Fri, 25 Nov 2011 19:16:37 +0100
-Subject: [PATCH 09/16] ngircd: Update protocol module for current Anope 1.9
- GIT
-
-This changes are rquired by:
-
- - b14f5ea88: Fixed accidentally clearing botmodes when joins are sent
- - cef3eb78d: Remove send_cmd and replace it with a stringstream
- - ddc3c2f38: Added options:nonicknameownership config option
----
- modules/protocol/ngircd.cpp |   54 ++++++++++++++++++++++--------------------
- 1 files changed, 28 insertions(+), 26 deletions(-)
-
-diff --git a/modules/protocol/ngircd.cpp b/modules/protocol/ngircd.cpp
-index 2774168..55cb8d7 100644
---- a/modules/protocol/ngircd.cpp
-+++ b/modules/protocol/ngircd.cpp
-@@ -54,16 +54,22 @@ class ngIRCdProto : public IRCDProto
-       void SendGlobopsInternal(const BotInfo *source, const Anope::string &buf)
-       {
--              send_cmd(source ? source->nick : Config->ServerName, "WALLOPS :%s", buf.c_str());
-+              UplinkSocket::Message(source ? source->nick : Config->ServerName) << "WALLOPS :" << buf;
-       }
--      void SendJoin(User *user, Channel *c, ChannelStatus *status)
-+      void SendJoin(User *user, Channel *c, const ChannelStatus *status)
-       {
--              send_cmd(user->nick, "JOIN %s", c->name.c_str());
-+              UplinkSocket::Message(user->nick) << "JOIN " << c->name;
-               if (status)
-               {
-+                      /* First save the channel status incase uc->Status == status */
-                       ChannelStatus cs = *status;
--                      status->ClearFlags();
-+                      /* If the user is internally on the channel with flags, kill them so that
-+                       * the stacker will allow this.
-+                       */
-+                      UserContainer *uc = c->FindUser(user);
-+                      if (uc != NULL)
-+                              uc->Status->ClearFlags();
-                       BotInfo *setter = findbot(user->nick);
-                       for (unsigned i = 0; i < ModeManager::ChannelModes.size(); ++i)
-@@ -74,18 +80,18 @@ class ngIRCdProto : public IRCDProto
-       void SendSVSKillInternal(const BotInfo *source, const User *user, const Anope::string &buf)
-       {
--              send_cmd(source ? source->nick : Config->ServerName, "KILL %s :%s", user->nick.c_str(), buf.c_str());
-+              UplinkSocket::Message(source ? source->nick : Config->ServerName) << "KILL " << user->nick << " :" << buf;
-       }
-       /* SERVER name hop descript */
-       void SendServer(const Server *server)
-       {
--              send_cmd("", "SERVER %s %d :%s", server->GetName().c_str(), server->GetHops(), server->GetDescription().c_str());
-+              UplinkSocket::Message() << "SERVER " << server->GetName() << " " << server->GetHops() << " :" << server->GetDescription();
-       }
-       void SendConnect()
-       {
--              send_cmd("", "PASS %s 0210-IRC+ Anope|%s:CLHSo P", Config->Uplinks[CurrentUplink]->password.c_str(), Anope::VersionShort().c_str());
-+              UplinkSocket::Message() << "PASS " << Config->Uplinks[CurrentUplink]->password << " 0210-IRC+ Anope|" << Anope::VersionShort() << ":CLHSo P";
-               /* Make myself known to myself in the serverlist */
-               SendServer(Me);
-               /* finish the enhanced server handshake and register the connection */
-@@ -98,56 +104,52 @@ class ngIRCdProto : public IRCDProto
-               Anope::string modes = "+" + u->GetModes();
-               XLine x(u->nick, "Reserved for services");
-               ircdproto->SendSQLine(NULL, &x);
--              send_cmd(Config->ServerName, "NICK %s 1 %s %s 1 %s :%s", u->nick.c_str(), u->GetIdent().c_str(), u->host.c_str(), modes.c_str(), u->realname.c_str());
-+              UplinkSocket::Message(Config->ServerName) << "NICK " << u->nick << " 1 " << u->GetIdent() << " " << u->host << " 1 " << modes << " :" << u->realname;
-       }
-       void SendPartInternal(const BotInfo *bi, const Channel *chan, const Anope::string &buf)
-       {
-               if (!buf.empty())
--                      send_cmd(bi->nick, "PART %s :%s", chan->name.c_str(), buf.c_str());
-+                      UplinkSocket::Message(bi->nick) << "PART " << chan->name << " :" << buf;
-               else
--                      send_cmd(bi->nick, "PART %s", chan->name.c_str());
-+                      UplinkSocket::Message(bi->nick) << "PART " << chan->name;
-       }
-       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());
-+              UplinkSocket::Message(bi ? bi->nick : Config->ServerName) << "MODE " << dest->name << " " << buf;
-       }
-       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());
-+              UplinkSocket::Message(bi ? bi->nick : Config->ServerName) << "MODE " << u->nick << " " << buf;
-       }
-       void SendKickInternal(const BotInfo *bi, const Channel *chan, const User *user, const Anope::string &buf)
-       {
-               if (!buf.empty())
--                      send_cmd(bi->nick, "KICK %s %s :%s", chan->name.c_str(), user->nick.c_str(), buf.c_str());
-+                      UplinkSocket::Message(bi->nick) << "KICK " << chan->name << " " << user->nick << " :" << buf;
-               else
--                      send_cmd(bi->nick, "KICK %s %s", chan->name.c_str(), user->nick.c_str());
-+                      UplinkSocket::Message(bi->nick) << "KICK " << chan->name << " " << user->nick;
-       }
--      void SendNoticeChanopsInternal(const BotInfo *source, const Channel *dest, const Anope::string &buf)
-+      void SendChannel(Channel *c)
-       {
--              send_cmd(source->nick, "NOTICE @%s :%s", dest->name.c_str(), buf.c_str());
-+              Anope::string modes = c->GetModes(true, true);
-+              UplinkSocket::Message(Config->ServerName) << "CHANINFO " << c->name << " +" << modes;
-       }
--      /* INVITE */
--      void SendInvite(BotInfo *source, const Anope::string &chan, const Anope::string &nick)
-+      void SendTopic(BotInfo *bi, Channel *c)
-       {
--              send_cmd(source->nick, "INVITE %s %s", nick.c_str(), chan.c_str());
-+              UplinkSocket::Message(bi->nick) << "TOPIC " << c->name << " :" << c->topic;
-       }
--      void SendChannel(Channel *c)
-+      void SendLogin(User *u)
-       {
--              Anope::string modes = c->GetModes(true, true);
--              send_cmd(Config->ServerName, "CHANINFO %s +%s", c->name.c_str(), modes.c_str());
-       }
--      void SendTopic(BotInfo *bi, Channel *c)
-+
-+      void SendLogout(User *u)
-       {
--              send_cmd(bi->nick, "TOPIC %s :%s", c->name.c_str(), c->topic.c_str());
-       }
- };
--- 
-1.7.8.3
-
diff --git a/contrib/Anope/0010-ngircd-Add-ProtongIRCd.patch b/contrib/Anope/0010-ngircd-Add-ProtongIRCd.patch
deleted file mode 100644 (file)
index 42cd4a5..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-From d2c45d7c578ec684d3b471020f631847316de196 Mon Sep 17 00:00:00 2001
-From: Alexander Barton <alex@barton.de>
-Date: Fri, 25 Nov 2011 19:17:19 +0100
-Subject: [PATCH 10/16] ngircd: Add ~ProtongIRCd()
-
----
- modules/protocol/ngircd.cpp |   13 ++++++++-----
- 1 files changed, 8 insertions(+), 5 deletions(-)
-
-diff --git a/modules/protocol/ngircd.cpp b/modules/protocol/ngircd.cpp
-index 55cb8d7..5fd62db 100644
---- a/modules/protocol/ngircd.cpp
-+++ b/modules/protocol/ngircd.cpp
-@@ -302,8 +302,7 @@ 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
-@@ -319,8 +318,6 @@ bool event_pong(const Anope::string &source, const std::vector<Anope::string> &p
-       return true;
- }
--
--
- /*
-  * CHANINFO <chan> +<modes>
-  * CHANINFO <chan> +<modes> :<topic>
-@@ -480,7 +477,6 @@ bool event_376(const Anope::string &source, const std::vector<Anope::string> &pa
-       return true;
- }
--
- class ProtongIRCd : public Module
- {
-       Message message_kick, message_pass, message_njoin, message_chaninfo, message_005,
-@@ -542,6 +538,13 @@ class ProtongIRCd : public Module
-               ModuleManager::Attach(I_OnUserNickChange, this);
-       }
-+        ~ProtongIRCd()
-+        {
-+                pmodule_ircd_var(NULL);
-+                pmodule_ircd_proto(NULL);
-+                pmodule_ircd_message(NULL);
-+        }
-+
-       void OnUserNickChange(User *u, const Anope::string &)
-       {
-               u->RemoveModeInternal(ModeManager::FindUserModeByName(UMODE_REGISTERED));
--- 
-1.7.8.3
-
diff --git a/contrib/Anope/0011-ngircd-Update-protocol-module-for-current-Anope.patch b/contrib/Anope/0011-ngircd-Update-protocol-module-for-current-Anope.patch
deleted file mode 100644 (file)
index bbf2b63..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-From 4dc5a3d3e2fbb218461d9459bff1c0a392a75881 Mon Sep 17 00:00:00 2001
-From: Alexander Barton <alex@barton.de>
-Date: Sat, 31 Dec 2011 16:12:52 +0100
-Subject: [PATCH 11/16] ngircd: Update protocol module for current Anope 1.9
- GIT
-
-This changes are rquired by:
-
- - 150831c1a: Made capab management a bit simplier
----
- modules/protocol/ngircd.cpp |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/modules/protocol/ngircd.cpp b/modules/protocol/ngircd.cpp
-index 5fd62db..9c26ec8 100644
---- a/modules/protocol/ngircd.cpp
-+++ b/modules/protocol/ngircd.cpp
-@@ -527,7 +527,7 @@ class ProtongIRCd : public Module
-       {
-               this->SetAuthor("Anope");
--              Capab.SetFlag(CAPAB_QS);
-+              Capab.insert("QS");
-               pmodule_ircd_var(myIrcd);
-               pmodule_ircd_proto(&this->ircd_proto);
--- 
-1.7.8.3
-
diff --git a/contrib/Anope/0012-ngircd-Channel-mode-r-is-supported-now.patch b/contrib/Anope/0012-ngircd-Channel-mode-r-is-supported-now.patch
deleted file mode 100644 (file)
index 2127c26..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-From 99c18cafdee28bfb17fad5f0526b3ed5d1f5f312 Mon Sep 17 00:00:00 2001
-From: Alexander Barton <alex@barton.de>
-Date: Sat, 31 Dec 2011 16:17:50 +0100
-Subject: [PATCH 12/16] ngircd: let Anope know that channel mode "r" is
- supported
-
----
- modules/protocol/ngircd.cpp |    1 +
- 1 files changed, 1 insertions(+), 0 deletions(-)
-
-diff --git a/modules/protocol/ngircd.cpp b/modules/protocol/ngircd.cpp
-index 9c26ec8..6155667 100644
---- a/modules/protocol/ngircd.cpp
-+++ b/modules/protocol/ngircd.cpp
-@@ -512,6 +512,7 @@ class ProtongIRCd : public Module
-               ModeManager::AddChannelMode(new ChannelMode(CMODE_MODERATED, 'm'));
-               ModeManager::AddChannelMode(new ChannelMode(CMODE_NOEXTERNAL, 'n'));
-               ModeManager::AddChannelMode(new ChannelMode(CMODE_PERM, 'P'));
-+              ModeManager::AddChannelMode(new ChannelModeRegistered('r'));
-               ModeManager::AddChannelMode(new ChannelMode(CMODE_REGISTEREDONLY, 'R'));
-               ModeManager::AddChannelMode(new ChannelMode(CMODE_SECRET, 's'));
-               ModeManager::AddChannelMode(new ChannelMode(CMODE_TOPIC, 't'));
--- 
-1.7.8.3
-
diff --git a/contrib/Anope/0013-ngircd-Update-copyright-notice.patch b/contrib/Anope/0013-ngircd-Update-copyright-notice.patch
deleted file mode 100644 (file)
index 759076d..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-From 5a19b69f0daceb5b12ec751bc919519a7f712f2d Mon Sep 17 00:00:00 2001
-From: Alexander Barton <alex@barton.de>
-Date: Sun, 15 Jan 2012 13:36:14 +0100
-Subject: [PATCH 13/16] ngircd: Update copyright notice
-
----
- modules/protocol/ngircd.cpp |    7 ++++---
- 1 files changed, 4 insertions(+), 3 deletions(-)
-
-diff --git a/modules/protocol/ngircd.cpp b/modules/protocol/ngircd.cpp
-index 6155667..024c61d 100644
---- a/modules/protocol/ngircd.cpp
-+++ b/modules/protocol/ngircd.cpp
-@@ -1,7 +1,8 @@
--/* ngIRCd IRCD functions
-+/*
-+ * ngIRCd Protocol module for Anope IRC Services
-  *
-- * (C) 2003-2011 Anope Team
-- * Contact us at team@anope.org
-+ * (C) 2011-2012 Alexander Barton <alex@barton.de>
-+ * (C) 2011 Anope Team <team@anope.org>
-  *
-  * Please read COPYING and README for further details.
-  *
--- 
-1.7.8.3
-
diff --git a/contrib/Anope/0014-ngircd-set-unset-GLINE-s-on-AKILL-commands.patch b/contrib/Anope/0014-ngircd-set-unset-GLINE-s-on-AKILL-commands.patch
deleted file mode 100644 (file)
index c02ac6e..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-From acc24a7f4488f6ef0fb240a76766db4220b62d53 Mon Sep 17 00:00:00 2001
-From: Alexander Barton <alex@barton.de>
-Date: Sun, 22 Jan 2012 19:05:28 +0100
-Subject: [PATCH 14/16] ngircd: set/unset GLINE's on AKILL commands
-
----
- modules/protocol/ngircd.cpp |   10 ++++++++--
- 1 files changed, 8 insertions(+), 2 deletions(-)
-
-diff --git a/modules/protocol/ngircd.cpp b/modules/protocol/ngircd.cpp
-index 024c61d..3bc3812 100644
---- a/modules/protocol/ngircd.cpp
-+++ b/modules/protocol/ngircd.cpp
-@@ -48,10 +48,16 @@ class ngIRCdProto : public IRCDProto
- {
-       void SendAkill(User *u, const XLine *x)
-       {
--              // TODO: ADD SOME CODE
-+              // Calculate the time left before this would expire, capping it at 2 days
-+              time_t timeleft = x->Expires - Anope::CurTime;
-+              if (timeleft > 172800 || !x->Expires)
-+                      timeleft = 172800;
-+              UplinkSocket::Message(Config->ServerName) << "GLINE " << x->Mask << " " << timeleft << " :" << x->Reason << " (" << x->By << ")";
-       }
--      void SendAkillDel(const XLine*) { }
-+      void SendAkillDel(const XLine *x) {
-+              UplinkSocket::Message(Config->ServerName) << "GLINE " << x->Mask;
-+      }
-       void SendGlobopsInternal(const BotInfo *source, const Anope::string &buf)
-       {
--- 
-1.7.8.3
-
diff --git a/contrib/Anope/0015-ngircd-ngIRCd-supports-channel-mode-e-now.patch b/contrib/Anope/0015-ngircd-ngIRCd-supports-channel-mode-e-now.patch
deleted file mode 100644 (file)
index 7a25c9a..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-From 3a61b190db79848d4519296432ebb2ab714c42b7 Mon Sep 17 00:00:00 2001
-From: Alexander Barton <alex@barton.de>
-Date: Sun, 22 Jan 2012 19:06:34 +0100
-Subject: [PATCH 15/16] ngircd: ngIRCd supports channel mode 'e' now
-
----
- modules/protocol/ngircd.cpp |    3 ++-
- 1 files changed, 2 insertions(+), 1 deletions(-)
-
-diff --git a/modules/protocol/ngircd.cpp b/modules/protocol/ngircd.cpp
-index 3bc3812..0f87cbd 100644
---- a/modules/protocol/ngircd.cpp
-+++ b/modules/protocol/ngircd.cpp
-@@ -504,8 +504,9 @@ class ProtongIRCd : public Module
-               ModeManager::AddUserMode(new UserMode(UMODE_WALLOPS, 'w'));
-               ModeManager::AddUserMode(new UserMode(UMODE_CLOAK, 'x'));
--              /* Add modes for ban and invite lists */
-+              /* Add modes for ban, exception, and invite lists */
-               ModeManager::AddChannelMode(new ChannelModeList(CMODE_BAN, 'b'));
-+              ModeManager::AddChannelMode(new ChannelModeList(CMODE_EXCEPT, 'e'));
-               ModeManager::AddChannelMode(new ChannelModeList(CMODE_INVITEOVERRIDE, 'I'));
-               /* Add channel user modes */
--- 
-1.7.8.3
-
diff --git a/contrib/Anope/0016-ngircd-support-SQUERY-command.patch b/contrib/Anope/0016-ngircd-support-SQUERY-command.patch
deleted file mode 100644 (file)
index a3346a4..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-From a7c48fcf47af757cf1b4eeaa6bcc96f4ae1f7410 Mon Sep 17 00:00:00 2001
-From: Alexander Barton <alex@barton.de>
-Date: Sat, 4 Feb 2012 11:13:36 +0100
-Subject: [PATCH 16/16] ngircd: support SQUERY command
-
-Thanks to DukePyrolator for explaining these changes to me.
----
- modules/protocol/ngircd.cpp |    4 ++--
- 1 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/modules/protocol/ngircd.cpp b/modules/protocol/ngircd.cpp
-index 0f87cbd..530686e 100644
---- a/modules/protocol/ngircd.cpp
-+++ b/modules/protocol/ngircd.cpp
-@@ -487,7 +487,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_pong;
-+              message_442, message_376, message_pong, message_squery;
-       ngIRCdProto ircd_proto;
-       ngIRCdIRCdMessage ircd_message;
-@@ -532,7 +532,7 @@ class ProtongIRCd : public Module
-               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_pong("PONG", event_pong)
-+              message_pong("PONG", event_pong), message_squery("SQUERY", ::OnPrivmsg)
-       {
-               this->SetAuthor("Anope");
--- 
-1.7.8.3
-
diff --git a/contrib/Anope/Makefile.am b/contrib/Anope/Makefile.am
deleted file mode 100644 (file)
index 9da78a2..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-#
-# ngIRCd -- The Next Generation IRC Daemon
-# Copyright (c)2001-2012 Alexander Barton (alex@barton.de) and Contributors
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-# Please read the file COPYING, README and AUTHORS for more information.
-#
-
-EXTRA_DIST = \
-       README \
-       0001-Revert-Removed-ngircd.patch \
-       0002-ngircd-whitespace-fixes.patch \
-       0003-Update-ngIRCd-protocol-module-for-current-Anope.patch \
-       0004-ngircd-Do-PING-PONG-on-server-burst-to-sync.patch \
-       0005-ngircd-always-prefix-modes-in-CHANINFO-with.patch \
-       0006-ngircd-support-user-mode-R-and-channel-mode-R.patch \
-       0007-ngircd-Fix-handling-of-JOIN-commands.patch \
-       0008-ngircd-Allow-setting-modes-by-clients-on-burst.patch \
-       0009-ngircd-Update-protocol-module-for-current-Anope.patch \
-       0010-ngircd-Add-ProtongIRCd.patch \
-       0011-ngircd-Update-protocol-module-for-current-Anope.patch \
-       0012-ngircd-Channel-mode-r-is-supported-now.patch \
-       0013-ngircd-Update-copyright-notice.patch \
-       0014-ngircd-set-unset-GLINE-s-on-AKILL-commands.patch \
-       0015-ngircd-ngIRCd-supports-channel-mode-e-now.patch \
-       0016-ngircd-support-SQUERY-command.patch
-
-maintainer-clean-local:
-       rm -f Makefile Makefile.in
-
-# -eof-
diff --git a/contrib/Anope/README b/contrib/Anope/README
deleted file mode 100644 (file)
index 50f025c..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-
-                     ngIRCd - Next Generation IRC Server
-                           http://ngircd.barton.de/
-
-               (c)2001-2012 Alexander Barton and Contributors.
-               ngIRCd is free software and published under the
-                   terms of the GNU General Public License.
-
-                          -- contrib/Anope/README --
-
-
-This directory contains two preliminary patches that (re-) add a ngIRCd
-protocol module to the Anope 1.9 development branch. It has been tested
-with Anope 1.9.6, there is no guarantee that it will work with other
-versions as Anope 1.9.x is under heavy development ...
-
-To build this Anope protocol module, you have to
-
- - Download the Anope 1.9.x sources (only tested with 1.9.6!),
- - Patch in the ngIRCd protocol module,
- - Build and install Anope as usual,
- - Configure Anope as usual, use "ngircd" as protocol module.
-
-So the command sequence can be something like this:
-
- $ tar xzf anope-1.9.6-source.tar.gz
- $ cd anope-1.9.6-source
- $ for p in .../ngircd/contrib/Anope/*.patch ; do patch -p1 < $p ; done
- $ ./Config
- $ cd build
- $ make
- $ make install
-
-Please have a look at the file doc/Services.txt for more information about
-how to set up ngIRCd and Anope.
index 99ab684..09b43a6 100644 (file)
@@ -1,6 +1,6 @@
 #
 # ngIRCd -- The Next Generation IRC Daemon
-# Copyright (c)2001-2011 Alexander Barton (alex@barton.de) and Contributors
+# Copyright (c)2001-2012 Alexander Barton (alex@barton.de) and Contributors
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -9,7 +9,7 @@
 # Please read the file COPYING, README and AUTHORS for more information.
 #
 
-SUBDIRS = Anope Debian MacOSX
+SUBDIRS = Debian MacOSX
 
 EXTRA_DIST = README \
        ngindent \
index 6097bae..1aebd1e 100644 (file)
@@ -9,9 +9,6 @@
                             -- Contributions --
 
 
-Anope/
- - A preliminary patch that adds a ngIRCd protocol module to Anope 1.9.
-
 Debian/
  - Various files for building Debian GNU/Linux packages (".deb's").