Skip to content

Commit

Permalink
Update for the changes in v4.3.0.
Browse files Browse the repository at this point in the history
  • Loading branch information
SadieCat committed Sep 7, 2024
1 parent 34eb62a commit 6a39265
Show file tree
Hide file tree
Showing 9 changed files with 240 additions and 36 deletions.
1 change: 0 additions & 1 deletion docs/3/configuration/_whowas.yml

This file was deleted.

29 changes: 29 additions & 0 deletions docs/3/configuration/_whowas.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
name: whowas
description: |-
The `<whowas>` tag defines the configuration of the `/WHOWAS` database. This tag can only be defined once.
attributes:
- name: groupsize
type: Number
required: false
default: '10'
description: |-
The maximum number of `/WHOWAS` entries for a nickname. If set to 0 then `/WHOWAS` is disabled.
- name: maxgroups
type: Number
required: false
default: '10240'
description: |-
The maximum number of `/WHOWAS` nickname groups. If set to 0 then `/WHOWAS` is disabled.
- name: maxkeep
type: Duration
required: false
default: 1h
description: |-
The period of time to keep `/WHOWAS` records for.
details: ""
example: |-
```xml
<whowas groupsize="10"
maxgroups="100000"
maxkeep="3d">
```
1 change: 0 additions & 1 deletion docs/3/modules/showfile.yml

This file was deleted.

74 changes: 74 additions & 0 deletions docs/3/modules/showfile.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
name: showfile

description: |-
This module adds support for showing the contents of files to users when they execute a command.
configuration:
- name: showfile
description: |-
The `<showfile>` tag defines a command to show the contents of a file. This tag can be defined as many times as required.
attributes:
- name: name
type: Text
required: true
default: null
description: |-
The name of the command that users should execute to receive this file.
- name: file
type: Text
required: true
default: null
description: |-
The file path or name of the field in `&lt;files&gt;` / `&lt;execfiles&gt;` to use when reading the file.
- name: method
type: Text
required: false
default: numeric
description: |-
The method to use to send the message to the user.
- name: endnumeric
type: Number
required: false
default: 309
description: |-
If the method field is set to numeric then the numeric to use to stop the response.
- name: endtext
type: Text
required: false
default: End of COMMAND
description: |-
If the method field is set to numeric then the message to use in the stopping numeric.
- name: intronumeric
type: Number
required: false
default: 308
description: |-
If the method field is set to numeric then the numeric to use to start the response.
- name: introtext
type: Text
required: false
default: Showing COMMAND
description: |-
If the method field is set to numeric then the message to use in the starting numeric.
- name: textnumeric
type: Number
required: false
default: 232
description: |-
If the method field is set to numeric then the numeric to use to show the response.
details: |-
The method field should be set to one of the following values:
Value | Description
------- | -----------
numeric | Send the message using the specified numerics.
msg | Send the message using `PRIVMSG`.
notice | Send the message using `NOTICE`.
example: |-
```xml
<showfile name="RULES"
file="rules.txt"
introtext="Server rules:"
endtext="End of server rules.">
```
38 changes: 38 additions & 0 deletions docs/4/_motd.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
<!-- This file contains a page fragment. Any changes will affect all pages that include it. -->

Escape | Example (raw) | Example (formatted) | Description
----------------- | --------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | -----------
`\b` | `foo \bbar\b baz` | foo <b>bar</b> baz | Toggles whether text should be bold.
`\c<fg>[,<bg>]` | `foo \c03bar\c baz`<br>`foo \c11,04bar\c baz` | foo <f style="color:green">bar</f> baz<br>foo <f style="background-color:red;color:cyan">bar</f> baz | Toggles the foreground and/or background color of text.
`\c{<fg>[,<bg>]}` | `foo \c{green}bar\c baz`<br>`foo \c{cyan,red}bar\c baz` | foo <f style="color:green">bar</f> baz<br>foo <f style="background-color:red;color:cyan">bar</f> baz | **New in v4.3.0!** Toggles the foreground and/or background color of text using color names (see below).
`\h<fg>[,<bg>]` | `foo \hea74dcbar\h baz`<br>`foo \h613583,2ec27ebar\h baz` | foo <f style="color:#ea74dc">bar</f> baz<br>foo <f style="background-color:#2ec27e;color:#613583">bar</f> baz | Toggles the foreground and/or background color of text using hex colors (not widely supported).
`\i` | `foo \ibar\i baz` | foo <i>bar</i> baz | Toggles whether text should be italicised.
`\m` | `foo \mbar\m baz` | foo <code style="color:#222">bar</code> baz | Toggles whether text should be monospace (not widely supported).
`\r` | `foo \c{blue,orange}bar\r baz` | foo <f style="background-color:orange;color:blue">bar</f><f style="background-color:blue;color:orange"> baz</f> | Swaps the foreground and background color.
`\s` | `foo \sbar\s baz` | foo <del>bar</del> baz | Toggles whether text should be struckthrough (not widely supported).
`\u` | `foo \ubar\u baz` | foo <u>bar</u> baz | Toggles whether text should be underlined.
`\x` | `foo \b\ibar\x baz` | foo <b><i>bar</i></b> baz | Terminates any previously specified formatting.

If using named colors they are converted to raw color codes as follows:

Code | Name | Example
---- | ----------- | -------
00 | white | <div style="background-color:white;border:1px solid black;border:1px solid black">&nbsp;</div>
01 | black | <div style="background-color:black;border:1px solid black">&nbsp;</div>
02 | blue | <div style="background-color:blue;border:1px solid black">&nbsp;</div>
03 | green | <div style="background-color:green;border:1px solid black">&nbsp;</div>
04 | red | <div style="background-color:red;border:1px solid black">&nbsp;</div>
05 | brown | <div style="background-color:brown;border:1px solid black">&nbsp;</div>
06 | magenta | <div style="background-color:magenta;border:1px solid black">&nbsp;</div>
07 | orange | <div style="background-color:orange;border:1px solid black">&nbsp;</div>
08 | yellow | <div style="background-color:yellow;border:1px solid black">&nbsp;</div>
09 | light green | <div style="background-color:lightgreen;border:1px solid black">&nbsp;</div>
10 | cyan | <div style="background-color:cyan;border:1px solid black">&nbsp;</div>
11 | light cyan | <div style="background-color:lightcyan;;border:1px solid black">&nbsp;</div>
12 | light blue | <div style="background-color:lightblue;border:1px solid black">&nbsp;</div>
13 | pink | <div style="background-color:pink;border:1px solid black">&nbsp;</div>
14 | grey | <div style="background-color:grey;border:1px solid black">&nbsp;</div>
15 | light grey | <div style="background-color:lightgrey;border:1px solid black">&nbsp;</div>
99 | default | *Depends on client theme*

Colors in the range 16-98 are not widely supported and do not have names. See [ircdocs](https://modern.ircdocs.horse/formatting) for more information.
66 changes: 66 additions & 0 deletions docs/4/change-log.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,72 @@ title: v4 Change Log

This page lists changes which have happened between releases.

## InspIRCd 4.3.0

<!-- TODO: ensure changes after commit 4dc6c98d986dfed9c92649f66c26926648d89702 are added to this list before release. -->

**This version of InspIRCd has not yet been released.**

- Added `<whowas:nickupdate>` to allow updating the whowas database on nick change as well as quit.

- Added support for building against yyjson to the log_json module.

- Added support for human readable colour names in MOTD files using `\c[fg-color,bg-color]`

- Added the `&dir.example;` config variable to make it easier to include example configs on system-wide installs.

- Changed command processing to check whether a command is usable before registration before the parameter count is checked .

- Changed the example `<define>` tags to be actually useful.

- Developer: added `InspIRCd::ProcessColors(std::string)` and deprecated the vector overload.

- Developer: added formatting overloads for `{Membership,User}::WriteNotice`.

- Developer: added the `Numeric::push_fmt` method to push a formatted parameter onto a numeric.

- Developer: deprecated the non-printable overload of `InspIRCd::GenRandomStr` in favour of `GenRandom`.

- Developer: refactored the `InspIRCd` and `ServerStats` types.

- Fixed `/AUTHENTICATE` being silently dropped when the user does not have the `sasl` capability or when a malformed `<trailing>` parameter is sent.

- Fixed `/WHOWAS` not showing the real server name to operators with the `services/auspex` privilege.

- Fixed `InspIRCd::StripColor` not stripping the value of hex colours.

- Fixed `InspIRCd::StripColor` stripping some legitimate non-formatting characters.

- Fixed bursting metadata between servers.

- Fixed downgrading `LMODE` messages when broadcasting to remote servers.

- Fixed downgrading `SINFO` messages when broadcasting to remote servers.

- Fixed exceptions from loggers not being handled.

- Fixed measuring the CPU load on Windows.

- Fixed retrieving database rows in the MySQL module.

- Fixed the argon2 module erroneously treating lanes as separate to threads.

- Fixed the blockcolor module blocking some legitimate non-formatting characters.

- Fixed the build when compiling with C++20 or newer.

- Made it clear that the cloak_md5 and md5 modules are deprecated.

- Reduced the memory usage of the whowas database.

- Refactored the Perl init script somewhat.

- Replaced the InspIRCd-specific `RPL_WHOWASIP` numeric with `RPL_WHOISACTUALLY`.

- Tweaked the defaults for `<whowas>` to make more sense for most networks.

- Tweaked the message for `RPL_WHOISCERTFP` to make it clear if the fingerprint is hashed using a compatibility algorithm.

### InspIRCd 4.2.0

**This version of InspIRCd was released on 2024-08-03.**
Expand Down
13 changes: 12 additions & 1 deletion docs/4/configuration/_connect.yml
Original file line number Diff line number Diff line change
Expand Up @@ -146,12 +146,22 @@ attributes:
default: 'No'
description: |-
Whether users in this class are connecting from a shared host and can be uniquely identified by their username.
- name: motd
type: Text
required: false
default: 'motd'
description: |-
The file path or name of the field in &lt;files&gt; / &lt;execfiles&gt; to use when reading the message of the day.
details: |+
!!! warning ""
The `hash` field is currently optional but will be required in the next major version of InspIRCd when using password authentication.
{! 4/modules/_hash_table.md !}
The file specified in the motd field can contain the following formatting codes:
{! 4/_motd.md !}
example: |-
Denies connections to clients connecting from 3ffe::0/32:
Expand Down Expand Up @@ -185,7 +195,8 @@ example: |-
softsendq="8192"
threshold="10"
timeout="10"
uniqueusername="no">
uniqueusername="no"
motd="motd">
```
#### Special Notes
Expand Down
16 changes: 12 additions & 4 deletions docs/4/configuration/_whowas.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,19 +11,27 @@ attributes:
- name: maxgroups
type: Number
required: false
default: '10240'
default: '10000 *(since v4.3.0)*<br>10240 *(before v4.3.0)*'
description: |-
The maximum number of `/WHOWAS` nickname groups. If set to 0 then `/WHOWAS` is disabled.
- name: maxkeep
type: Duration
required: false
default: 1h
default: '7d *(since v4.3.0)*<br>1h *(before v4.3.0)*'
description: |-
The period of time to keep `/WHOWAS` records for.
- name: nickupdate
type: Boolean
required: false
default: 'Yes'
added: 4.3.0
description: |-
Whether to update the `/WHOWAS` database on nick change as well as quit.
details: ""
example: |-
```xml
<whowas groupsize="10"
maxgroups="100000"
maxkeep="3d">
maxgroups="10000"
maxkeep="7d"
nickupdate="yes">
```
28 changes: 0 additions & 28 deletions docs/4/modules/argon2.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,12 +23,6 @@ configuration:
default: 3
description: |-
The time hardness of the Argon2 algorithms.
- name: lanes
type: Number
required: false
default: 1
description: |-
The number of parallel chains to run at once.
- name: threads
type: Number
required: false
Expand All @@ -52,7 +46,6 @@ configuration:
```xml
<argon2 memory="128MB"
iterations="3"
lanes="1"
threads="1"
length="32"
saltlength="16">
Expand All @@ -73,12 +66,6 @@ configuration:
default: '*See &lt;argon2:iterations&gt;*'
description: |-
The time hardness of the Argon2d algorithm.
- name: lanes
type: Number
required: false
default: '*See &lt;argon2:lanes&gt;*'
description: |-
The number of parallel chains to run at once.
- name: threads
type: Number
required: false
Expand All @@ -102,7 +89,6 @@ configuration:
```xml
<argon2d memory="128MB"
iterations="3"
lanes="1"
threads="1"
length="32"
saltlength="16">
Expand All @@ -123,12 +109,6 @@ configuration:
default: '*See &lt;argon2:iterations&gt;*'
description: |-
The time hardness of the Argon2i algorithm.
- name: lanes
type: Number
required: false
default: '*See &lt;argon2:lanes&gt;*'
description: |-
The number of parallel chains to run at once.
- name: threads
type: Number
required: false
Expand All @@ -152,7 +132,6 @@ configuration:
```xml
<argon2i memory="128MB"
iterations="3"
lanes="1"
threads="1"
length="32"
saltlength="16">
Expand All @@ -173,12 +152,6 @@ configuration:
default: '*See &lt;argon2:iterations&gt;*'
description: |-
The time hardness of the Argon2id algorithm.
- name: lanes
type: Number
required: false
default: '*See &lt;argon2:lanes&gt;*'
description: |-
The number of parallel chains to run at once.
- name: threads
type: Number
required: false
Expand All @@ -202,7 +175,6 @@ configuration:
```xml
<argon2id memory="128MB"
iterations="3"
lanes="1"
threads="1"
length="32"
saltlength="16">
Expand Down
6 changes: 5 additions & 1 deletion docs/4/modules/opermotd.yml
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,11 @@ configuration:
default: 'Yes'
description: |-
Whether to send the server operator message of the day to server operators when they log into their server operator account.
details: ""
details: |-
The file specified in the motd field can contain the following formatting codes:
{! 4/_motd.md !}
example: |-
Shows an oper MOTD to Sadie when they log into their server operator account:
Expand Down
4 changes: 4 additions & 0 deletions docs/4/modules/showfile.yml
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,10 @@ configuration:
description: |-
If the method field is set to numeric then the numeric to use to show the response.
details: |-
The file specified in the file field can contain the following formatting codes:
{! 4/_motd.md !}
The method field should be set to one of the following values:
Value | Description
Expand Down

0 comments on commit 6a39265

Please sign in to comment.