diff options
| author | 2021-02-28 19:16:40 +0000 | |
|---|---|---|
| committer | 2021-02-28 19:16:40 +0000 | |
| commit | c22c7e5a99c8f913c12cad13977d7c56fa7ee8e4 (patch) | |
| tree | b044fa7ab25ac5cf769e5eb6dfa4dda85030794d /src | |
| parent | Merge branch 'insp3' into master. (diff) | |
| parent | Fix running configure on systems with old versions of Perl. (diff) | |
Merge branch 'insp3' into master.
Diffstat (limited to 'src')
50 files changed, 293 insertions, 156 deletions
diff --git a/src/configreader.cpp b/src/configreader.cpp index a72257609..ac3a2e811 100644 --- a/src/configreader.cpp +++ b/src/configreader.cpp @@ -3,7 +3,7 @@ * * Copyright (C) 2019 Matt Schatz <genius3000@g3k.solutions> * Copyright (C) 2013-2016 Attila Molnar <attilamolnar@hush.com> - * Copyright (C) 2013-2014, 2016-2020 Sadie Powell <sadie@witchery.services> + * Copyright (C) 2013-2014, 2016-2021 Sadie Powell <sadie@witchery.services> * Copyright (C) 2013 Daniel Vassdal <shutter@canternet.org> * Copyright (C) 2012 Robby <robby@chatbelgie.be> * Copyright (C) 2012 Justin Crawford <Justasic@Gmail.com> diff --git a/src/coremods/core_dns.cpp b/src/coremods/core_dns.cpp index b42c0aa9e..8ac41866e 100644 --- a/src/coremods/core_dns.cpp +++ b/src/coremods/core_dns.cpp @@ -2,7 +2,7 @@ * InspIRCd -- Internet Relay Chat Daemon * * Copyright (C) 2019 Robby <robby@chatbelgie.be> - * Copyright (C) 2015, 2017-2020 Sadie Powell <sadie@witchery.services> + * Copyright (C) 2015, 2017-2021 Sadie Powell <sadie@witchery.services> * Copyright (C) 2013-2016 Attila Molnar <attilamolnar@hush.com> * Copyright (C) 2013, 2015-2016 Adam <Adam@anope.org> * diff --git a/src/coremods/core_info/cmd_admin.cpp b/src/coremods/core_info/cmd_admin.cpp index cabca3b35..372c1805a 100644 --- a/src/coremods/core_info/cmd_admin.cpp +++ b/src/coremods/core_info/cmd_admin.cpp @@ -1,7 +1,7 @@ /* * InspIRCd -- Internet Relay Chat Daemon * - * Copyright (C) 2018-2019 Sadie Powell <sadie@witchery.services> + * Copyright (C) 2018-2020 Sadie Powell <sadie@witchery.services> * Copyright (C) 2014, 2016 Attila Molnar <attilamolnar@hush.com> * Copyright (C) 2012, 2019 Robby <robby@chatbelgie.be> * Copyright (C) 2009-2010 Daniel De Graaf <danieldg@inspircd.org> diff --git a/src/coremods/core_info/cmd_info.cpp b/src/coremods/core_info/cmd_info.cpp index 48f307f07..28ca92e0d 100644 --- a/src/coremods/core_info/cmd_info.cpp +++ b/src/coremods/core_info/cmd_info.cpp @@ -1,7 +1,7 @@ /* * InspIRCd -- Internet Relay Chat Daemon * - * Copyright (C) 2018-2020 Sadie Powell <sadie@witchery.services> + * Copyright (C) 2018-2021 Sadie Powell <sadie@witchery.services> * Copyright (C) 2015 Robin Burchell <robin+git@viroteck.net> * Copyright (C) 2013-2014, 2016 Attila Molnar <attilamolnar@hush.com> * Copyright (C) 2012, 2019 Robby <robby@chatbelgie.be> @@ -57,7 +57,7 @@ static const char* const lines[] = { " Robin Burchell, w00t, <w00t@inspircd.org>", " ", "\002Active Contributors\002:", - " Adam linuxdaemon Robby Sheogorath", + " Adam Robby", " ", "\002Former Contributors\002:", " Adremelech Ankit AnMaster Bricker", @@ -65,16 +65,17 @@ static const char* const lines[] = { " Dan djGrrr dmb eggy", " GreenReaper HiroP jackmcbarn jamie", " Jason jilles John2 kaniini", - " LeaChim MacGyver Majic Namegduf", - " owine Phoenix pippijn praetorian", - " Quension satmd Shawn Shutter", - " skenmy Skip Stskeeps Taros", - " ThaPrince Thunderhacker typobox43 Zaba", + " LeaChim linuxdaemon MacGyver majic", + " Namegduf owine Phoenix pippijn", + " praetorian Quension satmd Shawn", + " Sheogorath Shutter skenmy Skip", + " Stskeeps Taros ThaPrince Thunderhacker", + " typobox43 Zaba", " ", "\002Thanks To\002:", " Asmo Brik fraggeln prawnsalad", " ", - " Best experienced with: \002An IRC client\002", + " Best experienced with \002an IRC client\002", NULL }; diff --git a/src/coremods/core_info/cmd_servlist.cpp b/src/coremods/core_info/cmd_servlist.cpp index 753df3b49..682aae171 100644 --- a/src/coremods/core_info/cmd_servlist.cpp +++ b/src/coremods/core_info/cmd_servlist.cpp @@ -1,7 +1,7 @@ /* * InspIRCd -- Internet Relay Chat Daemon * - * Copyright (C) 2020 Sadie Powell <sadie@witchery.services> + * Copyright (C) 2020-2021 Sadie Powell <sadie@witchery.services> * * This file is part of InspIRCd. InspIRCd is free software: you can * redistribute it and/or modify it under the terms of the GNU General Public @@ -44,7 +44,7 @@ CmdResult CommandServList::HandleLocal(LocalUser* user, const Params& parameters if (serviceuser->IsModeSet(invisiblemode) || !InspIRCd::Match(serviceuser->nick, mask)) continue; - if (has_type && (!user->IsOper() || !InspIRCd::Match(user->oper->name, parameters[2 ]))) + if (has_type && (!serviceuser->IsOper() || !InspIRCd::Match(serviceuser->oper->name, parameters[2]))) continue; Numeric::Numeric numeric(RPL_SERVLIST); diff --git a/src/coremods/core_info/cmd_time.cpp b/src/coremods/core_info/cmd_time.cpp index d7d44e8fa..941151781 100644 --- a/src/coremods/core_info/cmd_time.cpp +++ b/src/coremods/core_info/cmd_time.cpp @@ -1,7 +1,7 @@ /* * InspIRCd -- Internet Relay Chat Daemon * - * Copyright (C) 2018-2019 Sadie Powell <sadie@witchery.services> + * Copyright (C) 2018-2020 Sadie Powell <sadie@witchery.services> * Copyright (C) 2014, 2016 Attila Molnar <attilamolnar@hush.com> * Copyright (C) 2012 Robby <robby@chatbelgie.be> * Copyright (C) 2009-2010 Daniel De Graaf <danieldg@inspircd.org> diff --git a/src/coremods/core_message.cpp b/src/coremods/core_message.cpp index 886604a4d..7b7a43da1 100644 --- a/src/coremods/core_message.cpp +++ b/src/coremods/core_message.cpp @@ -1,7 +1,7 @@ /* * InspIRCd -- Internet Relay Chat Daemon * - * Copyright (C) 2017-2020 Sadie Powell <sadie@witchery.services> + * Copyright (C) 2017-2021 Sadie Powell <sadie@witchery.services> * Copyright (C) 2013, 2017-2018 Attila Molnar <attilamolnar@hush.com> * Copyright (C) 2012, 2019 Robby <robby@chatbelgie.be> * Copyright (C) 2009 Daniel De Graaf <danieldg@inspircd.org> @@ -24,11 +24,6 @@ #include "inspircd.h" -enum -{ - // From RFC 2812. - ERR_NOSUCHSERVICE = 408 -}; class MessageDetailsImpl : public MessageDetails { @@ -303,15 +298,26 @@ class CommandMessage : public Command if (parameters[0][0] == '$') return HandleServerTarget(user, parameters); - // If the message begins with a status character then look it up. + // If the message begins with one or more status characters then look them up. const char* target = parameters[0].c_str(); - PrefixMode* pmh = ServerInstance->Modes.FindPrefix(target[0]); - if (pmh) - target++; + PrefixMode* targetpfx = NULL; + for (PrefixMode* pfx; (pfx = ServerInstance->Modes.FindPrefix(target[0])); ++target) + { + // We want the lowest ranked prefix specified. + if (!targetpfx || pfx->GetPrefixRank() < targetpfx->GetPrefixRank()) + targetpfx = pfx; + } + + if (!target[0]) + { + // The target consisted solely of prefix modes. + user->WriteNumeric(ERR_NORECIPIENT, "No recipient given"); + return CmdResult::FAILURE; + } // The target is a channel name. if (*target == '#') - return HandleChannelTarget(user, parameters, target, pmh); + return HandleChannelTarget(user, parameters, target, targetpfx); // The target is a nickname. return HandleUserTarget(user, parameters); diff --git a/src/coremods/core_oper/umode_s.cpp b/src/coremods/core_oper/umode_s.cpp index 16c7e23b8..1ac8993f0 100644 --- a/src/coremods/core_oper/umode_s.cpp +++ b/src/coremods/core_oper/umode_s.cpp @@ -1,7 +1,7 @@ /* * InspIRCd -- Internet Relay Chat Daemon * - * Copyright (C) 2017, 2020 Sadie Powell <sadie@witchery.services> + * Copyright (C) 2017, 2020-2021 Sadie Powell <sadie@witchery.services> * Copyright (C) 2013, 2016 Attila Molnar <attilamolnar@hush.com> * Copyright (C) 2012, 2019 Robby <robby@chatbelgie.be> * Copyright (C) 2009 Daniel De Graaf <danieldg@inspircd.org> diff --git a/src/coremods/core_reloadmodule.cpp b/src/coremods/core_reloadmodule.cpp index d67969510..366ac8a4b 100644 --- a/src/coremods/core_reloadmodule.cpp +++ b/src/coremods/core_reloadmodule.cpp @@ -1,7 +1,7 @@ /* * InspIRCd -- Internet Relay Chat Daemon * - * Copyright (C) 2017-2019 Sadie Powell <sadie@witchery.services> + * Copyright (C) 2017-2019, 2021 Sadie Powell <sadie@witchery.services> * Copyright (C) 2014-2016, 2018 Attila Molnar <attilamolnar@hush.com> * Copyright (C) 2012 Robby <robby@chatbelgie.be> * Copyright (C) 2009 Daniel De Graaf <danieldg@inspircd.org> diff --git a/src/coremods/core_stub.cpp b/src/coremods/core_stub.cpp index 5b55b78cc..1e622107e 100644 --- a/src/coremods/core_stub.cpp +++ b/src/coremods/core_stub.cpp @@ -2,7 +2,7 @@ * InspIRCd -- Internet Relay Chat Daemon * * Copyright (C) 2019 Robby <robby@chatbelgie.be> - * Copyright (C) 2017-2019 Sadie Powell <sadie@witchery.services> + * Copyright (C) 2017-2020 Sadie Powell <sadie@witchery.services> * Copyright (C) 2014-2016 Attila Molnar <attilamolnar@hush.com> * * This file is part of InspIRCd. InspIRCd is free software: you can diff --git a/src/coremods/core_whois.cpp b/src/coremods/core_whois.cpp index 816f42f87..a6ca4a2bc 100644 --- a/src/coremods/core_whois.cpp +++ b/src/coremods/core_whois.cpp @@ -30,22 +30,6 @@ #include "inspircd.h" #include "modules/whois.h" -enum -{ - // From RFC 1459. - RPL_WHOISUSER = 311, - RPL_WHOISOPERATOR = 313, - RPL_WHOISIDLE = 317, - RPL_WHOISCHANNELS = 319, - - // From UnrealIRCd. - RPL_WHOISHOST = 378, - RPL_WHOISMODES = 379, - - // InspIRCd-specific. - RPL_CHANNELSMSG = 651 -}; - enum SplitWhoisState { // Don't split private/secret channels into a separate RPL_WHOISCHANNELS numeric. diff --git a/src/cull_list.cpp b/src/cull_list.cpp index 7eae8b0bc..0f9c24f15 100644 --- a/src/cull_list.cpp +++ b/src/cull_list.cpp @@ -2,7 +2,7 @@ * InspIRCd -- Internet Relay Chat Daemon * * Copyright (C) 2015 Attila Molnar <attilamolnar@hush.com> - * Copyright (C) 2013 Sadie Powell <sadie@witchery.services> + * Copyright (C) 2013, 2020 Sadie Powell <sadie@witchery.services> * Copyright (C) 2012 Robby <robby@chatbelgie.be> * Copyright (C) 2011 jackmcbarn <jackmcbarn@inspircd.org> * Copyright (C) 2009 Uli Schlachter <psychon@inspircd.org> diff --git a/src/inspircd.cpp b/src/inspircd.cpp index fda31feb7..92d5ba7bf 100644 --- a/src/inspircd.cpp +++ b/src/inspircd.cpp @@ -3,12 +3,12 @@ * * Copyright (C) 2020 Matt Schatz <genius3000@g3k.solutions> * Copyright (C) 2018 Chris Novakovic <chrisnovakovic@users.noreply.github.com> - * Copyright (C) 2013, 2017-2020 Sadie Powell <sadie@witchery.services> + * Copyright (C) 2013, 2018-2021 Sadie Powell <sadie@witchery.services> * Copyright (C) 2013 Adam <Adam@anope.org> * Copyright (C) 2012-2014, 2016, 2018 Attila Molnar <attilamolnar@hush.com> - * Copyright (C) 2012 William Pitcock <nenolod@dereferenced.org> * Copyright (C) 2012 Robby <robby@chatbelgie.be> * Copyright (C) 2012 ChrisTX <xpipe@hotmail.de> + * Copyright (C) 2012 Ariadne Conill <ariadne@dereferenced.org> * Copyright (C) 2009-2010 Daniel De Graaf <danieldg@inspircd.org> * Copyright (C) 2009 Uli Schlachter <psychon@inspircd.org> * Copyright (C) 2008 Thomas Stagner <aquanight@inspircd.org> diff --git a/src/mode.cpp b/src/mode.cpp index 64f844e28..ddcddda6a 100644 --- a/src/mode.cpp +++ b/src/mode.cpp @@ -96,6 +96,14 @@ void ModeHandler::OnParameterMissing(User* user, User* dest, Channel* channel) user->WriteNumeric(Numerics::InvalidModeParameter(dest, this, "*", message)); } +void ModeHandler::OnParameterInvalid(User* user, Channel* targetchannel, User* targetuser, const std::string& parameter) +{ + if (targetchannel) + user->WriteNumeric(Numerics::InvalidModeParameter(targetchannel, this, "*")); + else + user->WriteNumeric(Numerics::InvalidModeParameter(targetuser, this, "*")); +} + bool ModeHandler::ResolveModeConflict(std::string& theirs, const std::string& ours, Channel*) { return (theirs < ours); @@ -390,7 +398,10 @@ static bool IsModeParamValid(User* user, Channel* targetchannel, User* targetuse // The parameter cannot begin with a ':' character or contain a space if ((item.param[0] == ':') || (item.param.find(' ') != std::string::npos)) + { + item.mh->OnParameterInvalid(user, targetchannel, targetuser, item.param); return false; + } return true; } diff --git a/src/modules/extra/m_argon2.cpp b/src/modules/extra/m_argon2.cpp index d3f09b2d5..198944ddf 100644 --- a/src/modules/extra/m_argon2.cpp +++ b/src/modules/extra/m_argon2.cpp @@ -1,6 +1,7 @@ /* * InspIRCd -- Internet Relay Chat Daemon * + * Copyright (C) 2020 Elizabeth Myers <elizabeth@interlinked.me> * Copyright (C) 2020 Daniel Vassdal <shutter@canternet.org> * * This file is part of InspIRCd. InspIRCd is free software: you can diff --git a/src/modules/extra/m_geo_maxmind.cpp b/src/modules/extra/m_geo_maxmind.cpp index b178d2c86..78a686073 100644 --- a/src/modules/extra/m_geo_maxmind.cpp +++ b/src/modules/extra/m_geo_maxmind.cpp @@ -1,7 +1,7 @@ /* * InspIRCd -- Internet Relay Chat Daemon * - * Copyright (C) 2019-2020 Sadie Powell <sadie@witchery.services> + * Copyright (C) 2019-2021 Sadie Powell <sadie@witchery.services> * Copyright (C) 2019 Matt Schatz <genius3000@g3k.solutions> * * This file is part of InspIRCd. InspIRCd is free software: you can @@ -43,6 +43,12 @@ class GeolocationExtItem : public ExtensionItem { } + std::string ToHuman(const Extensible* container, void* item) const override + { + Geolocation::Location* location = static_cast<Geolocation::Location*>(item); + return location->GetName() + " [" + location->GetCode() + "]"; + } + void Delete(Extensible* container, void* item) override { Geolocation::Location* old = static_cast<Geolocation::Location*>(item); diff --git a/src/modules/extra/m_ssl_gnutls.cpp b/src/modules/extra/m_ssl_gnutls.cpp index 2190def6c..0ad6e3b99 100644 --- a/src/modules/extra/m_ssl_gnutls.cpp +++ b/src/modules/extra/m_ssl_gnutls.cpp @@ -3,7 +3,7 @@ * * Copyright (C) 2020 Matt Schatz <genius3000@g3k.solutions> * Copyright (C) 2019 linuxdaemon <linuxdaemon.irc@gmail.com> - * Copyright (C) 2013-2014, 2016-2020 Sadie Powell <sadie@witchery.services> + * Copyright (C) 2013-2014, 2016-2021 Sadie Powell <sadie@witchery.services> * Copyright (C) 2013 Daniel Vassdal <shutter@canternet.org> * Copyright (C) 2012-2017 Attila Molnar <attilamolnar@hush.com> * Copyright (C) 2012-2013, 2016 Adam <Adam@anope.org> @@ -1191,7 +1191,7 @@ class ModuleSSLGnuTLS : public Module try { ReadProfiles(); - ServerInstance->SNO.WriteToSnoMask('a', "TLS (SSL) module GnuTLS rehashed."); + ServerInstance->SNO.WriteToSnoMask('a', "GnuTLS TLS (SSL) profiles have been reloaded."); } catch (ModuleException& ex) { diff --git a/src/modules/extra/m_ssl_mbedtls.cpp b/src/modules/extra/m_ssl_mbedtls.cpp index 4a95329fa..89a1d24a7 100644 --- a/src/modules/extra/m_ssl_mbedtls.cpp +++ b/src/modules/extra/m_ssl_mbedtls.cpp @@ -2,7 +2,7 @@ * InspIRCd -- Internet Relay Chat Daemon * * Copyright (C) 2020 Matt Schatz <genius3000@g3k.solutions> - * Copyright (C) 2016-2020 Sadie Powell <sadie@witchery.services> + * Copyright (C) 2016-2021 Sadie Powell <sadie@witchery.services> * Copyright (C) 2016-2017 Attila Molnar <attilamolnar@hush.com> * * This file is part of InspIRCd. InspIRCd is free software: you can @@ -927,7 +927,7 @@ class ModuleSSLmbedTLS : public Module try { ReadProfiles(); - ServerInstance->SNO.WriteToSnoMask('a', "TLS (SSL) module mbedTLS rehashed."); + ServerInstance->SNO.WriteToSnoMask('a', "mbedTLS TLS (SSL) profiles have been reloaded."); } catch (ModuleException& ex) { diff --git a/src/modules/extra/m_ssl_openssl.cpp b/src/modules/extra/m_ssl_openssl.cpp index a8c09eec3..9ebcb56eb 100644 --- a/src/modules/extra/m_ssl_openssl.cpp +++ b/src/modules/extra/m_ssl_openssl.cpp @@ -6,7 +6,7 @@ * Copyright (C) 2017 Wade Cline <wadecline@hotmail.com> * Copyright (C) 2014, 2016 Adam <Adam@anope.org> * Copyright (C) 2014 Julien Vehent <julien@linuxwall.info> - * Copyright (C) 2013-2014, 2016-2020 Sadie Powell <sadie@witchery.services> + * Copyright (C) 2013-2014, 2016-2021 Sadie Powell <sadie@witchery.services> * Copyright (C) 2012-2017 Attila Molnar <attilamolnar@hush.com> * Copyright (C) 2012 Robby <robby@chatbelgie.be> * Copyright (C) 2012 ChrisTX <xpipe@hotmail.de> @@ -981,7 +981,7 @@ class ModuleSSLOpenSSL : public Module try { ReadProfiles(); - ServerInstance->SNO.WriteToSnoMask('a', "TLS (SSL) module OpenSSL rehashed."); + ServerInstance->SNO.WriteToSnoMask('a', "OpenSSL TLS (SSL) profiles have been reloaded."); } catch (ModuleException& ex) { diff --git a/src/modules/m_alias.cpp b/src/modules/m_alias.cpp index f4d4ad680..12a6ba833 100644 --- a/src/modules/m_alias.cpp +++ b/src/modules/m_alias.cpp @@ -2,8 +2,8 @@ * InspIRCd -- Internet Relay Chat Daemon * * Copyright (C) 2018-2019 linuxdaemon <linuxdaemon.irc@gmail.com> - * Copyright (C) 2013-2016, 2018 Attila Molnar <attilamolnar@hush.com> - * Copyright (C) 2013, 2015-2019 Sadie Powell <sadie@witchery.services> + * Copyright (C) 2013-2015, 2018 Attila Molnar <attilamolnar@hush.com> + * Copyright (C) 2013, 2015-2019, 2021 Sadie Powell <sadie@witchery.services> * Copyright (C) 2012, 2019 Robby <robby@chatbelgie.be> * Copyright (C) 2009-2010 Daniel De Graaf <danieldg@inspircd.org> * Copyright (C) 2009 Matt Smith <dz@inspircd.org> @@ -279,17 +279,18 @@ class ModuleAlias : public Module if (!a.RequiredNick.empty()) { + int numeric = a.ServiceOnly ? ERR_NOSUCHSERVICE : ERR_NOSUCHNICK; User* u = ServerInstance->Users.FindNick(a.RequiredNick); if (!u) { - user->WriteNumeric(ERR_NOSUCHNICK, a.RequiredNick, "is currently unavailable. Please try again later."); + user->WriteNumeric(numeric, a.RequiredNick, "is currently unavailable. Please try again later."); return 1; } if ((a.ServiceOnly) && (!u->server->IsService())) { ServerInstance->SNO.WriteToSnoMask('a', "NOTICE -- Service "+a.RequiredNick+" required by alias "+a.AliasedCommand+" is not on a U-lined server, possibly underhanded antics detected!"); - user->WriteNumeric(ERR_NOSUCHNICK, a.RequiredNick, "is not a network service! Please inform a server operator as soon as possible."); + user->WriteNumeric(numeric, a.RequiredNick, "is not a network service! Please inform a server operator as soon as possible."); return 1; } } diff --git a/src/modules/m_cgiirc.cpp b/src/modules/m_cgiirc.cpp index a8f126b84..3b1013691 100644 --- a/src/modules/m_cgiirc.cpp +++ b/src/modules/m_cgiirc.cpp @@ -4,7 +4,7 @@ * Copyright (C) 2019 linuxdaemon <linuxdaemon.irc@gmail.com> * Copyright (C) 2014 md_5 <git@md-5.net> * Copyright (C) 2014 Googolplexed <googol@googolplexed.net> - * Copyright (C) 2013, 2017-2018, 2020 Sadie Powell <sadie@witchery.services> + * Copyright (C) 2013, 2017-2018, 2020-2021 Sadie Powell <sadie@witchery.services> * Copyright (C) 2013 Adam <Adam@anope.org> * Copyright (C) 2012-2013, 2015 Attila Molnar <attilamolnar@hush.com> * Copyright (C) 2012, 2019 Robby <robby@chatbelgie.be> @@ -124,6 +124,84 @@ class WebIRCHost } }; +class CommandHexIP : public SplitCommand +{ + public: + CommandHexIP(Module* Creator) + : SplitCommand(Creator, "HEXIP", 1) + { + allow_empty_last_param = false; + Penalty = 2; + syntax = { "<hex-ip|raw-ip>" }; + } + + CmdResult HandleLocal(LocalUser* user, const Params& parameters) override + { + irc::sockets::sockaddrs sa; + if (irc::sockets::aptosa(parameters[0], 0, sa)) + { + if (sa.family() != AF_INET) + { + user->WriteNotice("*** HEXIP: You can only hex encode an IPv4 address!"); + return CmdResult::FAILURE; + } + + uint32_t addr = sa.in4.sin_addr.s_addr; + user->WriteNotice(InspIRCd::Format("*** HEXIP: %s encodes to %02x%02x%02x%02x.", + sa.addr().c_str(), (addr & 0xFF), ((addr >> 8) & 0xFF), ((addr >> 16) & 0xFF), + ((addr >> 24) & 0xFF))); + return CmdResult::SUCCESS; + } + + if (ParseIP(parameters[0], sa)) + { + user->WriteNotice(InspIRCd::Format("*** HEXIP: %s decodes to %s.", + parameters[0].c_str(), sa.addr().c_str())); + return CmdResult::SUCCESS; + } + + user->WriteNotice(InspIRCd::Format("*** HEXIP: %s is not a valid raw or hex encoded IPv4 address.", + parameters[0].c_str())); + return CmdResult::FAILURE; + } + + static bool ParseIP(const std::string& in, irc::sockets::sockaddrs& out) + { + const char* ident = NULL; + if (in.length() == 8) + { + // The ident is an IPv4 address encoded in hexadecimal with two characters + // per address segment. + ident = in.c_str(); + } + else if (in.length() == 9 && in[0] == '~') + { + // The same as above but m_ident got to this user before we did. Strip the + // ident prefix and continue as normal. + ident = in.c_str() + 1; + } + else + { + // The user either does not have an IPv4 in their ident or the gateway server + // is also running an identd. In the latter case there isn't really a lot we + // can do so we just assume that the client in question is not connecting via + // an ident gateway. + return false; + } + + // Try to convert the IP address to a string. If this fails then the user + // does not have an IPv4 address in their ident. + errno = 0; + unsigned long address = strtoul(ident, NULL, 16); + if (errno) + return false; + + out.in4.sin_family = AF_INET; + out.in4.sin_addr.s_addr = htonl(address); + return true; + } +}; + class CommandWebIRC : public SplitCommand { public: @@ -173,8 +251,9 @@ class CommandWebIRC : public SplitCommand realhost.set(user, user->GetRealHost()); realip.set(user, user->GetIPString()); - WriteLog("Connecting user %s is using a WebIRC gateway; changing their IP from %s to %s.", - user->uuid.c_str(), user->GetIPString().c_str(), parameters[3].c_str()); + WriteLog("Connecting user %s is using the %s WebIRC gateway; changing their IP from %s to %s.", + user->uuid.c_str(), parameters[1].c_str(), + user->GetIPString().c_str(), parameters[3].c_str()); // If we have custom flags then deal with them. WebIRC::FlagMap flags; @@ -235,51 +314,17 @@ class ModuleCgiIRC , public Whois::EventListener { private: - CommandWebIRC cmd; + CommandHexIP cmdhexip; + CommandWebIRC cmdwebirc; std::vector<IdentHost> hosts; - static bool ParseIdent(LocalUser* user, irc::sockets::sockaddrs& out) - { - const char* ident = NULL; - if (user->ident.length() == 8) - { - // The ident is an IPv4 address encoded in hexadecimal with two characters - // per address segment. - ident = user->ident.c_str(); - } - else if (user->ident.length() == 9 && user->ident[0] == '~') - { - // The same as above but m_ident got to this user before we did. Strip the - // ident prefix and continue as normal. - ident = user->ident.c_str() + 1; - } - else - { - // The user either does not have an IPv4 in their ident or the gateway server - // is also running an identd. In the latter case there isn't really a lot we - // can do so we just assume that the client in question is not connecting via - // an ident gateway. - return false; - } - - // Try to convert the IP address to a string. If this fails then the user - // does not have an IPv4 address in their ident. - errno = 0; - unsigned long address = strtoul(ident, NULL, 16); - if (errno) - return false; - - out.in4.sin_family = AF_INET; - out.in4.sin_addr.s_addr = htonl(address); - return true; - } - public: ModuleCgiIRC() : Module(VF_VENDOR, "Adds the ability for IRC gateways to forward the real IP address of users connecting through them.") , WebIRC::EventListener(this) , Whois::EventListener(this) - , cmd(this) + , cmdhexip(this) + , cmdwebirc(this) { } @@ -339,10 +384,10 @@ class ModuleCgiIRC // The host configuration was valid so we can apply it. hosts.swap(identhosts); - cmd.hosts.swap(webirchosts); + cmdwebirc.hosts.swap(webirchosts); // Do we send an oper notice when a m_cgiirc client has their IP changed? - cmd.notify = ServerInstance->Config->ConfValue("cgiirc")->getBool("opernotice", true); + cmdwebirc.notify = ServerInstance->Config->ConfValue("cgiirc")->getBool("opernotice", true); } ModResult OnSetConnectClass(LocalUser* user, std::shared_ptr<ConnectClass> myclass) override @@ -354,7 +399,7 @@ class ModuleCgiIRC // If the user is not connecting via a WebIRC gateway then they // cannot match this connect class. - const std::string* gateway = cmd.gateway.get(user); + const std::string* gateway = cmdwebirc.gateway.get(user); if (!gateway) { ServerInstance->Logs.Log("CONNECTCLASS", LOG_DEBUG, "The %s connect class is not suitable as it requires a connection via a WebIRC gateway", @@ -377,7 +422,7 @@ class ModuleCgiIRC ModResult OnUserRegister(LocalUser* user) override { // There is no need to check for gateways if one is already being used. - if (cmd.realhost.get(user)) + if (cmdwebirc.realhost.get(user)) return MOD_RES_PASSTHRU; for (std::vector<IdentHost>::const_iterator iter = hosts.begin(); iter != hosts.end(); ++iter) @@ -389,15 +434,15 @@ class ModuleCgiIRC // We have matched an <cgihost> block! Try to parse the encoded IPv4 address // out of the ident. irc::sockets::sockaddrs address(user->client_sa); - if (!ParseIdent(user, address)) + if (!CommandHexIP::ParseIP(user->ident, address)) return MOD_RES_PASSTHRU; // Store the hostname and IP of the gateway for later use. - cmd.realhost.set(user, user->GetRealHost()); - cmd.realip.set(user, user->GetIPString()); + cmdwebirc.realhost.set(user, user->GetRealHost()); + cmdwebirc.realip.set(user, user->GetIPString()); const std::string& newident = iter->GetIdent(); - cmd.WriteLog("Connecting user %s is using an ident gateway; changing their IP from %s to %s and their ident from %s to %s.", + cmdwebirc.WriteLog("Connecting user %s is using an ident gateway; changing their IP from %s to %s and their ident from %s to %s.", user->uuid.c_str(), user->GetIPString().c_str(), address.addr().c_str(), user->ident.c_str(), newident.c_str()); user->ChangeIdent(newident); @@ -473,12 +518,12 @@ class ModuleCgiIRC return; // If these fields are not set then the client is not using a gateway. - const std::string* realhost = cmd.realhost.get(whois.GetTarget()); - const std::string* realip = cmd.realip.get(whois.GetTarget()); + const std::string* realhost = cmdwebirc.realhost.get(whois.GetTarget()); + const std::string* realip = cmdwebirc.realip.get(whois.GetTarget()); if (!realhost || !realip) return; - const std::string* gateway = cmd.gateway.get(whois.GetTarget()); + const std::string* gateway = cmdwebirc.gateway.get(whois.GetTarget()); if (gateway) whois.SendLine(RPL_WHOISGATEWAY, *realhost, *realip, "is connected via the " + *gateway + " WebIRC gateway"); else diff --git a/src/modules/m_chanhistory.cpp b/src/modules/m_chanhistory.cpp index e7b43ab05..62b275f36 100644 --- a/src/modules/m_chanhistory.cpp +++ b/src/modules/m_chanhistory.cpp @@ -2,7 +2,7 @@ * InspIRCd -- Internet Relay Chat Daemon * * Copyright (C) 2018 linuxdaemon <linuxdaemon.irc@gmail.com> - * Copyright (C) 2013, 2017-2020 Sadie Powell <sadie@witchery.services> + * Copyright (C) 2013, 2017-2021 Sadie Powell <sadie@witchery.services> * Copyright (C) 2013 Daniel Vassdal <shutter@canternet.org> * Copyright (C) 2012-2015, 2018 Attila Molnar <attilamolnar@hush.com> * Copyright (C) 2012, 2019 Robby <robby@chatbelgie.be> @@ -211,18 +211,20 @@ class ModuleChanHistory void OnUserPostMessage(User* user, const MessageTarget& target, const MessageDetails& details) override { + if (target.type != MessageTarget::TYPE_CHANNEL || target.status) + return; + std::string ctcpname; - if ((target.type == MessageTarget::TYPE_CHANNEL) && (target.status == 0) && (!details.IsCTCP(ctcpname) || irc::equals(ctcpname, "ACTION"))) - { - Channel* c = target.Get<Channel>(); - HistoryList* list = historymode.ext.get(c); - if (list) - { - list->lines.push_back(HistoryItem(user, details)); - if (list->lines.size() > list->maxlen) - list->lines.pop_front(); - } - } + if (details.IsCTCP(ctcpname) && !irc::equals(ctcpname, "ACTION")) + return; + + HistoryList* list = historymode.ext.get(target.Get<Channel>()); + if (!list) + return; + + list->lines.push_back(HistoryItem(user, details)); + if (list->lines.size() > list->maxlen) + list->lines.pop_front(); } void OnPostJoin(Membership* memb) override diff --git a/src/modules/m_check.cpp b/src/modules/m_check.cpp index 5897caa0f..d585c0d17 100644 --- a/src/modules/m_check.cpp +++ b/src/modules/m_check.cpp @@ -3,7 +3,7 @@ * * Copyright (C) 2020 Matt Schatz <genius3000@g3k.solutions> * Copyright (C) 2013-2016 Attila Molnar <attilamolnar@hush.com> - * Copyright (C) 2013, 2017-2020 Sadie Powell <sadie@witchery.services> + * Copyright (C) 2013, 2017-2021 Sadie Powell <sadie@witchery.services> * Copyright (C) 2012, 2019 Robby <robby@chatbelgie.be> * Copyright (C) 2010 Craig Edwards <brain@inspircd.org> * Copyright (C) 2009-2010 Daniel De Graaf <danieldg@inspircd.org> @@ -146,6 +146,15 @@ class CommandCheck : public Command return ret; } + static std::string GetAllowedOperOnlySnomasks(LocalUser* user) + { + std::string ret; + for (unsigned char sno = 'A'; sno <= 'z'; ++sno) + if (ServerInstance->SNO.IsSnomaskUsable(sno) && user->HasSnomaskPermission(sno)) + ret.push_back(sno); + return ret; + } + public: CommandCheck(Module* parent) : Command(parent,"CHECK", 1) @@ -208,6 +217,7 @@ class CommandCheck : public Command { context.Write("chanmodeperms", GetAllowedOperOnlyModes(loctarg, MODETYPE_CHANNEL)); context.Write("usermodeperms", GetAllowedOperOnlyModes(loctarg, MODETYPE_USER)); + context.Write("snomaskperms", GetAllowedOperOnlySnomasks(loctarg)); context.Write("commandperms", targuser->oper->AllowedOperCommands.ToString()); context.Write("permissions", targuser->oper->AllowedPrivs.ToString()); } diff --git a/src/modules/m_connectban.cpp b/src/modules/m_connectban.cpp index bba54811a..95c077eef 100644 --- a/src/modules/m_connectban.cpp +++ b/src/modules/m_connectban.cpp @@ -3,7 +3,7 @@ * * Copyright (C) 2019 Matt Schatz <genius3000@g3k.solutions> * Copyright (C) 2014 Googolplexed <googol@googolplexed.net> - * Copyright (C) 2013, 2017-2020 Sadie Powell <sadie@witchery.services> + * Copyright (C) 2013, 2017-2021 Sadie Powell <sadie@witchery.services> * Copyright (C) 2012-2014 Attila Molnar <attilamolnar@hush.com> * Copyright (C) 2012, 2019 Robby <robby@chatbelgie.be> * Copyright (C) 2009-2010 Daniel De Graaf <danieldg@inspircd.org> diff --git a/src/modules/m_connflood.cpp b/src/modules/m_connflood.cpp index 3e730ac69..23aa178ea 100644 --- a/src/modules/m_connflood.cpp +++ b/src/modules/m_connflood.cpp @@ -1,7 +1,7 @@ /* * InspIRCd -- Internet Relay Chat Daemon * - * Copyright (C) 2013, 2018-2020 Sadie Powell <sadie@witchery.services> + * Copyright (C) 2013, 2018-2021 Sadie Powell <sadie@witchery.services> * Copyright (C) 2012-2013 Attila Molnar <attilamolnar@hush.com> * Copyright (C) 2012 Robby <robby@chatbelgie.be> * Copyright (C) 2009 Daniel De Graaf <danieldg@inspircd.org> @@ -37,6 +37,16 @@ class ModuleConnFlood : public Module time_t first; std::string quitmsg; + static bool IsExempt(LocalUser* user) + { + // E-lined and already banned users shouldn't be hit. + if (user->exempt || user->quitting) + return true; + + // Users in an exempt class shouldn't be hit. + return user->GetClass() && !user->GetClass()->config->getBool("useconnflood", true); + } + public: ModuleConnFlood() : Module(VF_VENDOR, "Throttles excessive connections to the server.") @@ -61,7 +71,7 @@ class ModuleConnFlood : public Module ModResult OnUserRegister(LocalUser* user) override { - if (user->exempt) + if (IsExempt(user)) return MOD_RES_PASSTHRU; time_t next = ServerInstance->Time(); diff --git a/src/modules/m_dnsbl.cpp b/src/modules/m_dnsbl.cpp index b58b8bdc2..545a315cf 100644 --- a/src/modules/m_dnsbl.cpp +++ b/src/modules/m_dnsbl.cpp @@ -3,7 +3,7 @@ * * Copyright (C) 2018-2020 Matt Schatz <genius3000@g3k.solutions> * Copyright (C) 2018-2019 linuxdaemon <linuxdaemon.irc@gmail.com> - * Copyright (C) 2013, 2016-2020 Sadie Powell <sadie@witchery.services> + * Copyright (C) 2013, 2017-2021 Sadie Powell <sadie@witchery.services> * Copyright (C) 2013, 2015-2016 Adam <Adam@anope.org> * Copyright (C) 2012-2016 Attila Molnar <attilamolnar@hush.com> * Copyright (C) 2012, 2018 Robby <robby@chatbelgie.be> diff --git a/src/modules/m_globalload.cpp b/src/modules/m_globalload.cpp index 03b83654d..fa4d3eded 100644 --- a/src/modules/m_globalload.cpp +++ b/src/modules/m_globalload.cpp @@ -1,13 +1,13 @@ /* * InspIRCd -- Internet Relay Chat Daemon * - * Copyright (C) 2013, 2017-2018, 2020 Sadie Powell <sadie@witchery.services> + * Copyright (C) 2013, 2017-2018, 2020-2021 Sadie Powell <sadie@witchery.services> * Copyright (C) 2012, 2019 Robby <robby@chatbelgie.be> * Copyright (C) 2012, 2014-2016 Attila Molnar <attilamolnar@hush.com> * Copyright (C) 2009-2010 Daniel De Graaf <danieldg@inspircd.org> + * Copyright (C) 2009 Robin Burchell <robin+git@viroteck.net> * Copyright (C) 2007-2008, 2010 Craig Edwards <brain@inspircd.org> * Copyright (C) 2007-2008 Dennis Friis <peavey@inspircd.org> - * Copyright (C) 2007, 2009 Robin Burchell <robin+git@viroteck.net> * Copyright (C) 2007 John Brooks <special@inspircd.org> * * This file is part of InspIRCd. InspIRCd is free software: you can diff --git a/src/modules/m_httpd_config.cpp b/src/modules/m_httpd_config.cpp index b3a779f5b..a42fec8ea 100644 --- a/src/modules/m_httpd_config.cpp +++ b/src/modules/m_httpd_config.cpp @@ -1,8 +1,7 @@ /* * InspIRCd -- Internet Relay Chat Daemon * - * Copyright (C) 2019 linuxdaemon <linuxdaemon.irc@gmail.com> - * Copyright (C) 2013, 2017-2018 Sadie Powell <sadie@witchery.services> + * Copyright (C) 2013, 2017-2018, 2020 Sadie Powell <sadie@witchery.services> * Copyright (C) 2013, 2015 Attila Molnar <attilamolnar@hush.com> * Copyright (C) 2012 Robby <robby@chatbelgie.be> * Copyright (C) 2009-2010 Daniel De Graaf <danieldg@inspircd.org> diff --git a/src/modules/m_httpd_stats.cpp b/src/modules/m_httpd_stats.cpp index fe7377c2c..c18c8c960 100644 --- a/src/modules/m_httpd_stats.cpp +++ b/src/modules/m_httpd_stats.cpp @@ -5,7 +5,7 @@ * Copyright (C) 2018 Matt Schatz <genius3000@g3k.solutions> * Copyright (C) 2016 Johanna A <johanna-a@users.noreply.github.com> * Copyright (C) 2013-2016 Attila Molnar <attilamolnar@hush.com> - * Copyright (C) 2013, 2017, 2019 Sadie Powell <sadie@witchery.services> + * Copyright (C) 2013, 2017, 2019-2020 Sadie Powell <sadie@witchery.services> * Copyright (C) 2012 Robby <robby@chatbelgie.be> * Copyright (C) 2009 Uli Schlachter <psychon@inspircd.org> * Copyright (C) 2009 Daniel De Graaf <danieldg@inspircd.org> diff --git a/src/modules/m_ircv3_batch.cpp b/src/modules/m_ircv3_batch.cpp index 64cfe5e88..01d3384e9 100644 --- a/src/modules/m_ircv3_batch.cpp +++ b/src/modules/m_ircv3_batch.cpp @@ -1,7 +1,7 @@ /* * InspIRCd -- Internet Relay Chat Daemon * - * Copyright (C) 2018-2019 Sadie Powell <sadie@witchery.services> + * Copyright (C) 2018-2020 Sadie Powell <sadie@witchery.services> * Copyright (C) 2018 Attila Molnar <attilamolnar@hush.com> * * This file is part of InspIRCd. InspIRCd is free software: you can diff --git a/src/modules/m_ircv3_ctctags.cpp b/src/modules/m_ircv3_ctctags.cpp index 72897ce05..6f452431d 100644 --- a/src/modules/m_ircv3_ctctags.cpp +++ b/src/modules/m_ircv3_ctctags.cpp @@ -2,7 +2,7 @@ * InspIRCd -- Internet Relay Chat Daemon * * Copyright (C) 2019 linuxdaemon <linuxdaemon.irc@gmail.com> - * Copyright (C) 2018-2020 Sadie Powell <sadie@witchery.services> + * Copyright (C) 2018-2021 Sadie Powell <sadie@witchery.services> * * This file is part of InspIRCd. InspIRCd is free software: you can * redistribute it and/or modify it under the terms of the GNU General Public @@ -234,15 +234,26 @@ class CommandTagMsg : public Command if (parameters[0][0] == '$') return HandleServerTarget(user, parameters); - // If the message begins with a status character then look it up. + // If the message begins with one or more status characters then look them up. const char* target = parameters[0].c_str(); - PrefixMode* pmh = ServerInstance->Modes.FindPrefix(target[0]); - if (pmh) - target++; + PrefixMode* targetpfx = NULL; + for (PrefixMode* pfx; (pfx = ServerInstance->Modes.FindPrefix(target[0])); ++target) + { + // We want the lowest ranked prefix specified. + if (!targetpfx || pfx->GetPrefixRank() < targetpfx->GetPrefixRank()) + targetpfx = pfx; + } + + if (!target[0]) + { + // The target consisted solely of prefix modes. + user->WriteNumeric(ERR_NORECIPIENT, "No recipient given"); + return CmdResult::FAILURE; + } // The target is a channel name. if (*target == '#') - return HandleChannelTarget(user, parameters, target, pmh); + return HandleChannelTarget(user, parameters, target, targetpfx); // The target is a nickname. return HandleUserTarget(user, parameters); diff --git a/src/modules/m_ldapoper.cpp b/src/modules/m_ldapoper.cpp index d50b9664c..68577155f 100644 --- a/src/modules/m_ldapoper.cpp +++ b/src/modules/m_ldapoper.cpp @@ -1,7 +1,8 @@ /* * InspIRCd -- Internet Relay Chat Daemon * - * Copyright (C) 2017-2020 Sadie Powell <sadie@witchery.services> + * Copyright (C) 2020 Christos Triantafyllidis <ctria@users.noreply.github.com> + * Copyright (C) 2018-2020 Sadie Powell <sadie@witchery.services> * Copyright (C) 2014, 2018 Attila Molnar <attilamolnar@hush.com> * Copyright (C) 2013-2014 Adam <Adam@anope.org> * diff --git a/src/modules/m_mlock.cpp b/src/modules/m_mlock.cpp index 9eb461ce0..75892bced 100644 --- a/src/modules/m_mlock.cpp +++ b/src/modules/m_mlock.cpp @@ -4,7 +4,7 @@ * Copyright (C) 2013, 2017 Sadie Powell <sadie@witchery.services> * Copyright (C) 2012, 2019 Robby <robby@chatbelgie.be> * Copyright (C) 2012, 2014-2015 Attila Molnar <attilamolnar@hush.com> - * Copyright (C) 2012 William Pitcock <nenolod@dereferenced.org> + * Copyright (C) 2012 Ariadne Conill <ariadne@dereferenced.org> * * This file is part of InspIRCd. InspIRCd is free software: you can * redistribute it and/or modify it under the terms of the GNU General Public diff --git a/src/modules/m_namesx.cpp b/src/modules/m_namesx.cpp index cc025ca27..301f81c37 100644 --- a/src/modules/m_namesx.cpp +++ b/src/modules/m_namesx.cpp @@ -2,7 +2,7 @@ * InspIRCd -- Internet Relay Chat Daemon * * Copyright (C) 2019 linuxdaemon <linuxdaemon.irc@gmail.com> - * Copyright (C) 2013, 2018-2020 Sadie Powell <sadie@witchery.services> + * Copyright (C) 2013, 2018-2021 Sadie Powell <sadie@witchery.services> * Copyright (C) 2012-2016 Attila Molnar <attilamolnar@hush.com> * Copyright (C) 2012, 2019 Robby <robby@chatbelgie.be> * Copyright (C) 2009-2010 Daniel De Graaf <danieldg@inspircd.org> @@ -28,12 +28,14 @@ #include "modules/isupport.h" #include "modules/names.h" #include "modules/who.h" +#include "modules/whois.h" class ModuleNamesX : public Module , public ISupport::EventListener , public Names::EventListener , public Who::EventListener + , public Whois::LineEventListener { private: Cap::Capability cap; @@ -44,6 +46,7 @@ class ModuleNamesX , ISupport::EventListener(this) , Names::EventListener(this) , Who::EventListener(this) + , Whois::LineEventListener(this) , cap(this, "multi-prefix") { } @@ -103,6 +106,50 @@ class ModuleNamesX numeric.GetParams()[flag_index].append(prefixes, 1, std::string::npos); return MOD_RES_PASSTHRU; } + + ModResult OnWhoisLine(Whois::Context& whois, Numeric::Numeric& numeric) override + { + if (numeric.GetNumeric() != RPL_WHOISCHANNELS || !cap.IsEnabled(whois.GetSource())) + return MOD_RES_PASSTHRU; + + // :testnet.inspircd.org 319 test Sadie :#test ~#inspircd + if (numeric.GetParams().size() < 2 || numeric.GetParams().back().empty()) + return MOD_RES_PASSTHRU; + + std::stringstream newchannels; + irc::spacesepstream channelstream(numeric.GetParams().back()); + for (std::string channel; channelstream.GetToken(channel); ) + { + size_t hashpos = channel.find('#'); + if (!hashpos || hashpos == std::string::npos) + { + // The entry is malformed or the user has no privs. + newchannels << channel << ' '; + continue; + } + + Channel* chan = ServerInstance->FindChan(channel.substr(hashpos)); + if (!chan) + { + // Should never happen. + newchannels << channel << ' '; + continue; + } + + Membership* memb = chan->GetUser(whois.GetTarget()); + if (!memb) + { + // Should never happen. + newchannels << channel << ' '; + continue; + } + + newchannels << memb->GetAllPrefixChars() << chan->name << ' '; + } + + numeric.GetParams().back() = newchannels.str(); + return MOD_RES_PASSTHRU; + } }; MODULE_INIT(ModuleNamesX) diff --git a/src/modules/m_override.cpp b/src/modules/m_override.cpp index b0b7ba1ca..521a008cb 100644 --- a/src/modules/m_override.cpp +++ b/src/modules/m_override.cpp @@ -1,6 +1,7 @@ /* * InspIRCd -- Internet Relay Chat Daemon * + * Copyright (C) 2020 satmd <satmd@users.noreply.github.com> * Copyright (C) 2017 B00mX0r <b00mx0r@aureus.pw> * Copyright (C) 2017 Adam <Adam@anope.org> * Copyright (C) 2016 Sheogorath <sheogorath@shivering-isles.com> diff --git a/src/modules/m_pbkdf2.cpp b/src/modules/m_pbkdf2.cpp index 006e0a8a1..bde142382 100644 --- a/src/modules/m_pbkdf2.cpp +++ b/src/modules/m_pbkdf2.cpp @@ -3,8 +3,8 @@ * * Copyright (C) 2018, 2020 Sadie Powell <sadie@witchery.services> * Copyright (C) 2018 linuxdaemon <linuxdaemon.irc@gmail.com> + * Copyright (C) 2014, 2020 Daniel Vassdal <shutter@canternet.org> * Copyright (C) 2014, 2016 Attila Molnar <attilamolnar@hush.com> - * Copyright (C) 2014 Daniel Vassdal <shutter@canternet.org> * * This file is part of InspIRCd. InspIRCd is free software: you can * redistribute it and/or modify it under the terms of the GNU General Public diff --git a/src/modules/m_permchannels.cpp b/src/modules/m_permchannels.cpp index 031fc512e..17f7783a9 100644 --- a/src/modules/m_permchannels.cpp +++ b/src/modules/m_permchannels.cpp @@ -2,7 +2,7 @@ * InspIRCd -- Internet Relay Chat Daemon * * Copyright (C) 2014 Justin Crawford <Justasic@Gmail.com> - * Copyright (C) 2013-2014, 2017-2019 Sadie Powell <sadie@witchery.services> + * Copyright (C) 2013-2014, 2017-2020 Sadie Powell <sadie@witchery.services> * Copyright (C) 2013-2014, 2016 Attila Molnar <attilamolnar@hush.com> * Copyright (C) 2012, 2019 Robby <robby@chatbelgie.be> * Copyright (C) 2012, 2014 Adam <Adam@anope.org> diff --git a/src/modules/m_repeat.cpp b/src/modules/m_repeat.cpp index 3b79890db..0f78821cc 100644 --- a/src/modules/m_repeat.cpp +++ b/src/modules/m_repeat.cpp @@ -1,6 +1,7 @@ /* * InspIRCd -- Internet Relay Chat Daemon * + * Copyright (C) 2021 iwalkalone <iwalkalone69@gmail.com> * Copyright (C) 2019 Robby <robby@chatbelgie.be> * Copyright (C) 2018-2019 linuxdaemon <linuxdaemon.irc@gmail.com> * Copyright (C) 2018 Matt Schatz <genius3000@g3k.solutions> diff --git a/src/modules/m_sanick.cpp b/src/modules/m_sanick.cpp index 229f0919d..a82875799 100644 --- a/src/modules/m_sanick.cpp +++ b/src/modules/m_sanick.cpp @@ -5,7 +5,7 @@ * Copyright (C) 2012-2014, 2016 Attila Molnar <attilamolnar@hush.com> * Copyright (C) 2012, 2019 Robby <robby@chatbelgie.be> * Copyright (C) 2010 Craig Edwards <brain@inspircd.org> - * Copyright (C) 2009-2010 Daniel De Graaf <danieldg@inspircd.org> + * Copyright (C) 2009 Daniel De Graaf <danieldg@inspircd.org> * Copyright (C) 2007-2008 Robin Burchell <robin+git@viroteck.net> * Copyright (C) 2007, 2009 Dennis Friis <peavey@inspircd.org> * diff --git a/src/modules/m_sha1.cpp b/src/modules/m_sha1.cpp index c6fa7c21d..d4cdd9696 100644 --- a/src/modules/m_sha1.cpp +++ b/src/modules/m_sha1.cpp @@ -1,7 +1,7 @@ /* * InspIRCd -- Internet Relay Chat Daemon * - * Copyright (C) 2017 Sadie Powell <sadie@witchery.services> + * Copyright (C) 2017, 2020 Sadie Powell <sadie@witchery.services> * Copyright (C) 2016 Attila Molnar <attilamolnar@hush.com> * * This file is part of InspIRCd. InspIRCd is free software: you can diff --git a/src/modules/m_shun.cpp b/src/modules/m_shun.cpp index ce5399b57..91882fc66 100644 --- a/src/modules/m_shun.cpp +++ b/src/modules/m_shun.cpp @@ -4,7 +4,7 @@ * Copyright (C) 2019 Matt Schatz <genius3000@g3k.solutions> * Copyright (C) 2018 linuxdaemon <linuxdaemon.irc@gmail.com> * Copyright (C) 2017-2018 B00mX0r <b00mx0r@aureus.pw> - * Copyright (C) 2013, 2017-2018, 2020 Sadie Powell <sadie@witchery.services> + * Copyright (C) 2013, 2017-2018, 2020-2021 Sadie Powell <sadie@witchery.services> * Copyright (C) 2012-2013, 2015-2016 Attila Molnar <attilamolnar@hush.com> * Copyright (C) 2012, 2018-2019 Robby <robby@chatbelgie.be> * Copyright (C) 2012 Jens Voss <DukePyrolator@anope.org> diff --git a/src/modules/m_spanningtree/capab.cpp b/src/modules/m_spanningtree/capab.cpp index b3a664cb6..04df62a1f 100644 --- a/src/modules/m_spanningtree/capab.cpp +++ b/src/modules/m_spanningtree/capab.cpp @@ -2,7 +2,7 @@ * InspIRCd -- Internet Relay Chat Daemon * * Copyright (C) 2019 linuxdaemon <linuxdaemon.irc@gmail.com> - * Copyright (C) 2014, 2017-2019 Sadie Powell <sadie@witchery.services> + * Copyright (C) 2014, 2017-2020 Sadie Powell <sadie@witchery.services> * Copyright (C) 2014 Daniel Vassdal <shutter@canternet.org> * Copyright (C) 2012-2016 Attila Molnar <attilamolnar@hush.com> * Copyright (C) 2012 Robby <robby@chatbelgie.be> diff --git a/src/modules/m_spanningtree/misccommands.cpp b/src/modules/m_spanningtree/misccommands.cpp index 95a479f3d..81819748e 100644 --- a/src/modules/m_spanningtree/misccommands.cpp +++ b/src/modules/m_spanningtree/misccommands.cpp @@ -1,7 +1,7 @@ /* * InspIRCd -- Internet Relay Chat Daemon * - * Copyright (C) 2018-2019 Sadie Powell <sadie@witchery.services> + * Copyright (C) 2018-2020 Sadie Powell <sadie@witchery.services> * Copyright (C) 2013 Attila Molnar <attilamolnar@hush.com> * * This file is part of InspIRCd. InspIRCd is free software: you can diff --git a/src/modules/m_spanningtree/override_map.cpp b/src/modules/m_spanningtree/override_map.cpp index 3be35e9ef..68d1f637c 100644 --- a/src/modules/m_spanningtree/override_map.cpp +++ b/src/modules/m_spanningtree/override_map.cpp @@ -1,6 +1,7 @@ /* * InspIRCd -- Internet Relay Chat Daemon * + * Copyright (C) 2020 Matt Schatz <genius3000@g3k.solutions> * Copyright (C) 2017 B00mX0r <b00mx0r@aureus.pw> * Copyright (C) 2016, 2018-2020 Sadie Powell <sadie@witchery.services> * Copyright (C) 2014 Adam <Adam@anope.org> diff --git a/src/modules/m_spanningtree/svsnick.cpp b/src/modules/m_spanningtree/svsnick.cpp index 19066eede..6d06c4d4a 100644 --- a/src/modules/m_spanningtree/svsnick.cpp +++ b/src/modules/m_spanningtree/svsnick.cpp @@ -1,7 +1,7 @@ /* * InspIRCd -- Internet Relay Chat Daemon * - * Copyright (C) 2018-2019 Sadie Powell <sadie@witchery.services> + * Copyright (C) 2018-2020 Sadie Powell <sadie@witchery.services> * Copyright (C) 2013-2016 Attila Molnar <attilamolnar@hush.com> * Copyright (C) 2012 Robby <robby@chatbelgie.be> * Copyright (C) 2009-2010 Daniel De Graaf <danieldg@inspircd.org> diff --git a/src/modules/m_sslinfo.cpp b/src/modules/m_sslinfo.cpp index b542fb580..3f43e146b 100644 --- a/src/modules/m_sslinfo.cpp +++ b/src/modules/m_sslinfo.cpp @@ -3,12 +3,11 @@ * * Copyright (C) 2020 Matt Schatz <genius3000@g3k.solutions> * Copyright (C) 2019 linuxdaemon <linuxdaemon.irc@gmail.com> - * Copyright (C) 2013, 2017-2020 Sadie Powell <sadie@witchery.services> + * Copyright (C) 2013, 2017-2021 Sadie Powell <sadie@witchery.services> * Copyright (C) 2012-2016 Attila Molnar <attilamolnar@hush.com> * Copyright (C) 2012 Robby <robby@chatbelgie.be> * Copyright (C) 2010 Adam <Adam@anope.org> * Copyright (C) 2009-2010 Daniel De Graaf <danieldg@inspircd.org> - * Copyright (C) 2008 Robin Burchell <robin+git@viroteck.net> * Copyright (C) 2007 Dennis Friis <peavey@inspircd.org> * Copyright (C) 2006-2007, 2009-2010 Craig Edwards <brain@inspircd.org> * diff --git a/src/socket.cpp b/src/socket.cpp index 6a2d6f743..fe5de8847 100644 --- a/src/socket.cpp +++ b/src/socket.cpp @@ -3,7 +3,7 @@ * * Copyright (C) 2019 linuxdaemon <linuxdaemon.irc@gmail.com> * Copyright (C) 2014 Attila Molnar <attilamolnar@hush.com> - * Copyright (C) 2013, 2017-2020 Sadie Powell <sadie@witchery.services> + * Copyright (C) 2013, 2017-2021 Sadie Powell <sadie@witchery.services> * Copyright (C) 2013 Daniel Vassdal <shutter@canternet.org> * Copyright (C) 2012 Robby <robby@chatbelgie.be> * Copyright (C) 2009-2011 Daniel De Graaf <danieldg@inspircd.org> diff --git a/src/socketengines/socketengine_epoll.cpp b/src/socketengines/socketengine_epoll.cpp index f4406bc7b..83042d886 100644 --- a/src/socketengines/socketengine_epoll.cpp +++ b/src/socketengines/socketengine_epoll.cpp @@ -4,8 +4,8 @@ * Copyright (C) 2014-2015 Attila Molnar <attilamolnar@hush.com> * Copyright (C) 2014, 2016 Adam <Adam@anope.org> * Copyright (C) 2013, 2017, 2019 Sadie Powell <sadie@witchery.services> - * Copyright (C) 2012 William Pitcock <nenolod@dereferenced.org> * Copyright (C) 2012 Robby <robby@chatbelgie.be> + * Copyright (C) 2012 Ariadne Conill <ariadne@dereferenced.org> * Copyright (C) 2009-2010 Daniel De Graaf <danieldg@inspircd.org> * Copyright (C) 2008 Thomas Stagner <aquanight@inspircd.org> * Copyright (C) 2007-2008 Dennis Friis <peavey@inspircd.org> diff --git a/src/usermanager.cpp b/src/usermanager.cpp index 7deefacd2..7b976966f 100644 --- a/src/usermanager.cpp +++ b/src/usermanager.cpp @@ -4,7 +4,7 @@ * Copyright (C) 2019 iwalkalone <iwalkalone69@gmail.com> * Copyright (C) 2019 Matt Schatz <genius3000@g3k.solutions> * Copyright (C) 2013-2016, 2018 Attila Molnar <attilamolnar@hush.com> - * Copyright (C) 2013, 2018-2019 Sadie Powell <sadie@witchery.services> + * Copyright (C) 2013, 2018-2020 Sadie Powell <sadie@witchery.services> * Copyright (C) 2013, 2015 Adam <Adam@anope.org> * Copyright (C) 2013 Daniel Vassdal <shutter@canternet.org> * Copyright (C) 2012, 2019 Robby <robby@chatbelgie.be> diff --git a/src/users.cpp b/src/users.cpp index 8779ba358..bd99c234d 100644 --- a/src/users.cpp +++ b/src/users.cpp @@ -4,7 +4,7 @@ * Copyright (C) 2019 linuxdaemon <linuxdaemon.irc@gmail.com> * Copyright (C) 2018 systocrat <systocrat@outlook.com> * Copyright (C) 2018 Dylan Frank <b00mx0r@aureus.pw> - * Copyright (C) 2013, 2016-2020 Sadie Powell <sadie@witchery.services> + * Copyright (C) 2013, 2016-2021 Sadie Powell <sadie@witchery.services> * Copyright (C) 2013 Daniel Vassdal <shutter@canternet.org> * Copyright (C) 2013 ChrisTX <xpipe@hotmail.de> * Copyright (C) 2013 Adam <Adam@anope.org> |
