mirror of
https://github.com/inspircd/inspircd.git
synced 2025-03-09 10:39:02 -04:00
Merge branch 'insp3' into master.
This commit is contained in:
commit
c22c7e5a99
5
.github/workflows/misspell-fixer.yml
vendored
5
.github/workflows/misspell-fixer.yml
vendored
@ -20,8 +20,9 @@ jobs:
|
||||
^./.github/workflows
|
||||
^./.mailmap
|
||||
^./vendor
|
||||
^./make/directive.pm:281:atleast
|
||||
^./make/directive.pm:.*:atleast
|
||||
^./src/modules/m_disable.cpp:119:existant
|
||||
^.*\.\(cpp\|h\).*eiter$
|
||||
ALLTIME$
|
||||
alltime$
|
||||
Alltime$\
|
||||
@ -29,7 +30,7 @@ jobs:
|
||||
- uses: sobolevn/misspell-fixer-action@master
|
||||
with:
|
||||
options: '-rvnfuRVD .'
|
||||
- uses: peter-evans/create-pull-request@v2.4.4
|
||||
- uses: peter-evans/create-pull-request@v3
|
||||
with:
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
branch: ${{ env.REF_BRANCH }}+fix-spellings-${{ env.DATE }}
|
||||
|
7
configure
vendored
7
configure
vendored
@ -6,8 +6,7 @@
|
||||
# Copyright (C) 2020 Daniel Vassdal <shutter@canternet.org>
|
||||
# Copyright (C) 2019 Matt Schatz <genius3000@g3k.solutions>
|
||||
# Copyright (C) 2019 Anatole Denis <natolumin@rezel.net>
|
||||
# Copyright (C) 2017 emerson <github@emersonveenstra.net>
|
||||
# Copyright (C) 2013-2020 Sadie Powell <sadie@witchery.services>
|
||||
# Copyright (C) 2013-2021 Sadie Powell <sadie@witchery.services>
|
||||
# Copyright (C) 2012, 2019 Robby <robby@chatbelgie.be>
|
||||
# Copyright (C) 2012 ChrisTX <xpipe@hotmail.de>
|
||||
# Copyright (C) 2010 Daniel De Graaf <danieldg@inspircd.org>
|
||||
@ -204,10 +203,10 @@ if (defined $opt_portable) {
|
||||
$config{RUNTIME_DIR} = $opt_runtime_dir // $config{DATA_DIR};
|
||||
$config{SCRIPT_DIR} = $opt_script_dir // $config{BASE_DIR};
|
||||
} elsif (defined $opt_system) {
|
||||
$config{BASE_DIR} = $opt_prefix // '/var/lib/inspircd';
|
||||
$config{BASE_DIR} = $opt_prefix // '/';
|
||||
$config{BINARY_DIR} = $opt_binary_dir // '/usr/sbin';
|
||||
$config{CONFIG_DIR} = $opt_config_dir // '/etc/inspircd';
|
||||
$config{DATA_DIR} = $opt_data_dir // '/var/inspircd';
|
||||
$config{DATA_DIR} = $opt_data_dir // '/var/lib/inspircd';
|
||||
$config{EXAMPLE_DIR} = $opt_example_dir // '/usr/share/doc/inspircd';
|
||||
$config{LOG_DIR} = $opt_log_dir // '/var/log/inspircd';
|
||||
$config{MANUAL_DIR} = $opt_manual_dir // '/usr/share/man/man1';
|
||||
|
@ -30,14 +30,14 @@ parameter for this command.
|
||||
|
||||
<helpop key="cuser" title="User Commands" value="
|
||||
ACCEPT ADMIN AWAY COMMANDS CYCLE DCCALLOW
|
||||
FPART INFO INVITE ISON JOIN KICK
|
||||
KNOCK LINKS LIST LUSERS MAP MKPASSWD
|
||||
MODE MODULES MONITOR MOTD NAMES NICK
|
||||
NOTICE OPER PART PASS PING PONG
|
||||
PRIVMSG QUIT REMOVE SERVLIST SETNAME SILENCE
|
||||
SQUERY SSLINFO STATS TBAN TIME TITLE
|
||||
TOPIC UNINVITE USER USERHOST VERSION VHOST
|
||||
WATCH WHO WHOIS WHOWAS
|
||||
FPART HEXIP INFO INVITE ISON JOIN
|
||||
KICK KNOCK LINKS LIST LUSERS MAP
|
||||
MKPASSWD MODE MODULES MONITOR MOTD NAMES
|
||||
NICK NOTICE OPER PART PASS PING
|
||||
PONG PRIVMSG QUIT REMOVE SERVLIST SETNAME
|
||||
SILENCE SQUERY SSLINFO STATS TBAN TIME
|
||||
TITLE TOPIC UNINVITE USER USERHOST VERSION
|
||||
VHOST WATCH WHO WHOIS WHOWAS
|
||||
">
|
||||
|
||||
<helpop key="squery" title="/SQUERY <target> :<message>" value="
|
||||
@ -150,6 +150,13 @@ This behaves identically to /REMOVE. /REMOVE is a built-in mIRC command
|
||||
which caused trouble for some users.
|
||||
">
|
||||
|
||||
<helpop key="hexip" title="/HEXIP <hex-ip|raw-ip>" value="
|
||||
If the specified argument is a raw IP address then respond with the
|
||||
hex encoded equivalent as if sent by an ident gateway. Otherwise, if
|
||||
the specified argument is a hex encoded IP address then respond with
|
||||
the equivalent raw IP address.
|
||||
">
|
||||
|
||||
<helpop key="silence" title="/SILENCE [(+|-)<mask> [CcdiNnPpTtx]]" value="
|
||||
A server-side ignore of the given n!u@h mask. If the optional flags field is
|
||||
specified then it must contain one or more flags which specify what kind of
|
||||
|
@ -292,6 +292,10 @@
|
||||
# This setting only has effect when the connectban module is loaded.
|
||||
#useconnectban="yes"
|
||||
|
||||
# useconnflood: Defines if users in this class should be exempt from connflood limits.
|
||||
# This setting only has effect when the connflood module is loaded.
|
||||
#useconnflood="yes"
|
||||
|
||||
# usednsbl: Defines whether or not users in this class are subject to DNSBL. Default is yes.
|
||||
# This setting only has effect when the dnsbl module is loaded.
|
||||
#usednsbl="yes"
|
||||
|
@ -8,6 +8,7 @@
|
||||
globalmax="100"
|
||||
localmax="100"
|
||||
useconnectban="no"
|
||||
useconnflood="no"
|
||||
usednsbl="no">
|
||||
|
||||
<connect name="IRCCloud (Brockwell)" parent="IRCCloud" allow="192.184.10.118">
|
||||
|
@ -3,7 +3,7 @@
|
||||
*
|
||||
* Copyright (C) 2020 Matt Schatz <genius3000@g3k.solutions>
|
||||
* Copyright (C) 2013, 2015 Attila Molnar <attilamolnar@hush.com>
|
||||
* Copyright (C) 2012-2013, 2017 Sadie Powell <sadie@witchery.services>
|
||||
* Copyright (C) 2012-2013, 2017, 2020 Sadie Powell <sadie@witchery.services>
|
||||
* Copyright (C) 2012 Robby <robby@chatbelgie.be>
|
||||
* Copyright (C) 2012 ChrisTX <xpipe@hotmail.de>
|
||||
* Copyright (C) 2011-2012 Adam <Adam@anope.org>
|
||||
|
@ -1,7 +1,7 @@
|
||||
/*
|
||||
* InspIRCd -- Internet Relay Chat Daemon
|
||||
*
|
||||
* Copyright (C) 2013-2014, 2017 Sadie Powell <sadie@witchery.services>
|
||||
* Copyright (C) 2013-2014, 2017, 2021 Sadie Powell <sadie@witchery.services>
|
||||
* Copyright (C) 2013-2014, 2016 Attila Molnar <attilamolnar@hush.com>
|
||||
*
|
||||
* This file is part of InspIRCd. InspIRCd is free software: you can
|
||||
|
@ -2,7 +2,7 @@
|
||||
* InspIRCd -- Internet Relay Chat Daemon
|
||||
*
|
||||
* Copyright (C) 2014 Attila Molnar <attilamolnar@hush.com>
|
||||
* Copyright (C) 2013, 2016 Sadie Powell <sadie@witchery.services>
|
||||
* Copyright (C) 2013, 2016, 2021 Sadie Powell <sadie@witchery.services>
|
||||
* Copyright (C) 2012 Robby <robby@chatbelgie.be>
|
||||
* Copyright (C) 2009-2010 Daniel De Graaf <danieldg@inspircd.org>
|
||||
*
|
||||
|
@ -5,7 +5,7 @@
|
||||
* Copyright (C) 2018 Chris Novakovic <chrisnovakovic@users.noreply.github.com>
|
||||
* Copyright (C) 2013-2014, 2016 Attila Molnar <attilamolnar@hush.com>
|
||||
* Copyright (C) 2013 Daniel Vassdal <shutter@canternet.org>
|
||||
* Copyright (C) 2012-2014, 2016-2020 Sadie Powell <sadie@witchery.services>
|
||||
* Copyright (C) 2012-2014, 2016-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) 2008 Thomas Stagner <aquanight@inspircd.org>
|
||||
|
@ -274,6 +274,7 @@ class CoreExport ModeHandler : public ServiceProvider
|
||||
* @return MODEACTION_ALLOW to allow the mode, or MODEACTION_DENY to prevent the mode, also see the description of 'parameter'.
|
||||
*/
|
||||
virtual ModeAction OnModeChange(User* source, User* dest, Channel* channel, std::string ¶meter, bool adding); /* Can change the mode parameter as its a ref */
|
||||
|
||||
/**
|
||||
* If your mode is a listmode, then this method will be called for displaying an item list, e.g. on MODE \#channel +modechar
|
||||
* without any parameter or other modes in the command.
|
||||
@ -290,6 +291,15 @@ class CoreExport ModeHandler : public ServiceProvider
|
||||
*/
|
||||
virtual void OnParameterMissing(User* user, User* dest, Channel* channel);
|
||||
|
||||
/** Called when a user attempts to set a mode and the parameter is invalid.
|
||||
* @param user The user issuing the mode change
|
||||
* @param targetchannel Either the channel target or NULL if changing a user mode.
|
||||
* @param targetuser Either the user target or NULL if changing a channel mode.
|
||||
* @param parameter The invalid parameter.
|
||||
*/
|
||||
virtual void OnParameterInvalid(User* user, Channel* targetchannel, User* targetuser, const std::string& parameter);
|
||||
|
||||
|
||||
/**
|
||||
* If your mode is a listmode, this method will be called to display an empty list (just the end of list numeric)
|
||||
* @param user The user issuing the command
|
||||
|
@ -1,7 +1,7 @@
|
||||
/*
|
||||
* InspIRCd -- Internet Relay Chat Daemon
|
||||
*
|
||||
* Copyright (C) 2018-2019 Sadie Powell <sadie@witchery.services>
|
||||
* Copyright (C) 2018-2021 Sadie Powell <sadie@witchery.services>
|
||||
* Copyright (C) 2015-2016, 2018 Attila Molnar <attilamolnar@hush.com>
|
||||
*
|
||||
* This file is part of InspIRCd. InspIRCd is free software: you can
|
||||
|
@ -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-2015 Attila Molnar <attilamolnar@hush.com>
|
||||
* Copyright (C) 2013, 2015-2016 Adam <Adam@anope.org>
|
||||
*
|
||||
|
@ -1,6 +1,7 @@
|
||||
/*
|
||||
* InspIRCd -- Internet Relay Chat Daemon
|
||||
*
|
||||
* Copyright (C) 2021 Sadie Powell <sadie@witchery.services>
|
||||
* Copyright (C) 2015-2016 Attila Molnar <attilamolnar@hush.com>
|
||||
*
|
||||
* This file is part of InspIRCd. InspIRCd is free software: you can
|
||||
@ -28,6 +29,22 @@ namespace Whois
|
||||
class Context;
|
||||
}
|
||||
|
||||
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
|
||||
};
|
||||
|
||||
class Whois::EventListener : public Events::ModuleEventListener
|
||||
{
|
||||
public:
|
||||
|
@ -3,7 +3,7 @@
|
||||
*
|
||||
* Copyright (C) 2017 B00mX0r <b00mx0r@aureus.pw>
|
||||
* Copyright (C) 2016 Attila Molnar <attilamolnar@hush.com>
|
||||
* Copyright (C) 2013, 2015-2018, 2020 Sadie Powell <sadie@witchery.services>
|
||||
* Copyright (C) 2013, 2015-2018, 2020-2021 Sadie Powell <sadie@witchery.services>
|
||||
* Copyright (C) 2013 Adam <Adam@anope.org>
|
||||
* Copyright (C) 2012, 2019 Robby <robby@chatbelgie.be>
|
||||
* Copyright (C) 2009 Uli Schlachter <psychon@inspircd.org>
|
||||
@ -113,6 +113,8 @@ enum
|
||||
ERR_CANNOTSENDTOCHAN = 404,
|
||||
ERR_TOOMANYCHANNELS = 405,
|
||||
ERR_WASNOSUCHNICK = 406,
|
||||
ERR_NOSUCHSERVICE = 408, // From RFC 2812.
|
||||
ERR_NORECIPIENT = 411,
|
||||
ERR_NOTEXTTOSEND = 412,
|
||||
ERR_UNKNOWNCOMMAND = 421,
|
||||
ERR_NOMOTD = 422,
|
||||
|
@ -157,7 +157,7 @@ class CoreExport UserManager
|
||||
/** Return a count of fully registered connections on the network
|
||||
* @return The number of registered users on the network
|
||||
*/
|
||||
unsigned int RegisteredUserCount() { return this->clientlist.size() - this->UnregisteredUserCount() - this->ULineCount(); }
|
||||
unsigned int RegisteredUserCount() { return this->clientlist.size() - this->UnregisteredUserCount() - this->ServiceCount(); }
|
||||
|
||||
/** Return a count of local unregistered (before NICK/USER) users
|
||||
* @return The number of local unregistered (unknown) connections
|
||||
@ -167,7 +167,7 @@ class CoreExport UserManager
|
||||
/** Return a count of users on a services servers.
|
||||
* @return The number of users on services servers.
|
||||
*/
|
||||
unsigned int ULineCount() const { return this->all_services.size(); }
|
||||
unsigned int ServiceCount() const { return this->all_services.size(); }
|
||||
|
||||
/** Return a count of local registered users
|
||||
* @return The number of registered local users
|
||||
|
@ -3,7 +3,7 @@
|
||||
# InspIRCd -- Internet Relay Chat Daemon
|
||||
#
|
||||
# Copyright (C) 2014-2015 Attila Molnar <attilamolnar@hush.com>
|
||||
# Copyright (C) 2013, 2015-2019 Sadie Powell <sadie@witchery.services>
|
||||
# Copyright (C) 2013, 2015-2019, 2021 Sadie Powell <sadie@witchery.services>
|
||||
# Copyright (C) 2012 Robby <robby@chatbelgie.be>
|
||||
# Copyright (C) 2009-2010 Daniel De Graaf <danieldg@inspircd.org>
|
||||
#
|
||||
|
@ -1,7 +1,7 @@
|
||||
#
|
||||
# InspIRCd -- Internet Relay Chat Daemon
|
||||
#
|
||||
# Copyright (C) 2014-2017, 2019-2020 Sadie Powell <sadie@witchery.services>
|
||||
# Copyright (C) 2014-2017, 2019-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
|
||||
|
@ -2,7 +2,7 @@
|
||||
# InspIRCd -- Internet Relay Chat Daemon
|
||||
#
|
||||
# Copyright (C) 2020 Nicole Kleinhoff <ilbelkyr@shalture.org>
|
||||
# Copyright (C) 2013-2020 Sadie Powell <sadie@witchery.services>
|
||||
# Copyright (C) 2013-2021 Sadie Powell <sadie@witchery.services>
|
||||
# Copyright (C) 2012 Robby <robby@chatbelgie.be>
|
||||
# Copyright (C) 2007-2008 Craig Edwards <brain@inspircd.org>
|
||||
# Copyright (C) 2007 Dennis Friis <peavey@inspircd.org>
|
||||
|
@ -1,7 +1,7 @@
|
||||
#
|
||||
# InspIRCd -- Internet Relay Chat Daemon
|
||||
#
|
||||
# Copyright (C) 2014-2017, 2019 Sadie Powell <sadie@witchery.services>
|
||||
# Copyright (C) 2014-2017, 2019-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
|
||||
|
@ -1,7 +1,7 @@
|
||||
#
|
||||
# InspIRCd -- Internet Relay Chat Daemon
|
||||
#
|
||||
# Copyright (C) 2016-2020 Sadie Powell <sadie@witchery.services>
|
||||
# Copyright (C) 2016-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
|
||||
|
@ -2,7 +2,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
|
||||
|
@ -1,7 +1,7 @@
|
||||
/*
|
||||
* InspIRCd -- Internet Relay Chat Daemon
|
||||
*
|
||||
* Copyright (C) 2014, 2016, 2018-2020 Sadie Powell <sadie@witchery.services>
|
||||
* Copyright (C) 2014, 2016, 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
|
||||
|
@ -6,9 +6,8 @@
|
||||
# Copyright (C) 2015 Steven Van Acker <steven@singularity.be>
|
||||
# Copyright (C) 2015 Attila Molnar <attilamolnar@hush.com>
|
||||
# Copyright (C) 2014 Dan Parsons <dparsons@nyip.net>
|
||||
# Copyright (C) 2013-2014, 2016-2019 Sadie Powell <sadie@witchery.services>
|
||||
# Copyright (C) 2013-2014, 2016-2021 Sadie Powell <sadie@witchery.services>
|
||||
# Copyright (C) 2012 Robby <robby@chatbelgie.be>
|
||||
# Copyright (C) 2012 Adam <Adam@anope.org>
|
||||
# Copyright (C) 2011 DjSlash <djslash@djslash.org>
|
||||
# Copyright (C) 2009-2010 Daniel De Graaf <danieldg@inspircd.org>
|
||||
# Copyright (C) 2008-2009 Robin Burchell <robin+git@viroteck.net>
|
||||
|
@ -2,7 +2,7 @@
|
||||
* InspIRCd -- Internet Relay Chat Daemon
|
||||
*
|
||||
* Copyright (C) 2016 Attila Molnar <attilamolnar@hush.com>
|
||||
* Copyright (C) 2014-2015, 2017 Sadie Powell <sadie@witchery.services>
|
||||
* Copyright (C) 2014-2015, 2017, 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
|
||||
|
@ -4,7 +4,7 @@
|
||||
#
|
||||
# Copyright (C) 2019 iwalkalone <iwalkalone69@gmail.com>
|
||||
# Copyright (C) 2014 Attila Molnar <attilamolnar@hush.com>
|
||||
# Copyright (C) 2013, 2015-2016, 2018 Sadie Powell <sadie@witchery.services>
|
||||
# Copyright (C) 2013, 2015-2016, 2018, 2021 Sadie Powell <sadie@witchery.services>
|
||||
# Copyright (C) 2012 Robby <robby@chatbelgie.be>
|
||||
# Copyright (C) 2009-2010 Daniel De Graaf <danieldg@inspircd.org>
|
||||
#
|
||||
|
@ -2,7 +2,7 @@
|
||||
#
|
||||
# InspIRCd -- Internet Relay Chat Daemon
|
||||
#
|
||||
# Copyright (C) 2012-2014, 2017-2020 Sadie Powell <sadie@witchery.services>
|
||||
# Copyright (C) 2012-2014, 2017-2021 Sadie Powell <sadie@witchery.services>
|
||||
# Copyright (C) 2012 Robby <robby@chatbelgie.be>
|
||||
# Copyright (C) 2009-2010 Daniel De Graaf <danieldg@inspircd.org>
|
||||
# Copyright (C) 2008-2009 Robin Burchell <robin+git@viroteck.net>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
*
|
||||
|
@ -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>
|
||||
|
@ -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
|
||||
};
|
||||
|
||||
|
@ -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);
|
||||
|
@ -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>
|
||||
|
@ -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);
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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
|
||||
|
@ -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.
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
11
src/mode.cpp
11
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;
|
||||
}
|
||||
|
@ -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
|
||||
|
@ -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);
|
||||
|
@ -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)
|
||||
{
|
||||
|
@ -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)
|
||||
{
|
||||
|
@ -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)
|
||||
{
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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());
|
||||
}
|
||||
|
@ -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>
|
||||
|
@ -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();
|
||||
|
@ -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>
|
||||
|
@ -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
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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
|
||||
|
@ -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);
|
||||
|
@ -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>
|
||||
*
|
||||
|
@ -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
|
||||
|
@ -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)
|
||||
|
@ -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>
|
||||
|
@ -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
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
*
|
||||
|
@ -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
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
*
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -2,7 +2,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
|
||||
|
@ -3,7 +3,7 @@
|
||||
# InspIRCd -- Internet Relay Chat Daemon
|
||||
#
|
||||
# Copyright (C) 2020 Nicole Kleinhoff <ilbelkyr@shalture.org>
|
||||
# Copyright (C) 2013-2017, 2020 Sadie Powell <sadie@witchery.services>
|
||||
# Copyright (C) 2013-2017, 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
|
||||
|
@ -2,7 +2,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
|
||||
|
@ -2,7 +2,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
|
||||
|
@ -2,7 +2,7 @@
|
||||
#
|
||||
# InspIRCd -- Internet Relay Chat Daemon
|
||||
#
|
||||
# Copyright (C) 2013-2016, 2018-2020 Sadie Powell <sadie@witchery.services>
|
||||
# Copyright (C) 2013-2016, 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
|
||||
|
@ -2,7 +2,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
|
||||
|
@ -3,7 +3,7 @@
|
||||
*
|
||||
* Copyright (C) 2020 Matt Schatz <genius3000@g3k.solutions>
|
||||
* Copyright (C) 2013-2015 Attila Molnar <attilamolnar@hush.com>
|
||||
* Copyright (C) 2013, 2015, 2018-2019 Sadie Powell <sadie@witchery.services>
|
||||
* Copyright (C) 2013, 2015, 2018-2019, 2021 Sadie Powell <sadie@witchery.services>
|
||||
* Copyright (C) 2012-2013 ChrisTX <xpipe@hotmail.de>
|
||||
* Copyright (C) 2012 Robby <robby@chatbelgie.be>
|
||||
* Copyright (C) 2011, 2014, 2019 Adam <Adam@anope.org>
|
||||
|
Loading…
x
Reference in New Issue
Block a user