GottemHams
d8ff67d088
Added m_storetkl to modules.default.conf
2019-05-28 21:35:37 +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
f046482761
Freeing memory is usually a good idea (duh)
2019-05-27 07:43:44 +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
be4ef2e7e3
Add message tags support in exit_client(). Yay.. another API change!
2019-05-26 10:36:39 +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
b63a67dea0
More parse/parse2 fixes like 6e219cd834.
...
This fixes an OOB write (NUL byte write) due to trusting 'length'.
It is now removed and renamed to bytes, it's only for adding lag.
2019-05-25 15:40:18 +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
f320e32b7e
Clean up compiler flag checker.
...
(Since we don't need the C++ check, we use C only)
2019-05-25 11:36:13 +02:00
Bram Matthys
e0c2ccd99b
Remove unused configure checks: HAVE_C99_VARLEN_ARRAY, HAVE_RAND_EGD,
...
and an AC_SUBST for MKPASSWDLIBS.
2019-05-25 11:27:53 +02:00
Bram Matthys
05e3ed63a0
Default to --with-system-pcre2. Now all shipped libs default to system libs.
2019-05-25 11:01:11 +02:00
Bram Matthys
5513b21936
Remove old extras/regex
2019-05-25 10:50:01 +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
185b4e05c0
Whoops, this #comment in 'make install' showed up to end-users.
2019-05-25 10:19:33 +02:00
Bram Matthys
4b45555edd
Fix issue if compiling without TRE but with shipped argon2 (or other
...
combinations). Need to create libdir in ./Config ;)
2019-05-25 10:17:33 +02:00
Bram Matthys
6e219cd834
Remove confusing 'bufend' variable from parse and parse2 functions.
...
Such a variable suggests that we will never read past that, but that
is not the case, since we (correctly) assume that the buffer is
NUL terminated, which is ensured by dbuf_getmsg().
The 'length' is still available for informational purposes, to avoid
strlen()'s at various places.
Hm, I guess length can cause the same confusion as bufend, but still..
I like it better :D
2019-05-25 09:50:36 +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
6d1d3de620
Move .CHANGES.NEW -> doc/Config.header
2019-05-19 16:30:27 +02:00
Bram Matthys
f08e662878
Update and document modules.default.conf wrt IRCv3 features (CAPs etc).
2019-05-19 16:06:06 +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
13c59febbf
Support for optional efunctions, with a default handler.
2019-05-19 09:49:53 +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
10dcacdb0a
@define, @if, @endif are all working.
...
You can do something like:
@define $SERVERIP "1.2.3.4"
listen {
ip $SERVERIP;
port 6667;
}
Supported @if types:
@if $VARIABLE == "something"
@if $VARIABLE != "something"
@if defined($VARIABLE)
@if !defined($VARIABLE)
@if module-loaded("somename")
@if !module-loaded("somename")
2019-05-18 16:06:28 +02:00
Bram Matthys
35fa6cedac
Convert some alloc+strlcpy to safestrldup in config code.
...
-curce->ce_vardata = MyMallocEx(ptr-start+1);
- strlcpy(curce->ce_vardata, start, ptr-start+1);
+safestrldup(curce->ce_vardata, start, ptr-start+1);
2019-05-18 14:32:36 +02:00
Bram Matthys
1adb02b56b
Move new preprocessor from yesterday to it's own file (src/conf_preprocessor.c)
2019-05-18 13:58:27 +02:00
Bram Matthys
fad8c35847
Initial support for dynamic configuration, $define, $if, $endif.
...
Early commit, still cleaning up to do.
But what works is:
$define SERVER "hub.example.org"
$if SERVER == "hub.example.org"
link .... {
....
}
$endif
$if defined(SERVER)
....
$endif
And also we have mod-loaded() which even works half-way in a block
such as in helpop:
help Chmodes {
[..]
$if module-loaded("chanmodes/stripcolor")
" c = Block messages containing mIRC color codes [o]";
$endif
$if module-loaded("chanmodes/noctcp")
" C = No CTCPs allowed in the channel [h]";
$endif
};
As said, still need to cleanups and there are some limitations.
Also the idea is to be able to use defined values in variable names/values
but that has not yet been implemented.
2019-05-17 20:43:36 +02:00