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

1606 Commits

Author SHA1 Message Date
GottemHams c697e2ea99 Renamed m_storetkl to just tkldb 2019-05-31 22:25:18 +02:00
GottemHams bf6f885b98 Storetkl now also supports the hashed *@IP Z:Line thingy, also added errno calls to all error output 2019-05-31 22:06:59 +02:00
GottemHams c43a1b15af Store TS types in a uint64_t before DB writing to prepare the module for a Year 2038 fix, also upgraded num/rewrite ints to 64 bit since they *might* be as big as tklcount 2019-05-31 21:23:19 +02:00
GottemHams 4004152a7a Updated m_storetkl's descriptions for added clarity 2019-05-28 21:44:27 +02:00
GottemHams 35600fdfa0 Updated storetkl: write DB on a timer instead of hooking TKL_ADD/DEL, better DB format for improved compatibility with future Unreal versions, configurable .db path, support for softbans, write DB to a tempfile first to prevent corruption of existing DB, also applied some misc optimisations/portability improvements 2019-05-28 21:34:11 +02:00
Bram Matthys 6cf386ee87 ... 2019-05-27 19:22:04 +02:00
Bram Matthys 9e87f92c64 Fix small memory leak in SJOIN. 2019-05-27 19:20:25 +02:00
Bram Matthys 55a183bde4 Add "PROTOCTL MTAGS" to indicate message-tags & big buffer support.
This so we can link to UnrealIRCd 4.x....
2019-05-26 13:56:09 +02:00
Bram Matthys 57fd5f4f2b Add HOOKTYPE_IS_HANDSHAKE_FINISHED: if a module returns 0 then register_user()
will not be called. This is used, for example, by m_cap when the CAP LS
handshake is still in progress. Modules can add their own requirements
as they see fit.
Note that, as for (CAP) functionality, this adds nothing new, it just
implements it in a cleaner way, rather than all over the place,
like in UnrealIRCd 4.x.
2019-05-26 12:07:44 +02:00
Bram Matthys dde1cf3194 Fix some mtag FIXME's. 2019-05-26 11:45:58 +02:00
Bram Matthys 622cb43a48 Manual audit of exit_client() done, for mtags. 2019-05-26 11:36:40 +02:00
Bram Matthys 61b15d9f4d Mass update (automatic) of exit_client().
Next step is manual audit...
2019-05-26 10:45:54 +02:00
Bram Matthys 9f54a19801 New unified function for common: sendto_local_common_channels()
and make this support mtags so it now works for NICK, ACCOUNT, AWAY.
Still to do: exit client for QUIT.
2019-05-26 10:08:02 +02:00
Bram Matthys 39cd11f504 Fix OOB read due to message tag with trailing backslash. 2019-05-25 15:48:33 +02:00
Bram Matthys 39af766ced Add a FIXME 2019-05-25 15:40:10 +02:00
Bram Matthys a74bae0447 Some cleaning in m_sajoin. Whitespace and if() order. 2019-05-25 12:32:18 +02:00
Bram Matthys 1108b58951 Remove old TRE regex engine. Hasn't been maintained since 2010
and has various outstanding crash and 100% CPU issues.
We have been encouraging the PCRE2 engine since the start of
UnrealIRCd 4 already.
TRE is being phased out of U4 by the end of the year, so we can
safely remove it in U5 already.
2019-05-25 10:42:46 +02:00
Bram Matthys a2f37722ae Fix unitialized variable issues in message-tags handling. 2019-05-25 09:08:43 +02:00
Bram Matthys 8b1cd80700 Make labeled-response work again after API change.
TODO: handle both draft/ and without draft/, maybe upstream?
2019-05-25 09:08:26 +02:00
Bram Matthys 427885681d Make account-tag not inherit. I don't think there's a bug right now,
but it's not logical and makes it too easy to make a mistake.
2019-05-25 08:05:26 +02:00
Bram Matthys daab5abc92 Manual audit of sendto_one(): add mtags support where necessary. 2019-05-24 21:09:55 +02:00
Bram Matthys 6e5df1a4c0 Add mtags argument to sendto_one(). Phase 1 (automated), next is manual
audit of all sendto_one's. Also it doesn't work yet...
2019-05-24 17:38:48 +02:00
Bram Matthys c307d6c61b Make WHOX the default. Warn if you try to load both modules.
Now uses CommandAdd() instead of an override, which was just an
interim solution earlier.
2019-05-23 19:08:49 +02:00
i c528b22cdd CIDR support for /WHOX ip matching. 2019-05-22 23:01:55 +03:00
Bram Matthys 418b42e5bf More sendnumeric() and sendnumericfmt() conversions. 2019-05-22 17:09:12 +02:00
Bram Matthys 4a11309344 Transform sendto_one's to sendnumericfmt() - stage 1 2019-05-22 16:39:06 +02:00
Bram Matthys f8bee4941a Some fixes due to the sendnumeric() migration (see previous commits). 2019-05-22 12:58:38 +02:00
Bram Matthys 39029555cb A few more sendnumeric() conversions, putting numerics in main file. 2019-05-22 12:39:01 +02:00
Bram Matthys 7e4bfbc7c3 Move more to sendtxtnumeric()... and some sendnumeric() leftovers. 2019-05-22 12:10:57 +02:00
Bram Matthys 1a4cbb7023 sendnumeric() - phase 2 2019-05-22 11:41:46 +02:00
Bram Matthys c27bb26abc sendnumeric() - stage 1 2019-05-22 10:43:07 +02:00
Bram Matthys 5fb9b12d5e Mass-replace sending of notices with sendnotice(), which exists for quite a while now ;) 2019-05-22 09:34:34 +02:00
Bram Matthys a320bec089 More message tags support in the API. sendto_server() now has mtags
and sendto_match_butone as well.
Still about 15 FIXME's that need to be resolved, but committing early.
2019-05-21 19:00:35 +02:00
Bram Matthys c3a929646c Move src/modules/cap/* to src/modules/ as the meaning got blurred.
For example, msgid / message-ids is not a CAP, while server-time is.
There mere fact of something being in CAP or not shouldn't cause
something to be in different directories ;).
2019-05-19 15:58:34 +02:00
Bram Matthys da31011b30 Move most of the message-tags stuff to the message-tags module. 2019-05-19 15:41:24 +02:00
Bram Matthys 4e17f85fe6 1) New function new_message() which should be called when a new message is
sent, or at least for channel events.
2) Move adding of msgid/time/account tags to modules,
   which is their proper place.
2019-05-19 09:24:38 +02:00
Bram Matthys 7204f156c2 Store relative path and is_module_loaded() now has a small behavior change.
You now call it with a path like is_module_loaded("extbans/timedban").
This, among other reasons, so you can differentiate between modules with
the same name, such as "usermodes/noctcp" and "chanmodes/noctcp".
2019-05-17 18:48:37 +02:00
GottemHams 6e5aa1fd93 Added m_storetkl for persisting TKLines across IRCd restarts 2019-05-14 20:48:12 +02:00
Bram Matthys 5ebd096f16 Initial implementation of message-tags from May 5, 2019.
This also includes buffer modifications to have a larger read buffer
and IRCv3 implementations (partial or not) for:
labeled-response, msgid, server-time, batch and account-tag.

As said, it is the initial and partial implementation.
There are still various FIXME's and TODO's, the API of various
functions may still change (actually that is true for the next
months, even) and some stuff is currently in the core that will
be moved to modules.
2019-05-12 13:46:44 +02:00
Bram Matthys 4981bf472c Bump reputation version from 1.0.1 to 1.2 2019-05-11 14:17:45 +02:00
Bram Matthys 3a0d8fc06c Fix another reputation issue: reputation not showing in WHOIS when
a remote user has just connected (could take up to 5 minutes) and
a fix required for previous commit for connthrottle.
2019-05-11 14:15:52 +02:00
Bram Matthys 7a7266bc2f Bump connthrottle version from 1.1 to 1.2 2019-05-11 14:02:42 +02:00
Bram Matthys 64c8096361 Fix connthrottle module counting non-local connecting registered users
always as new users (regardless of reputation), causing the protection
to kick in too quickly for the poor new users. This was noticeable
after for example one server died and new users reconnecting massively
to the remaining servers. Reported by Lord.
2019-05-11 13:58:07 +02:00
Bram Matthys 9f8e73dca7 Make CAP commands case sensitive.
Suggested by Koragg in https://bugs.unrealircd.org/view.php?id=5263
2019-05-10 08:57:16 +02:00
Bram Matthys 872ebca6fa Don't forward PASS to services if the user is already logged in via SASL.
Reported by westor in https://bugs.unrealircd.org/view.php?id=5264
2019-05-10 08:49:40 +02:00
Bram Matthys 09d31d8ded Enhance WHOX->WHO auto-conversion for +s serv.er.name, reported by k4be. 2019-05-03 13:15:17 +02:00
Bram Matthys 5b63d28e2a Improve error messages in case of failed server linking due to mixed
password types (eg: plaintext on one side, spkifp on the other side).
Refer to https://www.unrealircd.org/docs/FAQ#auth-fail-mixed

Also, unrelated to the above, don't say "Bad password?" if the
password type is not of type plaintext, since it would be confusing.
2019-05-02 08:55:22 +02:00
Bram Matthys f9bbeaa6ca [nopost] Send these harmless kill messages to the junk snomask.
Nowadays these are pretty much never proxy attacks. Only scanners and
crawlers trying HTTP commands on IRC connections.. which isn't even that
weird anymore since people tend to open up port 443 for SSL/TLS IRC
to bypass firewall restrictions.
2019-04-28 12:12:53 +02:00
Bram Matthys cc15cd63de [reputation] Disable benchmark, config error should be warning. 2019-04-25 09:56:35 +02:00
Bram Matthys 9bd4f25af5 Handle FLUSH_BUFFER gracefully (only matters in rare cases, such
as in the case of malformed server traffic).
2019-04-22 14:37:37 +02:00