1
0
mirror of https://github.com/unrealircd/unrealircd.git synced 2026-07-06 06:33:12 +02:00
Commit Graph

96 Commits

Author SHA1 Message Date
Ron Nazarov 4999ae408c Add TLINE command
Suggested by PeGaSuS in https://bugs.unrealircd.org/view.php?id=6174
2022-11-18 08:53:36 +00:00
Valerie Pond 1a4b701776 SVSLOGIN: Move to its own file
Moved SVSLOGIN command to its own file.
2022-11-14 07:43:43 +00:00
Bram Matthys 853f0685ed Split off big chunk of websocket module into websocket_common module.
And load the websocket_common module by default (which is just an API).
2022-06-19 13:13:33 +00:00
Bram Matthys 60c83b4ba1 Move connect-flood and max-unknown-connections-per-ip into their own module.
These deal with set::anti-flood::everyone::connect-flood and
set::max-unknown-connections-per-ip respectively.

This adds a new hook HOOKTYPE_ACCEPT, that is mostly meant for internal
usage by UnrealIRCd. Most module coders will want to use the existing
hook HOOKTYPE_HANDSHAKE instead.

This also gets of check_banned() which is now spread over the individual
modules (eg: checking banned is done in tkl on HOOKTYPE_ACCEPT and
HOOKTYPE_IP_CHANGE).
2022-06-19 13:13:33 +00:00
Bram Matthys f1a18ce37e Communicate "creationtime" of users. Right now this info is only known
locally, as the only timestamp regarding users that is communicated across
the network is about the "last nick change" ("has this nick since...").
2022-05-13 12:27:21 +02:00
Valerie Pond 61f7dd746e Add IRCv3 +draft/channel-context (#205)
https://github.com/delthas/ircv3-specifications/blob/feature-channel/client-tags/channel-context.md
2022-05-13 07:39:41 +02:00
Bram Matthys 50e5d91c79 Add SVSO command which services can use to make someone IRCOp.
This existed in UnrealIRCd 3.2.x but was later removed when
switching to the new operclass system.
Requested by Valware in https://bugs.unrealircd.org/view.php?id=6041

Syntax: SVSO <uid|nick> <oper account> <operclass> <class> <modes> <snomask> <vhost>
All these parameters need to be set, you cannot leave any of them out,
HOWEVER some can be set to "-" to skip setting them, this is true for:
<class>, <modes>, <snomask>, <vhost>

In UnrealIRCd the <operclass> will be prefixed by "services:" if not already
present. It is up to you to include or omit it.

If you want to set any swhoises you need to use the SWHOIS s2s command,
other than that this command basically does everything for you,
in fact it uses the same code as the OPER command does.
Most of the "user is now ircop" code has been moved out of cmd_oper() to
a new function make_oper() that is called by both cmd_oper() and cmd_svso().

This function also changes the hook HOOKTYPE_LOCAL_OPER:
It no longer passes a ConfigItem_oper struct, since we can't do that for
remote opers. Instead it passes oper name and oper class.
The complete definition is now:
int hooktype_local_oper(Client *client, int add, const char *oper_block, const char *operclass);
2022-05-07 18:53:59 +02:00
Bram Matthys 889bcd99dc Actually build and load module for unrealircd.org/geoip-tag by default. 2022-05-01 14:11:24 +02:00
Bram Matthys ed1b334f90 Add ::url-refresh <time> option and don't bother downloading GeoIP DB
from unrealircd.org if it is less than 14 days old.

If the file was up to date then it already never fully downloaded it,
thanks to hashing and receiving the "304 Not Modified" HTTP header.
But with this url-refresh it won't even do the HTTP(S) request at all.
2021-11-07 13:25:06 +01:00
westor 0698b04057 Update extban names in modules.default.conf (#175) 2021-11-03 08:54:42 +01:00
Bram Matthys 4ea6c82a5d Move loading of geoip_classic to modules.default.conf
You can still use blacklist-module if you don't want to load it.

In future versions the exact config stuff will likely be different, but
this is just to get more test expore / make things Just work for now (tm)
2021-10-30 10:04:10 +02:00
Bram Matthys 32aa4dc625 Metadata can stay a 3rd party module for now. 2021-10-10 09:39:55 +02:00
Bram Matthys 1af3f23b9f Default config no longer loads a default cloaking module, since the
admin needs to make a choice.
Also update example conf to load the new cloaking module (cloak_sha256)
and update the text there to require at a key of 80 characters.
2021-09-26 08:36:01 +02:00
Bram Matthys 10ec3c164a Rename the old cloaking module to "cloak_md5" (UnrealIRCd 3.2.1 - 5.2.X)
It was used from July 2004 and served us well it seems.
2021-09-25 11:23:14 +02:00
Bram Matthys ce5917e0d9 Expose operlogin and operclass via moddata so they can be seen in WHOIS
and used for auditting purposes across servers (assuming the servers
itself can be trusted).
This is done via the 'operlogin' module which is loaded by default.
Obviously for opers of U5 and below this information is not available.

This also changes the HOOKTYPE_LOCAL_OPER hook to include oper block info:
-int hooktype_local_oper(Client *client, int add);
+int hooktype_local_oper(Client *client, int add, ConfigItem_oper *oper_block);
2021-09-25 10:28:36 +02:00
Bram Matthys 1d73db560c Get rid of modules/snomasks directory, since the snomask module API is gone.
(IRCOps can set any snomask dynamically now)
2021-09-24 10:10:27 +02:00
Bram Matthys 0439e4f89d Move wallops module from "wallops" to "usermodes/wallops"
(which includes the command)
2021-09-23 19:25:38 +02:00
Bram Matthys 4cea88645c Modularize member modes (vhoaq).
Still need to clean up a bit after this, but it passes all tests :)
2021-09-13 18:44:18 +02:00
k4be 502def9401 Add extended-monitor (work in progress) 2021-08-24 19:42:38 +02:00
k4be d40853b71c Add basic metadata module (no moderation) 2021-08-22 21:17:19 +02:00
Bram Matthys 1a19de2de9 Move channel mode +r to module chanmodes/isregistered 2021-08-22 12:19:07 +02:00
Bram Matthys 57ec565051 Move channel mode +t to module chanmodes/topiclimit
TODO: move code from "topic" module to here, some hook call.
2021-08-22 12:09:53 +02:00
Bram Matthys 6dd539d760 Move channel mode +m to module chanmodes/moderated
(and nearly all the code related to it)
2021-08-22 12:01:54 +02:00
Bram Matthys 24f73c28e4 Move channel mode +l to module chanmodes/limit
(and all the code related to it)
2021-08-22 11:45:08 +02:00
Bram Matthys 1533c6431e Move channel mode +n to module chanmodes/noexternalmsgs
(and all the code related to it)
2021-08-22 11:22:33 +02:00
Bram Matthys 8066c13876 Move +s/+p to chanmodes/secret and chanmodes/private.
To be honest, the modules don't do much other than handling the
mode stuff, but.. we can look at that again later.
2021-08-22 11:11:26 +02:00
Bram Matthys 295b3505ef Move channel mode +i to module chanmodes/inviteonly 2021-08-22 10:37:37 +02:00
Bram Matthys c403a47daf Move channel mode +k to module chanmodes/key 2021-08-22 10:06:51 +02:00
Bram Matthys 24dec75576 Rename the current cloaking module to 'oldcloak' 2021-08-21 14:32:49 +02:00
Bram Matthys fc6c52db93 Add extbans/country: +b ~country:UK 2021-08-17 16:12:06 +02:00
Bram Matthys 2ea75dfbdb Add geoip_base module, which sets "geo_country" if a geo provider
module is able to lookup the IP and return a country.

Also consistently use geoip_ and GEOIP_ prefixes.
2021-08-17 15:26:29 +02:00
Bram Matthys 11167924df Add tls_cipher module which stores/retrieves the TLS cipher of all users. 2021-08-16 14:16:13 +02:00
Bram Matthys 5f31f7a5cc Add unreal_server_compat module which rewrites named extbans in
server to server traffic to be letter extbans.
Yeah this is a tad ugly, but the alternative was worse, see
header of the file for the full story.

Module is loaded by default (obviously).

Still to do: only do this for non-U6 servers (add some PROTOCTL)

And probably alter clean_ban_mask because I don't like the
magic on NULL client at the moment.
2021-08-14 16:45:18 +02:00
Bram Matthys e2be262088 Some more SSL/TLS -> TLS references (for admins, in modules.default.conf) 2021-08-10 09:19:44 +02:00
Bram Matthys ab180b086c Rename recently added mtag: s2s/json -> unrealircd.org/json-log 2021-08-07 17:17:37 +02:00
Bram Matthys 0739af0812 Add initial remote logging support via SLOG (S2S cmd).
Also call the log::destination "remote" instead of "global".
2021-08-07 14:38:06 +02:00
k4be 5c9b7cf15f Add MONITOR command and fix numerous problems with WATCH. 2021-07-21 20:23:07 +02:00
k4be 0700640330 Create "watch-backend" module that will serve for all watch-like commands. 2021-07-20 20:26:31 +02:00
Bram Matthys 148ea98307 Load chathistory module by default 2021-06-04 08:46:09 +02:00
Bram Matthys 78ca5ecc3e Add "draft/bot" message tag to messages from +B clients.
As mentioned in https://ircv3.net/specs/extensions/bot-mode
2021-05-28 10:36:38 +02:00
Bram Matthys 845a582d76 Add support for +draft/reply and load the module by default.
See https://ircv3.net/specs/client-tags/reply for the draft.

Can be used by clients to indicate to which message they are writing
a reply. This can be especially useful for bots, to indicate that
a response belongs to a user request, eg a !trigger.
2021-05-28 09:14:40 +02:00
Bram Matthys 4725b5547b Mention correct tag names (which also happen to be URLs) for
unrealircd.org/userip and unrealircd.org/userhost.
Reported by Nav|C.
2021-03-26 15:14:25 +01:00
Bram Matthys 53d23038e5 Support for security groups and new +b ~G:unknown-users:
* There are two security groups by default: known-users and unknown-users.
  See https://www.unrealircd.org/docs/Security-group_block
* New extended ban ~G:securitygroupname, with the typical usage being
  MODE #chan +b ~G:unknown-users, which will ban all users from the
  channel that are not identified to services and have a reputation
  score below 25.
2020-12-30 12:42:56 +01:00
k4bek4be 0aa5fb6e7c Add CLIENTTAGDENY module. (#108)
It implements the current version of CLIENTTAGDENY isupport token, as defined by IRCv3.
2020-05-16 10:04:33 +02:00
Bram Matthys 90485453b7 Load typing-indicator module by default (IRCv3 +draft/typing) 2020-05-06 10:56:03 +02:00
Bram Matthys 4e3817b4d5 Initial version of set::anti-flood::target-flood 2020-05-05 20:27:53 +02:00
Bram Matthys b7e2cbea0f Split off existing account-notify functionality to account-notify module
now that we have a hook, so the functionality of it is nicely contained
in a separate module.
2020-02-09 10:48:23 +01:00
Bram Matthys febc4a45f3 Updated labeled-response: drop the draft/ prefix now that the specification
is ratified and also fix a serious flood bug in the implementation.
Oh, and move the loadmodule line to the correct place in modules.default.conf.
2020-02-08 08:09:53 +01:00
Bram Matthys 9211e105eb Add unrealircd.org/userhost message tag. Similar to previous, so IRCOps
can see the real host of a user in each message.
2020-02-02 18:12:07 +01:00
Bram Matthys ed6a2cf3e3 Add new message tag "unrealircd.org/userip" which will communicate
the user@ip of users to IRCOps if the message-tags capability is
enabled. Idea from westor. This is work in progress.
2020-02-02 15:49:21 +01:00