From: Robin Burchell Date: Fri, 1 Jun 2012 08:07:36 +0000 (-0700) Subject: Merge pull request #179 from attilamolnar/insp20+desyncfix X-Git-Tag: v2.0.23~717 X-Git-Url: https://git.netwichtig.de/gitweb/?a=commitdiff_plain;h=3af9c3f8950f864bcf9cdd56127cd4014827dece;hp=0428951093c38d0c3ba1ae69b8167be51a02236b;p=user%2Fhenk%2Fcode%2Finspircd.git Merge pull request #179 from attilamolnar/insp20+desyncfix [2.0] Fix desyncs caused by m_autoop and broken spanningtree routing logic --- diff --git a/docs/inspircd.censor.example b/docs/inspircd.censor.example index 05d9ce6fa..342ccd875 100644 --- a/docs/inspircd.censor.example +++ b/docs/inspircd.censor.example @@ -12,4 +12,3 @@ - diff --git a/docs/inspircd.conf.example b/docs/inspircd.conf.example index a820d4a40..d1293be25 100644 --- a/docs/inspircd.conf.example +++ b/docs/inspircd.conf.example @@ -160,7 +160,7 @@ # for ssl to work. If you do not want this bind section to support ssl, # just remove or comment out this option. ssl="gnutls" - > +> @@ -390,7 +390,7 @@ # # 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 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. @@ -592,9 +592,9 @@ # 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) @@ -694,11 +694,11 @@ # 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. @@ -782,19 +782,40 @@ # to do what they want. # # An example log tag would be: -# -# which would log all information on /oper (failed and successful) to +# +# 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. diff --git a/docs/links.conf.example b/docs/links.conf.example index 27213f784..a573b66da 100644 --- a/docs/links.conf.example +++ b/docs/links.conf.example @@ -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! # # # # # @@ -100,8 +98,9 @@ # 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. diff --git a/docs/modules.conf.example b/docs/modules.conf.example index 39ea4f9cc..e987f4878 100644 --- a/docs/modules.conf.example +++ b/docs/modules.conf.example @@ -607,8 +607,8 @@ # 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. # # @@ -1568,8 +1568,8 @@ # 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. # @@ -1757,9 +1757,10 @@ # 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. # # diff --git a/src/channels.cpp b/src/channels.cpp index 5539f4bfe..4a927cedb 100644 --- a/src/channels.cpp +++ b/src/channels.cpp @@ -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); diff --git a/src/configparser.cpp b/src/configparser.cpp index 056ed54a4..51d67b4f5 100644 --- a/src/configparser.cpp +++ b/src/configparser.cpp @@ -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)); } } diff --git a/src/modules/extra/m_ssl_gnutls.cpp b/src/modules/extra/m_ssl_gnutls.cpp index 22c027cfb..6ca876d4c 100644 --- a/src/modules/extra/m_ssl_gnutls.cpp +++ b/src/modules/extra/m_ssl_gnutls.cpp @@ -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; diff --git a/src/modules/m_censor.cpp b/src/modules/m_censor.cpp index 170fe8b07..5e832cc8b 100644 --- a/src/modules/m_censor.cpp +++ b/src/modules/m_censor.cpp @@ -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 censor_t; -/* $ModDesc: Provides user and channel +G mode */ - /** Handles usermode +G */ class CensorUser : public SimpleUserModeHandler diff --git a/src/modules/m_chancreate.cpp b/src/modules/m_chancreate.cpp index d7dfe8d2c..48f60a8d9 100644 --- a/src/modules/m_chancreate.cpp +++ b/src/modules/m_chancreate.cpp @@ -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); } diff --git a/src/modules/m_chanfilter.cpp b/src/modules/m_chanfilter.cpp index e6585e524..c899d7a4b 100644 --- a/src/modules/m_chanfilter.cpp +++ b/src/modules/m_chanfilter.cpp @@ -23,14 +23,14 @@ */ +/* $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 diff --git a/src/modules/m_check.cpp b/src/modules/m_check.cpp index cabfd02bc..8316b09fe 100644 --- a/src/modules/m_check.cpp +++ b/src/modules/m_check.cpp @@ -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); } }; diff --git a/src/modules/m_clones.cpp b/src/modules/m_clones.cpp index 1e5841609..aceac0dc7 100644 --- a/src/modules/m_clones.cpp +++ b/src/modules/m_clones.cpp @@ -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 - * :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); } diff --git a/src/modules/m_connectban.cpp b/src/modules/m_connectban.cpp index f831a3b77..00452a8f2 100644 --- a/src/modules/m_connectban.cpp +++ b/src/modules/m_connectban.cpp @@ -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) diff --git a/src/modules/m_dccallow.cpp b/src/modules/m_dccallow.cpp index 495a0da5a..8c2a5f73e 100644 --- a/src/modules/m_dccallow.cpp +++ b/src/modules/m_dccallow.cpp @@ -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); } }; diff --git a/src/modules/m_delayjoin.cpp b/src/modules/m_delayjoin.cpp index 3a574d485..34d782c77 100644 --- a/src/modules/m_delayjoin.cpp +++ b/src/modules/m_delayjoin.cpp @@ -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 @@ -60,8 +62,6 @@ class ModuleDelayJoin : public Module ModResult OnRawMode(User* user, Channel* channel, const char mode, const std::string ¶m, 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 ¶meter, bool adding) { /* no change */ @@ -194,4 +194,3 @@ ModResult ModuleDelayJoin::OnRawMode(User* user, Channel* channel, const char mo } MODULE_INIT(ModuleDelayJoin) - diff --git a/src/modules/m_globops.cpp b/src/modules/m_globops.cpp index 2ef6d61d8..db55858d6 100644 --- a/src/modules/m_globops.cpp +++ b/src/modules/m_globops.cpp @@ -19,11 +19,11 @@ */ -// 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); } }; diff --git a/src/modules/m_halfop.cpp b/src/modules/m_halfop.cpp index 2c4b086cb..f0eda3e56 100644 --- a/src/modules/m_halfop.cpp +++ b/src/modules/m_halfop.cpp @@ -17,6 +17,8 @@ */ +/* $ModDesc: Channel half-operator mode provider */ + #include "inspircd.h" class ModeChannelHalfOp : public ModeHandler diff --git a/src/modules/m_helpop.cpp b/src/modules/m_helpop.cpp index dd2e77986..a7bd4a8c5 100644 --- a/src/modules/m_helpop.cpp +++ b/src/modules/m_helpop.cpp @@ -21,6 +21,8 @@ */ +/* $ModDesc: Provides the /HELPOP command, works like UnrealIRCd's helpop */ + #include "inspircd.h" static std::map helpop_map; diff --git a/src/modules/m_httpd_config.cpp b/src/modules/m_httpd_config.cpp index aa84b83a4..0df1c12fb 100644 --- a/src/modules/m_httpd_config.cpp +++ b/src/modules/m_httpd_config.cpp @@ -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); } }; diff --git a/src/modules/m_jumpserver.cpp b/src/modules/m_jumpserver.cpp index 4379f931a..9a171a19a 100644 --- a/src/modules/m_jumpserver.cpp +++ b/src/modules/m_jumpserver.cpp @@ -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); } }; diff --git a/src/modules/m_knock.cpp b/src/modules/m_knock.cpp index 5664e79ab..84838ec7f 100644 --- a/src/modules/m_knock.cpp +++ b/src/modules/m_knock.cpp @@ -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); } }; diff --git a/src/modules/m_md5.cpp b/src/modules/m_md5.cpp index f8f13dcbc..14ccf16a8 100644 --- a/src/modules/m_md5.cpp +++ b/src/modules/m_md5.cpp @@ -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]) diff --git a/src/modules/m_mlock.cpp b/src/modules/m_mlock.cpp index b5f34c936..e9ca3bfd0 100644 --- a/src/modules/m_mlock.cpp +++ b/src/modules/m_mlock.cpp @@ -16,6 +16,9 @@ * along with this program. If not, see . */ + +/* $ModDesc: Implements the ability to have server-side MLOCK enforcement. */ + #include "inspircd.h" class ModuleMLock : public Module diff --git a/src/modules/m_namedmodes.cpp b/src/modules/m_namedmodes.cpp index 8233f4357..024cc427c 100644 --- a/src/modules/m_namedmodes.cpp +++ b/src/modules/m_namedmodes.cpp @@ -17,6 +17,8 @@ */ +/* $ModDesc: Provides the ability to manipulate modes via long names. */ + #include "inspircd.h" static void DisplayList(User* user, Channel* channel) diff --git a/src/modules/m_operlevels.cpp b/src/modules/m_operlevels.cpp index d142a4b0f..da506dd58 100644 --- a/src/modules/m_operlevels.cpp +++ b/src/modules/m_operlevels.cpp @@ -20,9 +20,10 @@ */ +/* $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: diff --git a/src/modules/m_passforward.cpp b/src/modules/m_passforward.cpp index 47f71bbe0..bf09c1f6e 100644 --- a/src/modules/m_passforward.cpp +++ b/src/modules/m_passforward.cpp @@ -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) - diff --git a/src/modules/m_randquote.cpp b/src/modules/m_randquote.cpp index 94cd3dbac..5fa63d8f4 100644 --- a/src/modules/m_randquote.cpp +++ b/src/modules/m_randquote.cpp @@ -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) diff --git a/src/modules/m_rline.cpp b/src/modules/m_rline.cpp index 5ee3355df..06c852938 100644 --- a/src/modules/m_rline.cpp +++ b/src/modules/m_rline.cpp @@ -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 background_zlines; -/* $ModDesc: RLINE: Regexp user banning. */ - class RLine : public XLine { public: @@ -316,4 +316,3 @@ class ModuleRLine : public Module }; MODULE_INIT(ModuleRLine) - diff --git a/src/modules/m_seenicks.cpp b/src/modules/m_seenicks.cpp index 02c2621bb..297504e05 100644 --- a/src/modules/m_seenicks.cpp +++ b/src/modules/m_seenicks.cpp @@ -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 { diff --git a/src/modules/m_services_account.cpp b/src/modules/m_services_account.cpp index ef4802690..7f3c54907 100644 --- a/src/modules/m_services_account.cpp +++ b/src/modules/m_services_account.cpp @@ -21,11 +21,11 @@ */ +/* $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); } }; diff --git a/src/modules/m_shun.cpp b/src/modules/m_shun.cpp index 5db3c8ef7..391f9a187 100644 --- a/src/modules/m_shun.cpp +++ b/src/modules/m_shun.cpp @@ -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); } };