]> git.netwichtig.de Git - user/henk/code/inspircd.git/commitdiff
Merge pull request #179 from attilamolnar/insp20+desyncfix
authorRobin Burchell <viroteck@viroteck.net>
Fri, 1 Jun 2012 08:07:36 +0000 (01:07 -0700)
committerRobin Burchell <viroteck@viroteck.net>
Fri, 1 Jun 2012 08:07:36 +0000 (01:07 -0700)
[2.0] Fix desyncs caused by m_autoop and broken spanningtree routing logic

31 files changed:
docs/inspircd.censor.example
docs/inspircd.conf.example
docs/links.conf.example
docs/modules.conf.example
src/channels.cpp
src/configparser.cpp
src/modules/extra/m_ssl_gnutls.cpp
src/modules/m_censor.cpp
src/modules/m_chancreate.cpp
src/modules/m_chanfilter.cpp
src/modules/m_check.cpp
src/modules/m_clones.cpp
src/modules/m_connectban.cpp
src/modules/m_dccallow.cpp
src/modules/m_delayjoin.cpp
src/modules/m_globops.cpp
src/modules/m_halfop.cpp
src/modules/m_helpop.cpp
src/modules/m_httpd_config.cpp
src/modules/m_jumpserver.cpp
src/modules/m_knock.cpp
src/modules/m_md5.cpp
src/modules/m_mlock.cpp
src/modules/m_namedmodes.cpp
src/modules/m_operlevels.cpp
src/modules/m_passforward.cpp
src/modules/m_randquote.cpp
src/modules/m_rline.cpp
src/modules/m_seenicks.cpp
src/modules/m_services_account.cpp
src/modules/m_shun.cpp

index 05d9ce6fa8fc3bd58185ea2ec44e3cd0152b33c0..342ccd8755d5d8038bd360a1495f2d7b2ffa377b 100644 (file)
@@ -12,4 +12,3 @@
 
 <badword text="shit" replace="poo">
 <badword text="fuck" replace="(censored)">
-
index a820d4a40bb1eb2321722f037c7ec33d938fccdd..d1293be25b2129f79a3b5b240bc92fc75a3fdf21 100644 (file)
       # for ssl to work. If you do not want this bind section to support ssl,
       # just remove or comment out this option.
       ssl="gnutls"
-      >
+>
 
 <bind address="" port="6660-6669" type="clients">
 
 #                                                                     #
 
 <cidr
-         # ipv4clone: specifies how many bits of an IP address should be
+      # ipv4clone: specifies how many bits of an IP address should be
       # looked at for clones. The default only looks for clones on a
       # single IP address of a user. You do not want to set this
       # extremely low. (Values are 0-32).
 # Note that any disabled commands take effect only after the user has #
 # 'registered' (e.g. after the initial USER/NICK/PASS on connection)  #
 # so for example disabling NICK will not cripple your network.        #
-#                                                                    #
+#                                                                     #
 # You can also define if you want to disable any channelmodes         #
-# or usermodes from your users.                                              #
+# or usermodes from your users.                                       #
 #                                                                     #
 # `fakenonexistant' will make the ircd pretend that nonexistant       #
 # commands simply don't exist to non-opers ("no such command").       #
          # without cycling them.
          cyclehosts="yes"
 
-        # cyclehostsfromuser: If enabled, the source of the mode change for
-        # cyclehosts will be the user who cycled. This can look nicer, but
-        # triggers anti-takeover mechanisms of some obsolete bots.
-        cyclehostsfromuser="no"
+         # cyclehostsfromuser: If enabled, the source of the mode change for
+         # cyclehosts will be the user who cycled. This can look nicer, but
+         # triggers anti-takeover mechanisms of some obsolete bots.
+         cyclehostsfromuser="no"
 
          # ircumsgprefix: Use undernet-style message prefixing for NOTICE and
          # PRIVMSG. If enabled, it will add users' prefix to the line, if not,
          # in channel will be sent a NOTICE about it.
          announcets="yes"
 
-       # allowmismatched: Setting this option to yes will allow servers to link even
-       # if they don't have the same VF_OPTCOMMON modules loaded. Setting this to
-       # yes may introduce some desyncs and weirdness.
-       allowmismatched="no"
+         # allowmismatched: Setting this option to yes will allow servers to link even
+         # if they don't have the same VF_OPTCOMMON modules loaded. Setting this to
+         # yes may introduce some desyncs and weirdness.
+         allowmismatched="no"
 
-       # defaultbind: Sets the default for <bind> tags without an address. Choices are
-       # ipv4 or ipv6; if not specified, IPv6 will be used if your system has support,
-       # falling back to IPv4 otherwise.
-       defaultbind="auto"
+         # defaultbind: Sets the default for <bind> tags without an address. Choices are
+         # ipv4 or ipv6; if not specified, IPv6 will be used if your system has support,
+         # falling back to IPv4 otherwise.
+         defaultbind="auto"
 
          # hostintopic: If enabled, channels will show the host of the topicsetter
          # in the topic. If set to no, it will only show the nick of the topicsetter.
          # moronbanner: This is the text that is sent to a user when they are
          # banned from the server.
          moronbanner="You're banned! Email haha@abuse.com with the ERROR line below for help."
-       
-       # exemptchanops: exemptions for channel access restrictions based on prefix.
-       exemptchanops="nonick:v flood:o"
+
+         # exemptchanops: exemptions for channel access restrictions based on prefix.
+         exemptchanops="nonick:v flood:o"
 
          # invitebypassmodes: This allows /invite to bypass other channel modes.
          # (Such as +k, +j, +l, etc)
           # the ircd. This may be set for security reasons or vanity reasons.
           customversion=""
 
-       # operspywhois: show opers (users/auspex) the +s channels a user is in. Values:
-       #  splitmsg  Split with an explanatory message
-       #  yes       Split with no explanatory message
-       #  no        Do not show
-       operspywhois="no"
+          # operspywhois: show opers (users/auspex) the +s channels a user is in. Values:
+          #  splitmsg  Split with an explanatory message
+          #  yes       Split with no explanatory message
+          #  no        Do not show
+          operspywhois="no"
 
           # runasuser: If this is set, InspIRCd will attempt to setuid
           # to run as this user- allows binding of ports under 1024.
 # to do what they want.
 #
 # An example log tag would be:
-#      <log method="file" type="OPER" level="default" target="opers.log">
-# which  would log all information on /oper (failed and successful) to
+#  <log method="file" type="OPER" level="default" target="opers.log">
+# which would log all information on /oper (failed and successful) to
 # a file called opers.log.
 #
 # There are many different types which may be used, and modules may
 # generate their own. A list of useful types:
-#      - USERS - information relating to user connection and disconnection
-#      - CHANNELS - information relating to joining and parting of channels.
-# XXX someone doc more on this
+#  - USERS - information relating to user connection and disconnection
+#  - OPER - succesful and failed oper attempts
+#  - KILL - kill related messages
+#  - snomask - server notices (*all* snomasks will be logged)
+#  - FILTER - messages related to filter matches (m_filter)
+#  - CONFIG - configuration related messages
+#  - COMMAND - die and restart messages, and messages related to unknown user types
+#  - SOCKET - socket engine informational/error messages
+#  - MODULE - module related messages
+#  - STARTUP - messages related to starting up the server
 #
 # You may also log *everything* by using a type of *, and subtract things out
 # of that by using -TYPE - for example "* -USERINPUT -USEROUTPUT".
 #
+# Useful levels are:
+#  - default (general messages, including errors)
+#  - sparse (misc error messages)
+#  - debug (debug messages)
+#
+# Some types only produce output in the debug level, those are:
+#  - BANCACHE - ban cache debug messages
+#  - CHANNELS - information relating to joining/creating channels
+#  - CULLLIST - debug messages related to issues with removing users
+#  - RESOLVER - DNS related debug messages
+#  - CONNECTCLASS - Connection class debug messages
+#  - USERINPUT
+#  - USEROUTPUT
+#
 # The following log tag is highly default and uncustomised. It is recommended you
 # sort out your own log tags. This is just here so you get some output.
 
index 27213f7847b01b8d12b2d4f359eac26a6d560b29..a573b66da99de1e649919280625a6b4f07576dfb 100644 (file)
@@ -10,9 +10,7 @@
 #   |_| \_\___|\__,_|\__,_|   |_| |_| |_|_|___/ |____/|_|\__(_)       #
 #                                                                     #
 #  If you want to link servers to InspIRCd you must load the          #
-#  m_spanningtree.so module! Please see the modules list below for    #
-#  information on how to load this module! If you do not load this    #
-#  module, server links will NOT work!                                #
+#  m_spanningtree.so module!                                          #
 #                                                                     #
 #                                                                     #
 
 
 # Failover autoconnect block. If you have multiple hubs, or want your network
 # to automatically link even if the hub is down, you can specify multiple
-# servers to autoconnect; they will be tried in a round robin fashion until
-# one succeeds. Period defines the time for restarting a single loop.
+# space seperated servers to autoconnect; they will be tried in a round
+# robin fashion until one succeeds. Period defines the time for restarting
+# a single loop.
 <autoconnect period="120"
        server="hub.us.penguin.org hub.eu.penguin.org leaf.eu.penguin.org">
 
index 39ea4f9cc48474c0b018e86ff2c76dd466d7477f..e987f48781523ee6b5ed689407231eec85f62868 100644 (file)
 #  quitmsg           -  The message that users get if they attempt to
 #                       connect while the throttle is active.
 #
-#  bootwait          -  Amount of time to wait before enforcing the
-#                       throttling when the server just booted.
+#  bootwait          -  Amount of time in seconds to wait before enforcing
+#                       the throttling when the server just booted.
 #
 #<connflood seconds="30" maxconns="3" timeout="30"
 #   quitmsg="Throttled" bootwait="10">
 # showfromopers="yes">
 
 #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
-# Shun module: Provides the /shun command, which stops a user executing 
-# most commands.
+# Shun module: Provides the /SHUN command, which stops a user from
+# executing all except configured commands.
 # This module is oper-only.
 # To use, SHUN must be in one of your oper class blocks.
 #<module name="m_shun.so">
 # user       - Username for the vhost.                                #
 #                                                                     #
 # pass       - Password for the vhost.                                #
-#                                                                    #
-# hash       - The hash for the specific user (optional)
-#              m_password_hash.so and a hashing module must be loaded for this to work
+#                                                                     #
+# hash       - The hash for the specific user (optional)              #
+#              m_password_hash.so and a hashing module must be loaded #
+#              for this to work.                                      #
 #                                                                     #
 # host       - Vhost to set.                                          #
 #
index 5539f4bfe5ba040d94c07283871c912db041df4f..4a927cedb86afe8a6b5d728d363093493f6d5b2b 100644 (file)
@@ -274,7 +274,7 @@ Channel* Channel::JoinUser(User *user, const char* cn, bool override, const char
                if (!IS_LOCAL(user))
                {
                        if (!TS)
-                               ServerInstance->Logs->Log("CHANNEL",DEBUG,"*** BUG *** Channel::JoinUser called for REMOTE user '%s' on channel '%s' but no TS given!", user->nick.c_str(), cn);
+                               ServerInstance->Logs->Log("CHANNELS",DEBUG,"*** BUG *** Channel::JoinUser called for REMOTE user '%s' on channel '%s' but no TS given!", user->nick.c_str(), cn);
                }
                else
                {
@@ -400,11 +400,15 @@ Channel* Channel::ForceChan(Channel* Ptr, User* user, const std::string &privs,
        Ptr->WriteAllExcept(user, false, 0, except_list, "JOIN :%s", Ptr->name.c_str());
 
        /* Theyre not the first ones in here, make sure everyone else sees the modes we gave the user */
-       std::string ms = memb->modes;
-       for(unsigned int i=0; i < memb->modes.length(); i++)
-               ms.append(" ").append(user->nick);
-       if ((Ptr->GetUserCounter() > 1) && (ms.length()))
-               Ptr->WriteAllExceptSender(user, ServerInstance->Config->CycleHostsFromUser, 0, "MODE %s +%s", Ptr->name.c_str(), ms.c_str());
+       if ((Ptr->GetUserCounter() > 1) && (!memb->modes.empty()))
+       {
+               std::string ms = memb->modes;
+               for(unsigned int i=0; i < memb->modes.length(); i++)
+                       ms.append(" ").append(user->nick);
+
+               except_list.insert(user);
+               Ptr->WriteAllExcept(user, !ServerInstance->Config->CycleHostsFromUser, 0, except_list, "MODE %s +%s", Ptr->name.c_str(), ms.c_str());
+       }
 
        if (IS_LOCAL(user))
        {
@@ -655,7 +659,7 @@ void Channel::WriteAllExcept(User* user, bool serversource, char status, CUList
        if (!text)
                return;
 
-       int offset = snprintf(textbuffer,MAXBUF,":%s ", user->GetFullHost().c_str());
+       int offset = snprintf(textbuffer,MAXBUF,":%s ", serversource ? ServerInstance->Config->ServerName.c_str() : user->GetFullHost().c_str());
 
        va_start(argsPtr, text);
        vsnprintf(textbuffer + offset, MAXBUF - offset, text, argsPtr);
index 056ed54a4b3e5fb019d88122f1359c4fee06e448..51d67b4f5be84357d9cb89bde65a1498a6a459b7 100644 (file)
@@ -319,7 +319,7 @@ void ParseStack::DoReadFile(const std::string& key, const std::string& name, int
        {
                int len = strlen(linebuf);
                if (len)
-                       cache.push_back(std::string(linebuf, len - 1));
+                       cache.push_back(std::string(linebuf, len));
        }
 }
 
index 22c027cfb608415f7b4349752ffd804b56c48fa5..6ca876d4ccfb354694cc777f87d593e074b25a90 100644 (file)
@@ -156,6 +156,7 @@ class ModuleSSLGnuTLS : public Module
        int dh_bits;
 
        bool cred_alloc;
+       bool dh_alloc;
 
        RandGen randhandler;
        CommandStartTLS starttls;
@@ -173,6 +174,7 @@ class ModuleSSLGnuTLS : public Module
                gnutls_x509_privkey_init(&x509_key);
 
                cred_alloc = false;
+               dh_alloc = false;
        }
 
        void init()
@@ -252,20 +254,25 @@ class ModuleSSLGnuTLS : public Module
 
                int ret;
 
+               if (dh_alloc)
+               {
+                       gnutls_dh_params_deinit(dh_params);
+                       dh_alloc = false;
+               }
+
                if (cred_alloc)
                {
                        // Deallocate the old credentials
-                       gnutls_dh_params_deinit(dh_params);
                        gnutls_certificate_free_credentials(x509_cred);
 
                        for(unsigned int i=0; i < x509_certs.size(); i++)
                                gnutls_x509_crt_deinit(x509_certs[i]);
                        x509_certs.clear();
                }
-               else
-                       cred_alloc = true;
 
-               if((ret = gnutls_certificate_allocate_credentials(&x509_cred)) < 0)
+               ret = gnutls_certificate_allocate_credentials(&x509_cred);
+               cred_alloc = (ret >= 0);
+               if (!cred_alloc)
                        ServerInstance->Logs->Log("m_ssl_gnutls",DEBUG, "m_ssl_gnutls.so: Failed to allocate certificate credentials: %s", gnutls_strerror(ret));
 
                if((ret =gnutls_certificate_set_x509_trust_file(x509_cred, cafile.c_str(), GNUTLS_X509_FMT_PEM)) < 0)
@@ -300,7 +307,9 @@ class ModuleSSLGnuTLS : public Module
 
                gnutls_certificate_client_set_retrieve_function (x509_cred, cert_callback);
 
-               if((ret = gnutls_dh_params_init(&dh_params)) < 0)
+               ret = gnutls_dh_params_init(&dh_params);
+               dh_alloc = (ret >= 0);
+               if (!dh_alloc)
                        ServerInstance->Logs->Log("m_ssl_gnutls",DEFAULT, "m_ssl_gnutls.so: Failed to initialise DH parameters: %s", gnutls_strerror(ret));
 
                // This may be on a large (once a day or week) timer eventually.
@@ -314,6 +323,9 @@ class ModuleSSLGnuTLS : public Module
                // once a day, once a week or once a month. Depending on the
                // security requirements.
 
+               if (!dh_alloc)
+                       return;
+
                int ret;
 
                if((ret = gnutls_dh_params_generate2(dh_params, dh_bits)) < 0)
@@ -324,13 +336,14 @@ class ModuleSSLGnuTLS : public Module
        {
                for(unsigned int i=0; i < x509_certs.size(); i++)
                        gnutls_x509_crt_deinit(x509_certs[i]);
-               x509_certs.clear();
+
                gnutls_x509_privkey_deinit(x509_key);
-               if (cred_alloc)
-               {
+
+               if (dh_alloc)
                        gnutls_dh_params_deinit(dh_params);
+               if (cred_alloc)
                        gnutls_certificate_free_credentials(x509_cred);
-               }
+
                gnutls_global_deinit();
                delete[] sessions;
                ServerInstance->GenRandom = &ServerInstance->HandleGenRandom;
index 170fe8b07932d4d88591f1960d61dcd293a50b36..5e832cc8b6007e12c6197d91ebd97c45caefe355 100644 (file)
@@ -20,6 +20,8 @@
  */
 
 
+/* $ModDesc: Provides user and channel +G mode */
+
 #define _CRT_SECURE_NO_DEPRECATE
 #define _SCL_SECURE_NO_DEPRECATE
 
@@ -28,8 +30,6 @@
 
 typedef std::map<irc::string,irc::string> censor_t;
 
-/* $ModDesc: Provides user and channel +G mode */
-
 /** Handles usermode +G
  */
 class CensorUser : public SimpleUserModeHandler
index d7dfe8d2cc27c75cafaa718cb3429053fb43d253..48f60a8d91b91433ffe28a15cd57627ba8390994 100644 (file)
@@ -21,7 +21,7 @@
 
 #include "inspircd.h"
 
-/* $ModDesc: Creates a snomask with notices whenever a new channel is created */
+/* $ModDesc: Provides snomasks 'j' and 'J', to which notices about newly created channels are sent */
 
 class ModuleChanCreate : public Module
 {
@@ -36,7 +36,7 @@ class ModuleChanCreate : public Module
 
        Version GetVersion()
        {
-               return Version("Creates a snomask with notices whenever a new channel is created",VF_VENDOR);
+               return Version("Provides snomasks 'j' and 'J', to which notices about newly created channels are sent",VF_VENDOR);
        }
 
 
index e6585e524cc9d51050659789942eb1dada2e770f..c899d7a4b3b9b15865be7edba3907b8ac3f10195 100644 (file)
  */
 
 
+/* $ModDesc: Provides channel-specific censor lists (like mode +G but varies from channel to channel) */
+
 #define _CRT_SECURE_NO_DEPRECATE
 #define _SCL_SECURE_NO_DEPRECATE
 
 #include "inspircd.h"
 #include "u_listmode.h"
 
-/* $ModDesc: Provides channel-specific censor lists (like mode +G but varies from channel to channel) */
-
 /** Handles channel mode +g
  */
 class ChanFilter : public ListModeBase
index cabfd02bcfe782f2128f4ceb57b93427820e95b0..8316b09fe6275d9d5b53697189fc8f9f9aebe039 100644 (file)
@@ -20,9 +20,9 @@
  */
 
 
-#include "inspircd.h"
+/* $ModDesc: Provides the /CHECK command to retrieve information on a user, channel, hostname or IP address */
 
-/* $ModDesc: Provides the /check command to retrieve information on a user, channel, or IP address */
+#include "inspircd.h"
 
 /** Handle /CHECK
  */
@@ -288,7 +288,7 @@ class ModuleCheck : public Module
 
        Version GetVersion()
        {
-               return Version("CHECK command, view user/channel details", VF_VENDOR|VF_OPTCOMMON);
+               return Version("CHECK command, view user, channel, IP address or hostname information", VF_VENDOR|VF_OPTCOMMON);
        }
 };
 
index 1e5841609fa875f8f9a8c45450aabb8b8120067b..aceac0dc76ad061b807057c7ae3afaf28373813c 100644 (file)
@@ -21,9 +21,9 @@
 
 #include "inspircd.h"
 
-/* $ModDesc: Provides the /clones command to retrieve information on clones. */
+/* $ModDesc: Provides the /CLONES command to retrieve information on clones. */
 
-/** Handle /CHECK
+/** Handle /CLONES
  */
 class CommandClones : public Command
 {
@@ -44,7 +44,7 @@ class CommandClones : public Command
                 * Syntax of a /clones reply:
                 *  :server.name 304 target :CLONES START
                 *  :server.name 304 target :CLONES <count> <ip>
-                *  :server.name 304 target :CHECK END
+                *  :server.name 304 target :CLONES END
                 */
 
                user->WriteServ(clonesstr + " START");
@@ -80,7 +80,7 @@ class ModuleClones : public Module
 
        virtual Version GetVersion()
        {
-               return Version("Provides the /clones command to retrieve information on clones.", VF_VENDOR);
+               return Version("Provides the /CLONES command to retrieve information on clones.", VF_VENDOR);
        }
 
 
index f831a3b77b1ba50873c374efe77a065f29d8d1ed..00452a8f28c9e24c6689c01ab682ebcc06b36713 100644 (file)
@@ -20,7 +20,7 @@
 #include "inspircd.h"
 #include "xline.h"
 
-/* $ModDesc: Throttles the connections of any users who try connect flood */
+/* $ModDesc: Throttles the connections of IP ranges who try to connect flood. */
 
 class ModuleConnectBan : public Module
 {
@@ -43,7 +43,7 @@ class ModuleConnectBan : public Module
 
        virtual Version GetVersion()
        {
-               return Version("Throttles the connections of any users who try connect flood", VF_VENDOR);
+               return Version("Throttles the connections of IP ranges who try to connect flood.", VF_VENDOR);
        }
 
        virtual void OnRehash(User* user)
index 495a0da5a51fa92f88283a5ba628dd6d16a641f0..8c2a5f73e3e3e68c1167b33960631d39c8c8a83c 100644 (file)
@@ -25,7 +25,7 @@
 
 #include "inspircd.h"
 
-/* $ModDesc: Povides support for the /DCCALLOW command */
+/* $ModDesc: Provides support for the /DCCALLOW command */
 
 class BannedFileList
 {
@@ -479,7 +479,7 @@ class ModuleDCCAllow : public Module
 
        virtual Version GetVersion()
        {
-               return Version("Povides support for the /DCCALLOW command", VF_COMMON | VF_VENDOR);
+               return Version("Provides support for the /DCCALLOW command", VF_COMMON | VF_VENDOR);
        }
 };
 
index 3a574d485d07c7642828ee2a106c5cacc17237ff..34d782c7718eeb7ed243b812e3ad6223a79a7c84 100644 (file)
@@ -20,6 +20,8 @@
  */
 
 
+/* $ModDesc: Allows for delay-join channels (+D) where users don't appear to join until they speak */
+
 #include "inspircd.h"
 #include <stdarg.h>
 
@@ -60,8 +62,6 @@ class ModuleDelayJoin : public Module
        ModResult OnRawMode(User* user, Channel* channel, const char mode, const std::string &param, bool adding, int pcnt);
 };
 
-/* $ModDesc: Allows for delay-join channels (+D) where users don't appear to join until they speak */
-
 ModeAction DelayJoinMode::OnModeChange(User* source, User* dest, Channel* channel, std::string &parameter, bool adding)
 {
        /* no change */
@@ -194,4 +194,3 @@ ModResult ModuleDelayJoin::OnRawMode(User* user, Channel* channel, const char mo
 }
 
 MODULE_INIT(ModuleDelayJoin)
-
index 2ef6d61d8f69b0f1bf6b0f93c93133b71055f103..db55858d661565986d2b7a3bec8463b240bd5b02 100644 (file)
  */
 
 
-// Globops and +g support module by C.J.Edwards
+// Globops and snomask +g module by C.J.Edwards
 
 #include "inspircd.h"
 
-/* $ModDesc: Provides support for GLOBOPS and user mode +g */
+/* $ModDesc: Provides support for GLOBOPS and snomask +g */
 
 /** Handle /GLOBOPS
  */
@@ -63,7 +63,7 @@ class ModuleGlobops : public Module
 
        virtual Version GetVersion()
        {
-               return Version("Provides support for GLOBOPS and user mode +g", VF_VENDOR);
+               return Version("Provides support for GLOBOPS and snomask +g", VF_VENDOR);
        }
 
 };
index 2c4b086cb4f3f96f0ff8c76521a45a9de4ad1909..f0eda3e5698fa3a86b924bc02db0cce14cf5c53a 100644 (file)
@@ -17,6 +17,8 @@
  */
 
 
+/* $ModDesc: Channel half-operator mode provider */
+
 #include "inspircd.h"
 
 class ModeChannelHalfOp : public ModeHandler
index dd2e77986c09453e4d53f684e62fff2240f16ed6..a7bd4a8c56969addd51d5bb8b80c940c21186939 100644 (file)
@@ -21,6 +21,8 @@
  */
 
 
+/* $ModDesc: Provides the /HELPOP command, works like UnrealIRCd's helpop */
+
 #include "inspircd.h"
 
 static std::map<irc::string, std::string> helpop_map;
index aa84b83a48521f609a2203b73d650af080254d8f..0df1c12fb6355967c31b5736de35cae67db90a04 100644 (file)
@@ -22,7 +22,7 @@
 #include "httpd.h"
 #include "protocol.h"
 
-/* $ModDesc: Provides statistics over HTTP via m_httpd.so */
+/* $ModDesc: Allows for the server configuration to be viewed over HTTP via m_httpd.so */
 
 class ModuleHttpConfig : public Module
 {
@@ -107,7 +107,7 @@ class ModuleHttpConfig : public Module
 
        virtual Version GetVersion()
        {
-               return Version("Provides configuration over HTTP via m_httpd.so", VF_VENDOR);
+               return Version("Allows for the server configuration to be viewed over HTTP via m_httpd.so", VF_VENDOR);
        }
 };
 
index 4379f931a8cf9f9da63b240c6b99ea50512df789..9a171a19a3461e64cf36782e75335c19c19d7adb 100644 (file)
@@ -21,7 +21,7 @@
 
 #include "inspircd.h"
 
-/* $ModDesc: Provides support for the RPL_REDIR numeric */
+/* $ModDesc: Provides support for the RPL_REDIR numeric and the /JUMPSERVER command. */
 
 /** Handle /JUMPSERVER
  */
@@ -174,7 +174,7 @@ class ModuleJumpServer : public Module
 
        virtual Version GetVersion()
        {
-               return Version("Provides support for the RPL_REDIR numeric", VF_VENDOR);
+               return Version("Provides support for the RPL_REDIR numeric and the /JUMPSERVER command.", VF_VENDOR);
        }
 
 };
index 5664e79ab8f603a879530fda29ebfb5630ce5678..84838ec7f5f2bcfaa5c85775338035033503530f 100644 (file)
@@ -21,7 +21,7 @@
 
 #include "inspircd.h"
 
-/* $ModDesc: Provides support for /KNOCK and mode +K */
+/* $ModDesc: Provides support for /KNOCK and channel mode +K */
 
 /** Handles the /KNOCK command
  */
@@ -109,7 +109,7 @@ class ModuleKnock : public Module
 
        virtual Version GetVersion()
        {
-               return Version("Provides support for /KNOCK and mode +K", VF_OPTCOMMON | VF_VENDOR);
+               return Version("Provides support for /KNOCK and channel mode +K", VF_OPTCOMMON | VF_VENDOR);
        }
 };
 
index f8f13dcbcefd9629d0e1d53b503913f59e0b37d9..14ccf16a8c8ff87ae18d2088d89ccce08ac7a398 100644 (file)
@@ -158,7 +158,7 @@ class MD5Provider : public HashProvider
 
                byteSwap(ctx->buf, 4);
                memcpy(digest, ctx->buf, 16);
-               memset(ctx, 0, sizeof(ctx));
+               memset(ctx, 0, sizeof(*ctx));
        }
 
        void MD5Transform(word32 buf[4], word32 const in[16])
index b5f34c93614fa644a17b1dd799ddfeeab77f70cc..e9ca3bfd0c0dc042f2a5b81466df755d977de252 100644 (file)
@@ -16,6 +16,9 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
+
+/* $ModDesc: Implements the ability to have server-side MLOCK enforcement. */
+
 #include "inspircd.h"
 
 class ModuleMLock : public Module
index 8233f4357b061bf2b62ad42f45180670c57f3736..024cc427c4f4aaeb00ee6e99494ad7d9dd6107a9 100644 (file)
@@ -17,6 +17,8 @@
  */
 
 
+/* $ModDesc: Provides the ability to manipulate modes via long names. */
+
 #include "inspircd.h"
 
 static void DisplayList(User* user, Channel* channel)
index d142a4b0f6867d365694bb26141c80ea9f176691..da506dd582e0c164cc240a68e4b24d9b483fa318 100644 (file)
  */
 
 
+/* $ModDesc: Gives each oper type a 'level', cannot kill opers 'above' your level. */
+
 #include "inspircd.h"
 
-/* $ModDesc: Gives each oper type a 'level', cannot kill opers 'above' your level. */
 class ModuleOperLevels : public Module
 {
        public:
index 47f71bbe08f1b9ae050fac54e7f569332cb496b4..bf09c1f6e4a228dda9b0c6c2f1a1ad50008d6385 100644 (file)
@@ -17,6 +17,8 @@
  */
 
 
+/* $ModDesc: Forwards a password users can send on connect (for example for NickServ identification). */
+
 #include "inspircd.h"
 
 class ModulePassForward : public Module
@@ -100,4 +102,3 @@ class ModulePassForward : public Module
 };
 
 MODULE_INIT(ModulePassForward)
-
index 94cd3dbac775b244738df8308862e150b00b0b97..5fa63d8f4fad65bdca9d27b1c3734e669a1d787e 100644 (file)
@@ -21,6 +21,8 @@
  */
 
 
+/* $ModDesc: Provides random quotes on connect. */
+
 #include "inspircd.h"
 
 static FileReader *quotes = NULL;
@@ -28,8 +30,6 @@ static FileReader *quotes = NULL;
 std::string prefix;
 std::string suffix;
 
-/* $ModDesc: Provides random Quotes on Connect. */
-
 /** Handle /RANDQUOTE
  */
 class CommandRandquote : public Command
@@ -88,7 +88,7 @@ class ModuleRandQuote : public Module
 
        virtual Version GetVersion()
        {
-               return Version("Provides random Quotes on Connect.",VF_VENDOR);
+               return Version("Provides random quotes on connect.",VF_VENDOR);
        }
 
        virtual void OnUserConnect(LocalUser* user)
index 5ee3355df6253651bc6c1f998a40169d6b532ec3..06c852938b9f564101efdf5285a15af6882cc9b7 100644 (file)
@@ -20,6 +20,8 @@
  */
 
 
+/* $ModDesc: RLINE: Regexp user banning. */
+
 #include "inspircd.h"
 #include "m_regex.h"
 #include "xline.h"
@@ -27,8 +29,6 @@
 static bool ZlineOnMatch = false;
 static std::vector<ZLine *> background_zlines;
 
-/* $ModDesc: RLINE: Regexp user banning. */
-
 class RLine : public XLine
 {
  public:
@@ -316,4 +316,3 @@ class ModuleRLine : public Module
 };
 
 MODULE_INIT(ModuleRLine)
-
index 02c2621bbb9fc48d117838ba5a664bcee4d7c545..297504e05d7e147f5bd46e5690ca289c2e6cebdd 100644 (file)
@@ -21,7 +21,7 @@
 
 #include "inspircd.h"
 
-/* $ModDesc: Provides support for seeing local and remote nickchanges via snomasks */
+/* $ModDesc: Provides support for seeing local and remote nickchanges via snomasks 'n' and 'N'. */
 
 class ModuleSeeNicks : public Module
 {
index ef480269054b7a21a6db638376743c6ae7e8e8f3..7f3c5490719eb6e72bc57b54b98b33d4f4fc31d4 100644 (file)
  */
 
 
+/* $ModDesc: Provides support for ircu-style services accounts, including chmode +R, etc. */
+
 #include "inspircd.h"
 #include "account.h"
 
-/* $ModDesc: Povides support for ircu-style services accounts, including chmode +R, etc. */
-
 /** Channel mode +r - mark a channel as identified
  */
 class Channel_r : public ModeHandler
@@ -289,7 +289,7 @@ class ModuleServicesAccount : public Module
 
        Version GetVersion()
        {
-               return Version("Povides support for ircu-style services accounts, including chmode +R, etc.",VF_OPTCOMMON|VF_VENDOR);
+               return Version("Provides support for ircu-style services accounts, including chmode +R, etc.",VF_OPTCOMMON|VF_VENDOR);
        }
 };
 
index 5db3c8ef743cf2d01397dfe6d29c4c3e925be88f..391f9a187155d08cf05fe58da6456f02abced4d3 100644 (file)
@@ -23,7 +23,7 @@
 #include "inspircd.h"
 #include "xline.h"
 
-/* $ModDesc: Provides the /shun command, which stops a user executing all commands except PING and PONG. */
+/* $ModDesc: Provides the /SHUN command, which stops a user from executing all except configured commands. */
 
 class Shun : public XLine
 {
@@ -308,7 +308,7 @@ class ModuleShun : public Module
 
        virtual Version GetVersion()
        {
-               return Version("Provides the /shun command, which stops a user executing all commands except PING and PONG.",VF_VENDOR|VF_COMMON);
+               return Version("Provides the /SHUN command, which stops a user from executing all except configured commands.",VF_VENDOR|VF_COMMON);
        }
 };