1
0
mirror of https://github.com/unrealircd/unrealircd.git synced 2026-07-08 20:03:14 +02:00
Commit Graph

9123 Commits

Author SHA1 Message Date
Bram Matthys 7c988e04e0 Make self-test of "./unrealircd module" check if ./Config has been ran.
That is: it checks if the Makefile is there to avoid a mysterious
"No rule to make target 'custommodule'" error message.
2022-05-04 19:19:11 +02:00
Bram Matthys 71da780490 Module manager: stop on compile failure (fix return value) and also fix
some text (coming from a too broad mass replace).
2022-05-04 18:27:54 +02:00
Bram Matthys 96413cb9f2 Update README
1) Give an exact link to https://www.unrealircd.org/docs/UnrealIRCd_releases
which describes the supported versions and EOL stuff in more detail.
2) Make clear that we have better instructions on the wiki with regards to installation
and that users should use that one instead (the ones in the README are really meant as fall-back)
3) Some nicer formatting here and there (minor)
2022-05-03 09:38:34 +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
westor a346b4a3e9 Add geoip-tag module (#197)
This module will work the same way as `userip-tag` or `userhost-tag` modules work now, the 90% of this code is part from these modules.
It will help especially the irc bots (AdiIRC/mIRC) to detect the geoip country code directly and easy when someone is talking on a channel and take actions, i hope this will help on most people.

Thanks @Valware for testing it out.

Short Example: `@unrealircd.org/geoip=GR;account=tester;msgid=tPTHDgymv9pgdGdYkI3WBd;time=2022-03-30T16:34:26.780Z :tester!Username@3765DB68:3AE9CB6C:B0540131:IP PRIVMSG #Test :test message`
2022-05-01 14:05:34 +02:00
alicetries 2018502e74 Fix various log messages which had missing $expansions (#198) 2022-05-01 13:52:45 +02:00
musk fcc580017f Update help.es.conf (#199)
Add new snomasks for U6.
2022-05-01 13:48:05 +02:00
musk 153a01ec60 Add example.es.conf (#200) 2022-05-01 13:45:40 +02:00
Bram Matthys b1daf5b832 Fix crash when hideserver module is loaded but LINKS is not blocked. 2022-05-01 13:36:37 +02:00
Bram Matthys 3451919b06 Fix issue with duplicate entries in the +b/+e/+I list of +P channels.
This was caused by the transition from letter extbans (eg ~a) to
named extbans (eg ~account) and a combination of the bug fix in 6.0.2
(60a70acd86) and the 'channeldb' module
not checking for duplicates while reading the database.

Reported by PeGaSuS in https://bugs.unrealircd.org/view.php?id=6091
2022-04-18 08:51:23 +02:00
Bram Matthys a9de2696d4 Allocated too much memory for the watchTable in the 6.0.3 change.
Now back to 256K (sizeof Watch *) instead of 1024K (sizeof Watch).
2022-04-08 08:53:23 +02:00
Bram Matthys c8b8177728 Update example conf to put kline-address value in single quotes.
Indirectly suggested in https://bugs.unrealircd.org/view.php?id=6086
reported by Balthazar.
2022-04-08 08:43:24 +02:00
Bram Matthys 1327fe9bfe Bump version to 6.0.4-git 2022-04-08 08:42:22 +02:00
Bram Matthys cedd23ae9c ** UnrealIRCd 6.0.3 ** 2022-04-01 16:27:18 +02:00
Bram Matthys 707510c1ce Fix crash in WATCH backend after doing /REHASH.
It often takes a while for the actual crash to occur but eventually an
attempt would be made to access inaccessible memory of the previously
freed .so module.

Reported by and traced with the help of both Wick and Krstarica.
2022-04-01 09:39:22 +02:00
Bram Matthys 479e9213ae Fix warning about "sending text to self" reading unitialized memory from
the stack and putting it in the log message.

Bug found internally, was not reported by anyone.
2022-04-01 09:18:14 +02:00
Bram Matthys aba8eb7a2b Fix OOB write in packet sending routine.
Bug found internally, was not reported by anyone.
2022-04-01 09:17:11 +02:00
Bram Matthys 28c1b9cef9 Show operclass in "/STATS o".
Suggested by fo (w/patch) in https://bugs.unrealircd.org/view.php?id=6003
2022-03-23 12:54:27 +01:00
Bram Matthys 640abd9df2 Update relnotes
[skip ci]
2022-03-23 09:11:10 +01:00
Bram Matthys 955d5addb5 Update release notes a bit
[skip ci]
2022-03-23 09:03:32 +01:00
Bram Matthys 488b3e3a6f Fix "unrealircdctl spkifp" usage info on Windows.
On Linux we still show the usage info as for "unrealircd" (not unrealircdctl)
since on Linux we have the "unrealircd" script that manages all this and
"unrealircdctl" is not really meant to be called directly by end-users.
2022-03-23 08:53:20 +01:00
Bram Matthys 89fe8e9227 SVSMOTD lines are now shown in the MOTD-on-connect, unless a shortmotd is used.
What is a SVSMOTD? The SVSMOTD are MOTD lines that are shown at the end of
an existing MOTD. These lines are added remotely through services.

Previously the SVSMOTD lines were never shown in the MOTD-on-connect, which
was a bug. We were only supposed to hide it if a short motd is in use.

Reported by Valware in https://bugs.unrealircd.org/view.php?id=6070
2022-03-23 08:06:23 +01:00
Bram Matthys ba1a88124a Re-indent src/modules/list.c 2022-03-23 07:24:29 +01:00
Bram Matthys da84223217 Make LIST option T<xx and T>xx always available, IOTW remove the need for
defining LIST_USE_T which was never done anywhere.

Reported by progval in https://github.com/unrealircd/unrealircd/pull/193
2022-03-23 07:15:40 +01:00
Val Lorentz f6ecbc6e63 Flip semantics of <xx and >xx in ELIST C and ELIST T (#194)
The spec <https://datatracker.ietf.org/doc/html/draft-hardy-irc-isupport-00#section-4.8>
is a little unclear on the semantics, and Unreal interprets 'C<val' as
a request for all chans created before <val> minutes ago, ditto.

This is a legitimate interpretation, but I think the other on makes more
sense (ie. that 'C<val' means all chans created less than <val> minutes
ago).

Additionally, the documentation for T did not match the implementation
before this commit.

Before this commit, Unreal was consistent with Hybrid/Plexus4 on ELIST C.

After this commit, Unreal will be consistent with Charybdis/Solanum,
InspIRCd, and ircu2 (and Hybrid/Plexus4 on ELIST T).
2022-03-23 07:09:37 +01:00
Robert Scheck a38c2ba491 Require PCRE2 >= 10.00 again (because of commit 329fd07f3a) (#196) 2022-03-22 06:44:02 +01:00
Robert Scheck 28a11a9121 Add missing options to unrealircdctl usage (#195) 2022-03-22 06:42:32 +01:00
Bram Matthys daa0c11f28 Update release notes a bit
[skip ci]
2022-03-18 07:56:57 +01:00
Bram Matthys f169a3cf77 Fix channel ops unable to -h someone, even though they could +h.
Reported by Jaka in https://bugs.unrealircd.org/view.php?id=6077 and
Valware and buayadarat in https://bugs.unrealircd.org/view.php?id=6078

This commit also makes the halfop rules for +h/-h match the ones in U5:

Previously in 6.0.0 - 6.0.2 it was:
* halfops can set +h on others
* halfops cannot set -h on others
* halfops can set -h on themselves

Now in 6.0.3+ it matches 5.x behavior again:
* halfops cannot set -h or +h on others
* halfops can set -h on themselves
2022-03-18 07:26:53 +01:00
Bram Matthys 95549220dd Update wording in release notes a bit
[skip ci]
2022-01-31 11:24:40 +01:00
Bram Matthys ef6ea6ee32 When using "RESTART" the newly started IRCd could possibly not log or been
missing other functionality.
Reported by DarthGandalf in https://bugs.unrealircd.org/view.php?id=5918

The cause was that all fd's were closed, including 0/1/2. We now reopen
those and map them to /dev/null, like we do later again.
2022-01-31 10:24:13 +01:00
Bram Matthys 155b38374a Update release notes
[skip ci]
2022-01-31 09:43:07 +01:00
Bram Matthys 09351beae7 Change default logging format on disk (text, non-json) to include
the server name. Nowadays we receive and log lines from remote servers
so without this extra information it can be unclear where events
(eg: problems) are happening which can be rather confusing.
2022-01-31 09:39:00 +01:00
Bram Matthys 252b856afe Bump version to 6.0.3-git as this is git / work in progress. 2022-01-31 09:36:48 +01:00
Bram Matthys e0cfbe5821 When using remote includes with certain setups, one could get weird
rehash errors such as error: set::geoip-classic::ipv6-database:
cannot open file "/home/xxxx/unrealircd/data/https://www.unrealircd...
and possibly even a crash.
The initial boot of UnrealIRCd, however, was always fine, this only
happened when rehashing.
It also seemed to occur more with ftp:// includes or at least with
multiple parallel includes, that may or may not have different or
more latency. In any case it seemed to affect some remote includes
setups semi-consistently, and others not at all.

The root cause was a complex code path causing a read-after-free.
We now use a simplified code path which can no longer cause this.
The only downside is that rehashing may be delayed up to an extra
250ms (quarter of a second), but that should hardly be noticeable,
if at all.

Issue reported by Bun-Bun.
2022-01-31 08:30:05 +01:00
Bram Matthys 8fe44698df When using the "let unrealircd compile cURL" option, now no longer use c-ares,
as it complicates things too much. The c-ares build options that we use in
UnrealIRCd cause curl not to recongize c-ares, and the other way around is not
good either. Also, self-compiled ("unrealircd shipped") c-ares may not be
used/required by main unrealircd (thus rm'd) while it is still needed by
self-compiled curled. Blehh, what a mess.

Now we simply don't compile curl with c-ares and rely on cURL to enable async
DNS support via system c-ares or via the another way, with the use of threads,
which is standard in curl now for many years and should work on most, if not
all platforms.
If this is somehow problematic for you then install libcurl/libcurl-dev(el)
on your system itself, via your package manager or other means.
2022-01-30 08:01:38 +01:00
Bram Matthys fa15ea2567 ./unrealircd hot-patch: now that we have rehash output and status codes
in 6.0.2+ we can inform the user whether the rehash actually succeeded
or not. This was already shown in the output, but we now also change
the last few lines of output to make very clear if the rehash failed
that the currently running UnrealIRCd is not patched.
2022-01-29 14:57:09 +01:00
Bram Matthys 752ab1abf8 Fix case where people don't use ./unrealircd hot-patch but use something
like /home/xyz/unrealircd/unrealircd hot-patch instead. In other words,
if the current working directory is not the location of the unrealircd
script. Then calling ./unrealircd rehash, so the last step in the patching
process, would fail. Reported by k4be.
[skip ci]
2022-01-29 14:50:01 +01:00
Bram Matthys 17913151ed Fix ./unrealircd hot-patch: if a patch does not cleanly apply then
don't apply it. The dry-run code was missing the most obvious case..
2022-01-29 14:40:32 +01:00
Bram Matthys 6a521e24f7 Strip trailing slash if present in paths since it can confuse some
parts of the code later on, in particular the upgrade code.
Eg: a base path of "/home/xyz/unrealircd/"

Side note: this also assumes no path is / (root), which seems a
reasonable assumption.
2022-01-29 14:29:23 +01:00
Bram Matthys 0877a5dbbe Make ./curlinstall use the same options when building c-ares as the
./configure script from us. That is, using the correct private lib dir
and using --disable-tests and so on.

Should fix a bug on CentOS where c-ares could not be built due to
the test suite requirements from c-ares, reported by Bun-Bun.
2022-01-29 14:14:50 +01:00
Bram Matthys 29fd2e772a ** UnrealIRCd 6.0.2 ** 2022-01-28 17:02:19 +01:00
Bram Matthys cd3b50d2f8 Update ./unrealircd usage info. 2022-01-28 08:57:47 +01:00
Bram Matthys f650239b4f Add "./unrealircd module-status" to show currently loaded modules,
including version, description, author, flags. The output is
pretty much identical to "MODULE -all" on IRC as IRCOp.

Useful for the future if you want to verify a module has been
upgraded from the command line.
2022-01-28 08:45:20 +01:00
Bram Matthys a07db0fffd BuildBot: Give all the build tests a bit more time 2022-01-17 10:43:02 +01:00
Bram Matthys 82bb7567da Update release notes 2022-01-17 09:07:57 +01:00
Bram Matthys 83e74893da Relookup reputation and geo information when client IP changes due to WEBIRC
or another type of proxy request.
This fixes a problem where ban user { } or except ban { } is not working
for ~country:XX when the request comes via a WEBIRC or other proxy.
Reported by CaoS in https://bugs.unrealircd.org/view.php?id=6058
It should also fix security-group being incorrect for ~security-group bans
or exempts.
2022-01-17 08:09:15 +01:00
Bram Matthys d4f09f8fed HOOKTYPE_*_CHANGED -> HOOKTYPE_*_CHANGE to be a bit more consistent with
the rest of the hooks, most of which do not use the past tense.
Only affects HOOKTYPE_USERHOST_CHANGE / HOOKTYPE_REALNAME_CHANGE.

This does, however, make it inconsistent with the userhost_changed()
call, though :D.
2022-01-17 08:02:18 +01:00
Bram Matthys f3d827c577 Add HOOKTYPE_IP_CHANGE and call it when the IP address changes.
Eg for WEBIRC or other proxy.

This does not yet fix any problem, it just changes the way things are
called. More to follow.
2022-01-17 07:55:45 +01:00
i c1ec164a65 fix flat-map display 2022-01-08 03:46:09 +03:00