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

491 Commits

Author SHA1 Message Date
Bram Matthys 9e02ca2b3c More FORMAT_STRING() checking, get rid of old (non-)USE_VARARGS stuff.
Fix some more bugs (type differences) when compiling in DEBUGMODE.
2019-08-24 19:37:25 +02:00
Bram Matthys 85b3b91b19 Windows build: Add format string verification during build.
(Will be used to hunt and fix those time_t integer type mismatches)
2019-08-24 17:10:44 +02:00
Bram Matthys a6eac922ea Remove unused function create_snomask() 2019-08-23 20:28:48 +02:00
Bram Matthys 02a4bbc348 Get rid of this stupid 'TS' type, just use 'time_t'. 2019-08-22 18:39:28 +02:00
Bram Matthys 33fcc5b550 Enough updates on labeled-response and echo-message for today.
Note that the labeled-response implementation currently requires
'batch' and will always start a BATCH if there is any response.
Later on we can implement a simple queue so we don't have to
start a batch for 1-line responses (which works, but looks a bit
silly if you look at raw server traffic). That may be after alpha1,
though, as there are more (important) things to work on right now.
2019-08-18 09:24:43 +02:00
Bram Matthys 0d2d4d5bca Rename match() and _match() to match_simple() -AND- invert the return value
of match_simple() and match_esc(). So, developers, be aware, this is how
you should use the function in a correct way:
if (match_simple("*fun*", str))
    printf("It was fun\n");

Rationale:
I've always been annoyed by the inversed logic, even though it was similar
to strcmp. So I've reverted it.
I could have chosen to maintain match() rather than this match_simple()
name, but this way I force (3rd party module) devs to update their function,
while otherwise everything would mysteriously fail due to the inverted logic.
2019-08-17 09:20:49 +02:00
Bram Matthys e1fcc3a667 Rename match() and _match() both to match_simple()
and get rid of the "bahamut optimized version".
Stage 1 of 2.
2019-08-17 09:15:34 +02:00
Bram Matthys c01c9248f5 Revert e428c77c47 (only to try again later) 2019-08-17 09:05:09 +02:00
Bram Matthys e428c77c47 match() -> match_nuh() and _match -> match_simple() 2019-08-17 08:56:18 +02:00
Bram Matthys a408b61f32 For some unknown reason del_ListItem() iterated the entire list. Weird. 2019-08-16 17:36:15 +02:00
Bram Matthys 3a454e3eb3 free_mtags() -> free_message_tags() 2019-08-16 14:54:28 +02:00
Bram Matthys ced8b0935d Check for and refuse to run with <2048 bits RSA keys. I hope nobody is
using 1024 bit RSA keys in 2019, but always better to check and inform
the admin about such a big mistake.
2019-08-15 08:52:28 +02:00
Bram Matthys 7fa2b8be05 More ssl -> tls moves. Also recommend to use 'certfp' rather than
the longer 'sslcertfp' or 'tlscertfp', we already support this since
4.0 so... updated the documentation as well.
2019-08-12 14:53:29 +02:00
Bram Matthys 09cf485d6c Mass rename of "ssl" to "tls" everywhere. Including conf/ssl to
conf/tls. If you are upgrading then conf/ssl will be renamed to
conf/tls and a symlink will be added (so certbot etc won't fail).
This is part 1...
2019-08-12 14:26:31 +02:00
Bram Matthys 25687c2bed New efuncs: tkl_ip_hash() and tkl_ip_hash_type(), for the rmtkl module. 2019-08-11 14:48:07 +02:00
Bram Matthys 806256e9c2 Move generate_batch_id() to core. Use chathistory BATCH type, if supported. 2019-07-13 15:25:56 +02:00
i 60ebc1375e Support channel status prefixes for SAJOIN. 2019-07-10 17:42:46 +03:00
Bram Matthys d09b9d53a4 Make SSL/TLS mandatory for UnrealIRCd to run. Previously you could get
around this by simply having no certs etc. I doubt anyone used it and
that was not a recommended configuration.
(More to come)
2019-07-09 20:06:11 +02:00
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 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 c673e5bbc6 Get rid of now meaningless include/hash.h 2019-06-26 17:17:20 +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 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 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 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 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 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 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 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 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
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 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 daab5abc92 Manual audit of sendto_one(): add mtags support where necessary. 2019-05-24 21:09:55 +02:00
Bram Matthys 4a11309344 Transform sendto_one's to sendnumericfmt() - stage 1 2019-05-22 16:39:06 +02:00
Bram Matthys c27bb26abc sendnumeric() - stage 1 2019-05-22 10:43:07 +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