Bram Matthys
8d2dad4796
chanmodes/floodprot: remove old +f 1:1 conversion code, cleanup a bit
...
and remove unused variables (unused now, that is).
2019-09-12 16:49:20 +02:00
Bram Matthys
c3f7bbd9c0
require-mode: account for a little bit more room in S2S command
...
(not just hostname but also the command "SMOD" etc.. let's just say
16 bytes for now)
..and some minor cleanups of variables that are not needed.
2019-09-12 07:55:34 +02:00
Bram Matthys
cafe3cfd6d
Some S2S command changes to new require-modules module:
...
REQMODS Gmodname:version ....
to:
SMOD G:modname:version ....
Also, call the module require-module to be consistent with the
naming of the configuration directive.
Not sure yet of the set name, but call it set::require-module for
now as well.
2019-09-12 07:38:55 +02:00
Bram Matthys
88cbc38ff2
Do some more syntax checking, even for servers.
...
This fixes a crash in case of incorrect server to server traffic.
2019-09-12 07:16:18 +02:00
GottemHams
3948c3a74b
Forgot to remove a lil' comment :D [skip-ci]
2019-09-11 22:26:53 +02:00
GottemHams
358a31eaee
First draft of require-modules module (require modules globally or deny them)
2019-09-11 22:18:03 +02:00
GottemHams
daa2441c1c
Stray tab in rmtkl :D
2019-09-11 22:14:03 +02:00
Bram Matthys
482c85de44
Get rid of this sptr->serv->user, as we already have sptr->serv->by
...
to track who initiated the connect. It also didn't seem to be displayed
anywhere but in /TRACE.
2019-09-11 19:46:52 +02:00
Bram Matthys
9b113c27e4
Document some more structs and group them in a logical place.
2019-09-11 19:07:11 +02:00
Bram Matthys
c72d848b61
Get rid of MembershipL since there's no difference anymore between
...
local membership structs (MembershipL) and remote ones (Membership),
so they are now all called... Membership.
2019-09-11 17:53:29 +02:00
Bram Matthys
bf2c5110db
IsPerson() -> IsUser(), MyClient() -> MyUser(), etc.
...
This so we have a few simple concepts:
Client: this can be a user, server, or something unknown yet
Then the type of clients:
User: this is a user, someone with a nick name.
Server: this is a server
Etc.
2019-09-11 17:43:17 +02:00
Bram Matthys
fcf0ff4e3c
Document client statuses (cptr->status) and some more renames.
2019-09-11 16:52:11 +02:00
Bram Matthys
2df5326615
Overhaul of all client flag macros (mass renaming, always use getters/setters/checkers)
2019-09-11 16:00:47 +02:00
Bram Matthys
e372e9118d
Move cptr->count to cptr->local->identbufcnt since this only used by
...
the ident reading code nowadays, which obviously only happens for
locally connected users.
2019-09-11 14:36:12 +02:00
Bram Matthys
d80e601760
Rename sptr->username to sptr->ident, since that is what it is.
...
[skip ci]
2019-09-11 14:31:14 +02:00
Bram Matthys
c69bdbe175
->status is now an enum of ClientStatus and STAT_xx -> CLIENT_STATUS_xx
2019-09-11 14:27:32 +02:00
Bram Matthys
792709bf4f
Move cptr->fd to cptr->local->fd. This may cause some crashes while
...
the rest of the code is audited / checked ;)
2019-09-11 14:21:07 +02:00
Bram Matthys
cb236eea88
Rename cptr->from to cptr->direction, since the 'from' is rather misleading
...
as cptr->from is NOT (necessarily) the server where cptr is connected to.
So we now call it cptr->direction since it indicates the directly connected
server (or &me)... in other words: the direction of the client path.
2019-09-11 14:03:27 +02:00
Bram Matthys
6a019d6188
Let's allow user connections.
...
*sigh*
(at least we have automated tests for this)
2019-09-11 13:44:55 +02:00
Bram Matthys
1e6a3bdd55
Bump PASSWDLEN to something "large enough for everyone" (256) rather than current (48).
2019-09-11 13:27:45 +02:00
Bram Matthys
786054e6b7
Remove 'md5', 'sha1' and 'ripemd160' from auth code. These are insecure and
...
old authentication types that are already deprecated in UnrealIRCd 4.x.
They don't contain any rounds which means they can be cracked at a rate of
millions per second. Use the secure hashing type 'argon2' instead
(or, if you must, use the less secure 'bcrypt' type).
2019-09-11 13:17:28 +02:00
Bram Matthys
04607f5b1a
Various auth cleanups: Auth_Check() now returns 1 on allow and 0 on deny (!)
...
to keep things simple, rather than having 4 different return values
(yes.. FOUR!).
[skip ci]
2019-09-11 13:10:15 +02:00
Bram Matthys
05e776fb71
More cleanups: now mostly auth-related: use better names and use enums
...
for authentication types. Rename Auth_Make to Auth_Hash. Add docs. etc.
2019-09-11 12:37:34 +02:00
Bram Matthys
e8d53ffe8e
And more type changes to make things consistent and more readable.
2019-09-11 11:04:31 +02:00
Bram Matthys
2a5ea10453
Lots of changes again. Most notable: Cmdoverride -> CommandOverride,
...
including things like CallCmdoverride() to CallCommandOverride().
Type changes like aTKline -> TKL and many more (in particular
aSomething to Something etc. such as aWatch to Watch) but these are
less used by 3rd party module coders.
2019-09-11 10:20:00 +02:00
Bram Matthys
f55682cbaa
More (typedef) struct name changes. Mostly configuration but also
...
aCommand to RealCommand. Although not sure if this latter makes
things a lot more descriptive :D. Can revisit later.
(more to follow)
2019-09-11 10:04:47 +02:00
Bram Matthys
23116d344a
Give structs the same name as the typedefs. Rename aClient to Client,
...
aChannel to Channel, and some more. Third party module coders will
love this. But.. it makes things more logical and the doxygen output
will look more clean and logical as well.
(More changes will follow)
2019-09-11 09:48:00 +02:00
GottemHams
fbd7ff1f5a
Implemented set::min-nick-length (default 0 aka no minimum required) and added a line for it to /stats S, as a bonus my editor strips trailing whitespace :D
2019-09-09 20:33:38 +02:00
GottemHams
a0db737408
hideserver module still used old-style version string [skip-ci]
2019-09-09 19:46:46 +02:00
Bram Matthys
e5f73fdbcd
Don't use custom inet_pton{4,6} functions
...
[skip ci]
2019-09-09 17:08:25 +02:00
Bram Matthys
5e4c481d93
Yes, strcasecmp is always available, configure.
2019-09-09 16:30:02 +02:00
Bram Matthys
7d4b7c2fed
Get rid of stricmp/strnicmp (use strcasecmp/strncasecmp)
2019-09-09 16:13:32 +02:00
Bram Matthys
8d453ffc40
Get rid of index() and some useless casts
2019-09-09 14:54:49 +02:00
Bram Matthys
d434cf948b
Get rid of bcmp/bcopy/bzero.
2019-09-09 14:41:40 +02:00
Bram Matthys
a0aec38df2
Get rid of DISABLE_USERMOD, since you can achieve the same in U5 via
...
the restrict-commands module in a dynamic way (with more options too).
2019-09-09 13:27:25 +02:00
Bram Matthys
90d39d4665
tkldb module: Turn a few config_error() into config_warn() since
...
we continue, while errors mean we would fail to boot (or fail to rehash)
which is not the case.
2019-09-08 20:50:55 +02:00
Bram Matthys
0c4502bf79
Define and use SIPHASH_KEY_LENGTH rather than some magic value.
2019-09-08 14:15:23 +02:00
Bram Matthys
ebd9c738f2
Some cleanup/rewrites of 'r' (repeat) in the floodprot module (+f).
...
Use a more simple hashing algorithm and one that uses 64 bits,
don't allocate any memory dynamically, just use an int64_t.
Also, only do the hashing if 'r' is actually enabled in +f
on the channel, as otherwise it's pointless.
2019-09-08 14:06:40 +02:00
Bram Matthys
9fe82e4a9f
Fix read-after-free in HOOKTYPE_LOCAL_PART hook.
2019-09-08 08:41:58 +02:00
Bram Matthys
e9847a2279
Fix OOB read due to last commit ( 62c7f67f7a)
2019-09-08 08:38:13 +02:00
Bram Matthys
62c7f67f7a
Make StripControlCodes() filter out zero width space as well (U+200B).
2019-09-07 18:32:21 +02:00
Bram Matthys
7eb9ed90cb
Cleanup sub1_from_channel. Don't kick insecure users on +z channels when we
...
are merging (equal TS), only kick our users when we are on the losing side
(=if there is a different TS, IOTW: the channel was recreated later).
2019-09-07 14:45:47 +02:00
Bram Matthys
ab0608a98c
Don't send OperOverride notice if &me (server)
...
[skip ci]
2019-09-07 11:06:04 +02:00
Bram Matthys
c6cfc2f5c8
Fix receiving "+i must be set" twice (for users) or more (for opers)
...
[skip ci]
2019-09-07 10:52:38 +02:00
Bram Matthys
b9e2f1c5fb
Fix crash in RMTKL (only possible with rogue server traffic)
...
[skip ci]
2019-09-07 10:25:36 +02:00
Bram Matthys
62dc1181ba
Protect against late bogus PROTOCTL SID=xxx (from authenticated servers)
2019-09-07 10:16:46 +02:00
Bram Matthys
d3db771a1b
Add some tracing code until a certain RMTKL bug is found.
2019-09-07 09:35:50 +02:00
Bram Matthys
7c9325d8d1
Move get_mode_bitbychar() and get_extmode_bitbychar() to the core
...
rather than helper functions in floodprot. (I need them)
2019-09-07 09:24:26 +02:00
Bram Matthys
62c0edde12
Partially rewrite SVSMODE #chan code to fix a crash from hostile servers.
...
Also get rid of the TS parameter in there, which nobody uses anyway.
It didn't even refer to the channel TS.. quite confusing..
it used user->since... so it seems it was against crossing users
(nick changes)... well, we have UID for that now.
2019-09-07 08:02:07 +02:00
Bram Matthys
dc5fd50a54
Fix potential issues if msgbypass extban module is not loaded.
...
[skip ci]
2019-09-06 20:55:42 +02:00