summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README.md61
-rw-r--r--docs/LICENSE.txt (renamed from docs/COPYING)0
-rw-r--r--docs/conf/helpop-full.conf.example111
-rw-r--r--docs/conf/modules.conf.example19
-rw-r--r--src/coremods/core_who.cpp1
-rw-r--r--src/dynamic.cpp2
6 files changed, 130 insertions, 64 deletions
diff --git a/README.md b/README.md
index 6e6110696..8c491cda9 100644
--- a/README.md
+++ b/README.md
@@ -1,28 +1,49 @@
-### Important Notice
+## About
-The `master` branch contains the latest development version. If you are running
-a server then you probably want the `insp20` branch. You can obtain this from
-the [releases](https://github.com/inspircd/inspircd/releases) page or by running
-`git checkout insp20` if you are installing via Git.
+InspIRCd is a modular C++ Internet Relay Chat (IRC) server for UNIX-like and Windows systems.
-### About
+## Supported Platforms
-InspIRCd is a modular Internet Relay Chat (IRC) server written in C++ for Linux,
-BSD, Windows and Mac OS X systems which was created from scratch to be stable,
-modern and lightweight.
+InspIRCd is supported on on the following platforms:
-As InspIRCd is one of the few IRC servers written from scratch, it avoids a
-number of design flaws and performance issues that plague other more established
-projects, such as UnrealIRCd, while providing the same level of feature parity.
+- Most recent BSD variants using the Clang or GCC compilers and the GNU toolchains (Make, etc).
-InspIRCd is one of only a few IRC servers to provide a tunable number of
-features through the use of an advanced but well documented module system. By
-keeping core functionality to a minimum we hope to increase the stability,
-security and speed of InspIRCd while also making it customisable to the needs of
-many different users.
+- Most recent Linux distributions using the Clang or GCC compilers and the GNU toolchain.
-### Links
+- The most recent three major releases of macOS using the AppleClang, Clang, or GCC (*not* LLVM-GCC) compilers and the GNU toolchains.
-* [Website](http://inspircd.org)
+- Windows 7 or newer using the MSVC 14 (Visual Studio 2015) compiler and CMake 2.8 or newer.
+
+Alternate platforms and toolchains may also work but are not officially supported by the InspIRCd team. Generally speaking if you are using a reasonably modern UNIX-like system you should be able to build InspIRCd on it.
+
+If you encounter any bugs then [please file an issue](https://github.com/inspircd/inspircd/issues/new).
+
+## Installation
+
+**The `master` branch contains the latest development version. If you are running a server then you probably want the `insp20` branch. You can obtain this from [the releases page](https://github.com/inspircd/inspircd/releases) or by running `git checkout insp20` if you are installing via Git.**
+
+Most InspIRCd users running a UNIX-like system build from source. A guide about how to do this is available on [the InspIRCd wiki](https://wiki.inspircd.org/Installation_From_Source).
+
+Building from source on Windows is generally not recommended but [a guide is available](https://github.com/inspircd/inspircd/blob/master/win/README.txt) if you wish to do this.
+
+<!--
+TODO: uncomment this once we have binary packages for v3.
+
+If you are running on CentOS 7, Debian 7, or Windows binary packages are available from [the downloads page](https://github.com/inspircd/inspircd/releases/latest).
+
+A [Docker](https://www.docker.com) image is also available. See [the inspircd-docker repository](https://github.com/inspircd/inspircd-docker) for more information.
+-->
+
+Some distributions ship an InspIRCd package in their package managers. We generally do not recommend the use of such packages as in the past distributions have made broken modifications to InspIRCd and not kept their packages up to date with essential security updates.
+
+## License
+
+InspIRCd is licensed under [version 2 of the GNU General Public License](https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html).
+
+## External Links
+
+* [Website](https://www.inspircd.org)
+* [Documentation](https://wiki.inspircd.org)
* [GitHub](https://github.com/inspircd)
-* IRC: \#inspircd on irc.inspircd.org
+* [Support IRC channel](https://kiwiirc.com/nextclient/irc.inspircd.org:+6697/#inspircd) &mdash; \#inspircd on irc.inspircd.org
+* [Development IRC channel](https://kiwiirc.com/nextclient/irc.inspircd.org:+6697/#inspircd.dev) &mdash; \#inspircd.dev on irc.inspircd.org
diff --git a/docs/COPYING b/docs/LICENSE.txt
index 6e2ceda85..6e2ceda85 100644
--- a/docs/COPYING
+++ b/docs/LICENSE.txt
diff --git a/docs/conf/helpop-full.conf.example b/docs/conf/helpop-full.conf.example
index 20e03d64a..5705cad8e 100644
--- a/docs/conf/helpop-full.conf.example
+++ b/docs/conf/helpop-full.conf.example
@@ -226,49 +226,84 @@ given in the command and either the channel is not +t, or
you are at least a halfoperator, the channel topic will be
changed to the new one you provide.">
-<helpop key="who" value="/WHO <search pattern> [ohurmaiMplf]
+<helpop key="who" value="/WHO <pattern> [<flags>][%[<fields>[,<querytype>]]] <pattern>
-Looks up the information of users matching the range you provide.
-You may only /WHO nicknames in channels or on servers where you
-share a common channel with them, or ones which are not +i (unless
-you are an IRC operator). The search-pattern may be a special
-sequence of characters determined by the flags given below, or
-it may be one of a nickname, a channel, a hostmask, an ip address
-mask or a server mask.
+Looks up information about users matching the provided pattern. You can specify
+a flag specific pattern, a channel name, user hostname, a user server name, a
+user real name, or a user nickname. Matching users will only be included in the
+WHO response if:
+
+ 1) The specified pattern is an exact channel name that does not have the
+ private or secret channel modes set and the user does not have the invisible
+ user mode set.
+ 2) The specified pattern is an exact nickname.
+ 3) You share one or more common channels with the user.
+ 4) The user does not have the invisible user mode set.
+ 5) You are a server operator with the users/auspex privilege.
+
+If you specify any fields the response returned will be a WHOX response rather
+than a RFC 1459 WHO response.
Valid WHO Flags
---------------
-The following flags after the mask have the following effects:
-
- o Show online IRC operators matching the mask
-
- a Show all users who have an away message matching the given mask
- i Show all users who have an ident (username) matching the given mask
- p Show all users who are connected on the given port number (IRC
- operators only)
- r Show all users whose real name match the mask. When this
- flag is set it overrides the meaning of the search-pattern,
- which must contain a glob pattern intended to match the
- real name.
- m Search for all users with a given set of user modes. When
- this flag is set it overrides the meaning of the
- search-pattern, which must contain the mode sequence to
- search for, for example to find all users with +i and
- without +s, issue the command WHO +i-s m (IRC operators only)
- t Show users connected within this number of seconds
- M Show all users who have metadata attached to them with
- the given key name (IRC operators only)
-
- f Show only remote (far) users
- l Show only local users
-
- h Show real hostnames rather than masked hostnames (IRC
- operators only)
- u Unlimit the results past the maximum /who results value
- (IRC operators only)
-
-You may combine multiple flags in one WHO command except where stated in the table above.">
+The following flags use <pattern> to match against the specified user data:
+
+ A Show users who have an away message matching <pattern>.
+ a Show users who have an account name matching <pattern>.
+ h Show users who have a hostname matching <pattern>. If the 'x' modifier
+ is specified then this will match against the real hostname instead of
+ the display hostname.
+ i Show users who have an IP address matching <pattern>.
+ m Show users who have the modes listed in <pattern>. The pattern
+ should be in the same format as a mode change e.g. +ow-i (server
+ operators only).
+ n Show users who have a nickname matching <pattern>.
+ p Show users who are connected to a port in the <pattern> range (server
+ operators only).
+ r Show users who have a real name matching <pattern>.
+ s Show users who are on a server with a name matching <pattern>. If the 'x'
+ modifier is specified then this will match against the real server name
+ instead of the masked server name.
+ t Show users who have connected in the last <pattern> seconds.
+ u Show users who have an ident (username) matching <pattern>.
+
+The following flags filter users by their status:
+
+ f Only show users on remote (far) servers.
+ l Only show users on the local server.
+ o Only show server operators.
+
+The following flags modify the command output:
+
+ x Show sensitive data like real user hostnames and, when hideserver is
+ enabled, real server hostnames.
+
+You may combine one flag from the first group and multiple from the others in
+one WHO command.
+
+Valid WHO Fields
+----------------
+
+ a Include the user's account name in the response.
+ c Include the first common channel name in the response.
+ d Include the user's server distance from you in the response.
+ f Include the user's away status, oper status, and highest channel prefix
+ in the response.
+ h Include the user's hostname in the response. If the 'x' flag was
+ specified then this is the real host rather than the display host.
+ i Include the user's IP address in the response.
+ l Include the user's idle time in the response.
+ n Include the user's nickname in the response.
+ o Include the user's channel operator rank level in the response.
+ r Include the user's real name in the response.
+ s Include the user's server name in the response. If the 'x' flag was
+ specified then this is the real server name rather than the masked server
+ name.
+ t Include the query type in the response.
+ u Include the user's ident in the response.
+
+">
<helpop key="motd" value="/MOTD [<server>]
diff --git a/docs/conf/modules.conf.example b/docs/conf/modules.conf.example
index 5f219da76..1b35c4a1e 100644
--- a/docs/conf/modules.conf.example
+++ b/docs/conf/modules.conf.example
@@ -943,6 +943,8 @@
# If you choose to use the httpd module, then you will need to add
# a <bind> tag with type "httpd", and load at least one of the other
# httpd_* modules to provide pages to display.
+# <bind address="127.0.0.1" port="8067" type="httpd">
+# <bind address="127.0.0.1" port="8097" type="httpd" ssl="gnutls">
#
# You can adjust the timeout for HTTP connections below. All HTTP
# connections will be closed after (roughly) this time period.
@@ -965,13 +967,22 @@
# <httpdacl path="/*" types="blacklist" blacklist="*">
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
-# HTTP config module: Allows the configuration of the server to be
-# viewed over HTTP. Requires httpd to be loaded for it to function.
+# HTTP config module: Allows the server configuration to be viewed over
+# HTTP via the /config path. Requires the httpd module to be loaded for
+# it to function.
+#
+# IMPORTANT: This module exposes extremely sensitive information about
+# your server and users so you *MUST* protect it using a local-only
+# <bind> tag and/or the httpd_acl module. See above for details.
#<module name="httpd_config">
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
-# HTTP stats module: Provides basic stats pages over HTTP.
-# Requires httpd to be loaded for it to function.
+# HTTP stats module: Provides server statistics over HTTP via the /stats
+# path. Requires the httpd module to be loaded for it to function.
+#
+# IMPORTANT: This module exposes extremely sensitive information about
+# your server and users so you *MUST* protect it using a local-only
+# <bind> tag and/or the httpd_acl module. See above for details.
#<module name="httpd_stats">
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
diff --git a/src/coremods/core_who.cpp b/src/coremods/core_who.cpp
index 4757375c7..305733e03 100644
--- a/src/coremods/core_who.cpp
+++ b/src/coremods/core_who.cpp
@@ -346,7 +346,6 @@ bool CommandWho::MatchUser(LocalUser* source, User* user, WhoData& data)
match = InspIRCd::Match(user->nick, data.matchtext);
}
- ServerInstance->Logs->Log(MODNAME, LOG_DEBUG, "MATCH: %u", match);
return match;
}
diff --git a/src/dynamic.cpp b/src/dynamic.cpp
index f138b04d1..08564a0cd 100644
--- a/src/dynamic.cpp
+++ b/src/dynamic.cpp
@@ -96,7 +96,7 @@ void DLLManager::RetrieveLastError()
SetLastError(ERROR_SUCCESS);
err = errmsg;
#else
- char* errmsg = dlerror();
+ const char* errmsg = dlerror();
err = errmsg ? errmsg : "Unknown error";
#endif