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

7809 Commits

Author SHA1 Message Date
k4bek4be d533483a43 Support both +typing and +draft/typing mtags. (#109) 2020-05-16 09:57:23 +02:00
Bram Matthys 81c7e6ca05 Merge branch 'unreal50' of github.com:unrealircd/unrealircd into unreal50 2020-05-14 09:15:24 +02:00
Bram Matthys 941b745be2 Give an error when trying to place an *LINE that already exists.
Then the oper may decide if the original entry should indeed be
removed and re-added, or if (s)he should not touch it. These are
usually done by mistake anyway.
Updating existing entries by end-users was never intended and did
not work properly anyway (see bug comments). Issue reported by
Le_Coyote and armyn in https://bugs.unrealircd.org/view.php?id=5603
2020-05-14 09:13:49 +02:00
k4bek4be ec39d3c15b Remove unused message tag handlers on rehash (#106) 2020-05-13 19:19:06 +02:00
Bram Matthys 7a4832d337 Fix missing ERROR when using a @label, reported by k4be.
This had to do with the queued packet (in the labeled-response module)
not being sent because the client was freed before the
post packet hook was called.
2020-05-11 19:18:41 +02:00
Bram Matthys 893cc2db99 Update draft release notes a bit with the changes of past few days.
[skip ci]
2020-05-09 12:20:50 +02:00
Bram Matthys 8d2e05f5ef Fix crash when combining +P with a 3rd party module, or actually
any parameter channel mode module loaded after channeldb.
Reported by GaMbiTo, with help from PeGaSuS, Gottem and k4be
in https://bugs.unrealircd.org/view.php?id=5669

It is not safe to call channel mode parameter functions when
unloading modules. Makes sense I think.

We now no longer write the db on rehash, which is something i
didn't like anyway (wasted CPU cycles). The problem was that
one could not just scratch the write db call, as otherwise if
someone rehashes every minute would cause the db never to
be saved. This is because on each rehash the event to write
the db gets rescheduled to +5 minutes in the future.
We now work around that in the same way as connthrottle does.
Obviously it would be better to make the event system itself
deal with this, but that is (way) too much for now.
2020-05-09 11:58:26 +02:00
Bram Matthys 4832559642 LoadPersistentLong() called the wrong function, always raising a warning/error. 2020-05-09 11:51:59 +02:00
Bram Matthys 606a35bed0 Fix crash when using deny link::rule with oversized argument.
Reported by moody in https://bugs.unrealircd.org/view.php?id=5667
2020-05-08 14:58:49 +02:00
Bram Matthys 6a3a2530b1 Fix echo-message not working for TAGMSG. Reported by k4be. 2020-05-08 11:12:48 +02:00
Bram Matthys ae9f06ebae Fix TAGMSG in the user-to-user case being delivered to clients with
an argument too many (" :"). Reported by k4be.
2020-05-08 11:09:31 +02:00
Bram Matthys 666d5631fe Send TAGMSG only to message-tags people. Duh. 2020-05-07 10:54:38 +02:00
Bram Matthys a80364f55a Use https:// rather than http:// in an example. 2020-05-06 18:08:28 +02:00
Bram Matthys 45624ff2ab Set TARGMAX= for TAGMSG to 1 (same setting as we have for NOTICE). 2020-05-06 16:51:05 +02:00
LeCoyote 8c2df61725 Improve antimixedutf8: detect CJK and other scripts (#105) 2020-05-06 12:39:00 +02:00
Bram Matthys 98930785e5 Copy-paste error which turned NOTICEs into PRIVMSGs. -grin- 2020-05-06 11:26:39 +02:00
Bram Matthys cf2eecb0d1 Add set::anti-flood::target-flood and +draft/typing to release notes.
Again, these are still early release notes drafts.
2020-05-06 11:12:46 +02:00
Bram Matthys bf0d00c2b9 Update makefile for Windows build 2020-05-06 11:11:04 +02:00
Bram Matthys 90485453b7 Load typing-indicator module by default (IRCv3 +draft/typing) 2020-05-06 10:56:03 +02:00
Bram Matthys 31d3af22e2 Don't make channel mode +f 't' and 'm' act on TAGMSG...
otherwise people get kicked just for typing :D

We may add a new +f type later on, if there is a need for it.
2020-05-06 10:53:13 +02:00
Bram Matthys a259227424 New feature set::anti-flood::target-flood, provided by targetfloodprot module.
This limits X per Y messages for targets, regardless of sender. See docs:
https://www.unrealircd.org/docs/Set_block#set%3A%3Aanti-flood%3A%3Atarget-flood
2020-05-06 10:43:26 +02:00
Bram Matthys 2a093bb150 Moved CheckNull() to individual set::anti-flood::xx tests and
HOOK_CONFIGTEST with CONFIG_SET_ANTI_FLOOD, rather than a generic
one before processing these. Needed for set::anti-flood::target-limit.
2020-05-06 10:28:37 +02:00
Bram Matthys b8d4cf7763 Actually call moddata_free_channel(channel);
This was a FIXME item that should have been addressed earlier.
We didn't use any MODDATATYPE_CHANNEL in the core up to now so
this was overlooked. We do use it from now on, though, and it
may very well have been used in 3rd party modules already.
2020-05-06 09:04:43 +02:00
Bram Matthys 4e3817b4d5 Initial version of set::anti-flood::target-flood 2020-05-05 20:27:53 +02:00
Bram Matthys 57f524cbed Support for +draft/typing
This is the work from May 3rd.. need to commit it so i can merge the
flood protection that is related to this...
The final implementation will still need tweaking before pushed.
[skip ci]
2020-05-05 20:16:56 +02:00
k4bek4be 331134649f Add Polish translation for help.conf and update the English one (#104)
In English helpop add ELINE and extended server bans, fix some typo's....
2020-05-03 13:33:04 +02:00
Bram Matthys 166a772951 Fix except ban without type not exempting gline due to wrong character
being used ('g' instead of 'G'). Reported by DeviL.
https://bugs.unrealircd.org/view.php?id=5555
2020-05-03 09:41:32 +02:00
Bram Matthys aba3c8e53f Fix set::who-limit documentation and make IRCOps exempt from this limit.
reported by patphobos in https://bugs.unrealircd.org/view.php?id=5657
2020-04-29 16:30:24 +02:00
Bram Matthys 9c10bca2a2 Some more release note updates.
[skip ci]
2020-04-26 16:13:18 +02:00
Bram Matthys 2c703eba6e Make it possible to restrict a command to identified users only, with
no connect-delay restriction. Also remove the 'disable' option since
it is unneeded. You now simply use:
set {
    restrict-commands {
        somecommand {
        }
    }
}
...and the command is disabled.
And you add exempt-identified or exempt-reputation-score if needed.

See https://www.unrealircd.org/docs/Set_block#set%3A%3Arestrict-commands

Note that this also changes some command blocking logic, so I hope
I made no mistake there... only testing will tell.
2020-04-26 16:04:26 +02:00
Bram Matthys f5b3328103 Some more release note updates
[skip ci]
2020-04-26 15:33:05 +02:00
Bram Matthys 616820e5d8 Merge branch 'unreal50' of github.com:unrealircd/unrealircd into unreal50 2020-04-26 15:29:48 +02:00
Bram Matthys a4345d6091 Write some early release notes for 5.0.5 (won't be released soon)
[skip ci]
2020-04-26 15:29:02 +02:00
delthas 0c3b8e5d28 Fix trailing space in RPL_NAMREPLY (#100) 2020-04-26 09:00:09 +02:00
Bram Matthys ef5df81917 Merge branch 'unreal50' of github.com:unrealircd/unrealircd into unreal50 2020-04-26 08:48:56 +02:00
Bram Matthys 097903a246 Anope aliases: remove helpserv. Reported by k4be. 2020-04-26 08:47:42 +02:00
LeCoyote 275dffcd6b French helpop: add missing chmode +D (#102) 2020-04-26 08:45:38 +02:00
Bram Matthys 12ad8003bb Update shipped lib to c-ares 1.16.0 (released 2020-03-13) 2020-04-25 18:39:52 +02:00
Bram Matthys edb0f16942 Make /INVITE bypass ~f:#forward:*!*@* bans. Suggested by Balthazar
in https://bugs.unrealircd.org/view.php?id=5634
2020-04-25 17:06:01 +02:00
Bram Matthys ca2ba56d82 Add is_invited(client, channel) function. 2020-04-25 17:01:41 +02:00
Bram Matthys 0902ed7a99 Fix channel mode +L redirecting even if joining with correct channel key.
Reported by Balthazar in https://bugs.unrealircd.org/view.php?id=5644
2020-04-25 16:43:32 +02:00
Bram Matthys 07d2a92acd Fix build tests. 2020-04-25 09:48:58 +02:00
Bram Matthys 7b7e1a6158 Skip TLS tests on 32 bit due to cipherscan issue (not important to
run on ubuntu 18.04 32-bit anyway since we run these tests on
ubuntu 18.04 64-bit already as well).
2020-04-25 09:41:09 +02:00
Bram Matthys 0c080b3982 Fix crash in tkldb on 32 bit systems. Reported by k4be.
Also, get rid of compiler warnings (we can use C99 types now).
2020-04-25 09:27:31 +02:00
Bram Matthys 29b691f9b6 At least do some parallel compiling by default (make -j4)
if there is no MAKE nor MAKEFLAGS already set.
2020-04-19 19:41:45 +02:00
Bram Matthys bc70882bd3 UTF8 support in spamfilter. We now ship with PCRE2 10.34 and require this
version or newer on the sytem, otherwise we fall back to shipped version.

This fixes https://bugs.unrealircd.org/view.php?id=5187 among others.
It means:
* Case insensitive matches work better in UTF8 now, such as extended Latin.
  For example, a spamfilter on "ę" now also matches "Ę", while previously
  it did not catch this.
* Other PCRE2 features such as https://www.pcre.org/current/doc/html/pcre2syntax.html#SEC5
  are now available. For example you can now set a spamfilter with the regex
  \p{Arabic} to block all Arabic script, or
  \p{Cyrillic} to block all Cyrillic script (such as Russian)
  Use these new tools with care, of course. Blocking an entire language,
  or script, is quite a drastic measure.

All of this was possible because of the new PCRE2_MATCH_INVALID_UTF
compile time option which was introduced in PCRE2 10.34.
This also means we now require at least that PCRE2 version so
everyone can benefit from this new spamfilter UTF8 feature.
Many systems come with older PCRE2 versions so this means we will
fall back to the shipped PCRE2 version in UnrealIRCd. This means
./Config will take a little longer to compile things.

Although there is no indication as of now, but if this feature would
break things heavily then it might get reverted or configurable.
This is also why it was added just after 5.0.4 release and not right
before it, it needs some heavy testing.
2020-04-19 17:45:38 +02:00
Bram Matthys 4d85e162aa Bump git version to 5.0.5-dev. 2020-04-19 17:42:43 +02:00
Bram Matthys a8a8196147 *** UnrealIRCd 5.0.4 *** 2020-04-19 14:14:03 +02:00
Bram Matthys 6b2d0c4b4b Update release notes a bit
[skip ci]
2020-04-19 09:31:47 +02:00
Bram Matthys 775fa47197 Fix crash of currently running IRCd when you are running ./Config.
Reported by k4be and others.
For the crash to occur a few specific things had to happen:
1) The system is missing the argon2 dev library (or it is too old)
   causing us to use the UnrealIRCd-shipped argon2 library.
2) You ran ./Config while there is an existing IRCd running
3) Now some argon2 hash is being checked (eg due to an OPER attempt)
4) Crash

A very similar crash happens (to a LOT more people) when you
run './unrealircd restart' to do the actual upgrade. In such
a case, the old IRCd crashed (the one that was actually supposed
to die anyway). The annoying thing was that the crash reporter
would kick in to report such a crash which was actually quite
harmless. This is actually the same crash as described earlier
so should be fixed as well now.
This variant was reported by Shillos and others.
2020-04-18 16:50:24 +02:00