Bram Matthys
b605b7fd86
Use delayed module unloading not only for modules with moddata but also
...
for modules which have extended channelmodes with parameters,
since they have the same problem.
2019-06-29 09:10:18 +02:00
Bram Matthys
fbf4946777
Update tkldb to use new LoadPersistentInt/SavePersistentInt functions.
...
And before that, I fixed these functions so they actually work :D
2019-06-29 08:44:12 +02:00
Bram Matthys
5182c664d1
Easier API for just-commited persistent variables. Example:
...
LoadPersistentPointer(modinfo, removefld_list, floodprot_free_removefld_list);
SavePersistentPointer(modinfo, removefld_list);
The above example was for a pointer, there are also functions for int and long,
which are even more simple:
LoadPersistentInt(modinfo, somevar)
SavePersistentInt(modinfo, somevar)
and
LoadPersistentLong(modinfo, somevar)
SavePersistentLong(modinfo, somevar)
both are untested, but will be tested soon...
2019-06-28 22:08:45 +02:00
Bram Matthys
0920967cc4
New module_load_variable / module_save_variable functions
...
and made floodprot to use these functions.
TODO: 1) Different functions for pointer/int/long, 2) macro?
2019-06-28 21:02:29 +02:00
Bram Matthys
2a7fc8042d
Add new moddata types: MODDATA_LOCALVAR and MODDATA_GLOBALVAR. Untested.
...
Code using it will soon follow (and then it will be tested :D)
2019-06-28 18:35:37 +02:00
Bram Matthys
38e9c100d4
Get rid of include/threads.h (unused)
2019-06-26 17:27:45 +02:00
Bram Matthys
a2510a5dca
Delete sock.h, isn't even used anymore.
...
[skip ci]
2019-06-26 17:25:34 +02:00
Bram Matthys
70cca778cd
Test compile w/o sock.h
2019-06-26 17:19:10 +02:00
Bram Matthys
c673e5bbc6
Get rid of now meaningless include/hash.h
2019-06-26 17:17:20 +02:00
Bram Matthys
8e44d4d5ab
Get rid of weird NullChn, which is now just NULL :D
2019-06-26 17:13:45 +02:00
Bram Matthys
ded4a65a60
u_int16_t -> uint16_t and u_int32_t -> uint32_t, remove typedefs for
...
these types and others, that should no longer be needed thanks to
stdint.h.
2019-06-26 17:06:46 +02:00
Bram Matthys
709c84fff9
Remove stupid hash table layer for channels that only eats 256k+ extra
...
memory and causes unnecessary slowdown. Stupid ->hits and ->links.
And get rid of "return (xyz)", must be "return xyz" :D
2019-06-26 16:56:17 +02:00
Bram Matthys
f1b0b6b76e
Make throttling code (connect-flood) use SipHash and increase the
...
hash table size from 1019 to 8192 to have fewer collisions.
2019-06-26 16:46:28 +02:00
Bram Matthys
d5395848b7
Double the size of hash tables to reduce collisions.
2019-06-26 16:16:56 +02:00
Bram Matthys
f6eac29592
hash_nick_name -> hash_client_name, hash_find_nickserver -> hash_find_nickatserver
...
Both were confusing :)
2019-06-26 13:45:55 +02:00
Bram Matthys
d5b643ceee
Rewrite hash table code to use SipHash (more to follow)
2019-06-26 13:24:02 +02:00
Bram Matthys
c507db9005
Get rid of Windows compile warning regarding abort().
2019-06-23 08:57:39 +02:00
Bram Matthys
7875fc9d7d
Compile fixes for Windows due to cleanup from yesterday.
2019-06-23 08:03:33 +02:00
Bram Matthys
7161f33311
Code cleanup: make src/*.c use the generic #include "unrealircd.h" file
...
(with only a few exceptions)
Now, we'll find out later if Windows still compiles, I guess ;)
2019-06-22 21:18:08 +02:00
Bram Matthys
e8ff5d77c7
Remove weird option set::snomask-on-connect. Doubt anyone uses it.
2019-06-22 19:36:54 +02:00
Bram Matthys
f9b589d0c6
Remove almost 1000 lines, all functions that are (now) unused.
...
Also, drop support for snomasks to non-ircops (TODO: more)
2019-06-22 19:32:11 +02:00
Bram Matthys
e03c8135a9
CHFL_CHANPROT -> CHFL_CHANADMIN, is_chanprot -> is_chanadmin
...
These are just remnants of the past, when +a was called channel protection.
It is called channel admin since as long as I can remember, and in 90%
of the code and documentation it is called that way.
2019-06-22 17:32:57 +02:00
Bram Matthys
cf29aa8feb
Replace various 90% identical functions with some macro's instead.
2019-06-22 17:29:03 +02:00
Bram Matthys
05202dd2a4
Move can_send() function from core to m_message.
2019-06-22 16:03:06 +02:00
Bram Matthys
bf4d96e991
can_send() now returns 0 (false) or 1 (true), rather than magic values.
...
Also, the HOOKTYPE_CAN_SEND prototype changed so you can communicate
the error message in a flexible way, similar to what I just did
with extbans.
2019-06-22 15:57:32 +02:00
Bram Matthys
be49ef0bb8
More extban API changes... fun...
2019-06-22 15:11:16 +02:00
Bram Matthys
086d370704
Change extban API: pass 'msg' in BANCHK_MSG and (new) BANCHK_LEAVE_MSG.
2019-06-17 20:19:34 +02:00
Bram Matthys
1cfebcf05e
Add new set::part_instead_of_quit_on_comment_change to convert QUIT to PART
...
in case of a change in the quit comment, such as color stripping / blocking.
The default is 'no', but some users may like this to be 'yes' so things like
+S only affect the channel and not the quit for all channels.
This hereby also lays the groundwork for some next commits of 'i' :)
The configuration item name may still change if I think of a better one....
2019-06-17 08:20:42 +02:00
Bram Matthys
7b42c252ea
Some documentation updates, nothing important
...
[skip ci]
2019-06-16 10:08:50 +02:00
Bram Matthys
bd785a9309
Some initial work for the upcoming TKL 'e'/'E'/TKL_EXCEPT type.
2019-06-16 08:42:41 +02:00
Bram Matthys
18ae7b8925
Document *ALL* functions in m_tkl and remove efuncs that are no longer
...
needed: tkl_expire and tkl_check_expire, which are now self-contained
in the m_tkl module.
2019-06-16 08:35:56 +02:00
Bram Matthys
b102e79f8e
Use check_banned() from s_bsd too, less duplicate code.
2019-06-15 18:44:33 +02:00
Bram Matthys
24726d533d
Make the require authentication { } block use the TKL layer.
...
Remove CONF_BAN_UNAUTHENTICATED.
2019-06-15 18:31:06 +02:00
Bram Matthys
8e6302d003
Rip out CONF_BAN_NICK, CONF_BAN_IP, CONF_BAN_USER, now that they are moved
...
to the TKL layer.
2019-06-15 18:18:19 +02:00
Bram Matthys
97fc19591c
Add support for tkline->flag TKL_FLAG_CONFIG: item from configuration
...
file that cannot be deleted via commands such as /KLINE -...
And transform some ban XX entries to use the TKL system
TODO: test & rip out the old stuff
2019-06-15 18:08:43 +02:00
Bram Matthys
a40cd9fae4
Rename dospamfilter() to run_spamfilter(), which is more meaningful.
2019-06-15 17:43:34 +02:00
Bram Matthys
876fda63ec
Export tkl_type_string via efuncs (actually, the name may change...)
2019-06-15 17:06:41 +02:00
Bram Matthys
7542cdeaca
Cleanup of m_tkl part 1. New tkl_chartotype (the reverse of tkl_typetochar).
...
Move stripcrlf() to core instead of at 3 places, rename calls of iCstrip()
to that. Hopefully I didn't break anything.. :D
2019-06-15 16:56:34 +02:00
Bram Matthys
ca9b04a0fa
Module API: EventAddEx() -> EventAdd()
2019-06-12 19:09:33 +02:00
Bram Matthys
e3013ae067
Commit current work of history API and channel history mode (+H count:time)
...
Note: there are still some TODO items
2019-06-12 18:59:12 +02:00
Bram Matthys
66be5a2ca6
Re-indent the FLAGS_* stuff in include/struct.h
...
And remove FLAGS_PING which was unused.
2019-06-10 18:50:05 +02:00
Bram Matthys
fce0253b5a
Remove unused FLAGS_CHKACCESS / SetAccess / ClearAccess.
...
Also, DoAccess() was already commented out in UnrealIRCd 4 or something.
This results in an empty finish_auth() function but that should be OK,
as ident checking takes place before parsing any other input IIRC.
2019-06-10 18:39:03 +02:00
Bram Matthys
e5e260eaa1
Remove FLAGS_NONL / NoNewLine(), which isn't used since 4.0.0 or so.
...
And add a FIXME, or at least a TODO-investigate-this item ;)
2019-06-10 18:33:46 +02:00
Bram Matthys
12dbbca15e
Rip out support for changing offsets via TSCTL and tune file. Use NTP!!
...
Adjustments via TSCTL are never accurate enough.
2019-06-08 09:26:55 +02:00
Bram Matthys
3749f8d674
Remove timesync support. Use your OS time synchronization instead!
...
Timesync was previously disabled by default in March 2018.
2019-06-08 09:11:46 +02:00
Bram Matthys
a2ee5d67f3
Update a few hooks to include mtags, more will follow later.
...
This fixes inconsistent mtags accross server links with delayjoin.
2019-06-07 15:05:10 +02:00
Bram Matthys
c6389270f9
Remove a few useless #define's (And final test of buildbot today :D)
2019-05-30 21:02:27 +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
be4ef2e7e3
Add message tags support in exit_client(). Yay.. another API change!
2019-05-26 10:36:39 +02:00