1
0
mirror of https://github.com/unrealircd/unrealircd.git synced 2026-06-28 15:16:37 +02:00
Commit Graph

37 Commits

Author SHA1 Message Date
Bram Matthys 7765f226be Detect operclass::parent loops.
Reported by craftxbox in https://bugs.unrealircd.org/view.php?id=6471
2024-09-23 17:25:17 +02:00
Bram Matthys 18d7e98d35 Return true from ValidatePermissionsForPath() for &me. 2023-01-07 15:20:48 +01:00
Bram Matthys b154591a58 Some source files indicated the license was "GPLv2", which was meant to
be (and is now clarified to be) "GPLv2 or later".
Reported by libsys in https://bugs.unrealircd.org/view.php?id=6099
2022-05-11 06:41:11 +02:00
Bram Matthys 50e5d91c79 Add SVSO command which services can use to make someone IRCOp.
This existed in UnrealIRCd 3.2.x but was later removed when
switching to the new operclass system.
Requested by Valware in https://bugs.unrealircd.org/view.php?id=6041

Syntax: SVSO <uid|nick> <oper account> <operclass> <class> <modes> <snomask> <vhost>
All these parameters need to be set, you cannot leave any of them out,
HOWEVER some can be set to "-" to skip setting them, this is true for:
<class>, <modes>, <snomask>, <vhost>

In UnrealIRCd the <operclass> will be prefixed by "services:" if not already
present. It is up to you to include or omit it.

If you want to set any swhoises you need to use the SWHOIS s2s command,
other than that this command basically does everything for you,
in fact it uses the same code as the OPER command does.
Most of the "user is now ircop" code has been moved out of cmd_oper() to
a new function make_oper() that is called by both cmd_oper() and cmd_svso().

This function also changes the hook HOOKTYPE_LOCAL_OPER:
It no longer passes a ConfigItem_oper struct, since we can't do that for
remote opers. Instead it passes oper name and oper class.
The complete definition is now:
int hooktype_local_oper(Client *client, int add, const char *oper_block, const char *operclass);
2022-05-07 18:53:59 +02:00
Bram Matthys f085173d46 More const char * stuff... mostly in conf.c but also elsewhere. 2021-09-10 15:01:23 +02:00
Bram Matthys d4d4da6a8d Add another const to ValidatePermissionsForPath. Fix Windows build, maybe? 2021-09-10 12:58:15 +02:00
Bram Matthys 9aff820d1a Find_* -> find_*, eg Find_alias -> find_alias. 2019-10-26 09:57:15 +02:00
Bram Matthys 394168c288 Style fixes: "char* " -> "char *" etc. 2019-10-11 12:23:45 +02:00
Bram Matthys 3a64077f51 Use 'client' everywhere (if there is no confusion) instead of 'sptr' or 'cptr'.
This so I - and others - don't constantly have to wonder whether the client
is called sptr, cptr or acptr in a simple routine.
Insane --> 212 files changed, 6814 insertions(+), 6945 deletions(-)
Couldn't just mass-replace of course since there are places where there
are multiple clients involved. So had to check each function.
Also renamed some 'acptr' to 'target' and such.

I will write a page with new style rules later.. but in short if there is
only 1 client involved it will now be called 'client'.
2019-10-04 15:25:35 +02:00
Bram Matthys 9fc1e758ab Mass change of dst = strdup(str) to safe_strdup(dst,str) but with a manual
audit since 'dst' must now be initialized memory.
There's still a raw_strdup() if you insist.

This is step 2 of X of memory allocation changes
2019-09-14 16:58:01 +02:00
Bram Matthys de87b439b7 Update memory allocation routines. Step 1 of X. 2019-09-14 16:52:53 +02:00
Bram Matthys 70410b3f33 Remove unused variables (67 files done, will do rest another time). 2019-09-12 17:57:01 +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 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
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 aa3e66bb5b We now use standard formatted messages for all K-Lines, G-Lines and
any other bans that will cause the user to be disconnected.
For technical details see the banned_client() function.

It's likely I made some mistakes somewhere => testing required!!
2018-09-05 16:24:08 +02:00
Bram Matthys 095330aa36 No infinite loop when operclass::parent is not found. Reported by Digerati and dboyz (#4683).
Should add code in config-tester for this to prevent this in the first place, though..
2016-05-22 15:56:51 +02:00
Bram Matthys ccf1d0e41c Re-indent only. No changes. 2016-05-22 15:54:01 +02:00
Bram Matthys 01244b1710 Fix OpenBSD compile problem regarding sys/timeb.h. Reported by cman351 (#4398).
More use of unrealircd.h.
2015-09-04 11:59:53 +02:00
Bram Matthys 1eaa389140 Hmm. Missing IsServer() in ValidatePermissionsForPath() :D 2015-07-12 20:58:25 +02:00
Bram Matthys bbb121383b Add who-may-execute-this in many CommandAdd()'s. Trying to remove all "unspecified" (0) ones... hopefully I made no mistake in this ;)
Update remote-permission check in ValidatePermissionsForPath to check at least IsOper.. may save us from some serious mistakes ;)
2015-07-12 15:32:11 +02:00
Travis McArthur 900c51ed13 Add paranoid null check 2015-07-09 13:39:15 -07:00
Travis McArthur 2450909c26 Change name of OperEval... 2015-07-09 12:31:45 -07:00
Travis McArthur 95667ca9b8 Add short-circuit for remotes and U:lines 2015-07-05 10:57:58 -07:00
Travis McArthur e280d2a49f Fix bug in case where use was +o, now is not. 2015-06-27 17:11:19 -07:00
Bram Matthys 19dd192bb6 all nested operclass acl's were not working (eg: server:rehash), hope this is the correct fix :) 2015-06-26 10:36:21 +02:00
Travis McArthur 221bc2a92b Refactor auth ACL to remove superfluous param 2015-06-14 17:59:37 -04:00
Bram Matthys cb1cb2863c Fix Windows compile (C99..) 2015-06-08 08:40:58 +02:00
Travis McArthur 6cb5cbfc06 Remove unnecessary cptr in ACLs 2015-06-01 22:44:49 -04:00
Travis McArthur 090faaccf9 Fix raw entry logic, fix descent logic 2015-06-01 03:29:24 -04:00
Travis McArthur 2cacfa1d27 Fix bug with one node paths for oper class 2015-06-01 02:34:25 -04:00
Travis McArthur b6329b3b44 Remove test statements, fix logic error 2015-06-01 02:24:52 -04:00
Travis McArthur 1f9677a199 Fix several bugs in operclass system 2015-06-01 02:14:18 -04:00
Travis McArthur 574297054c Modify verification function calls 2015-06-01 00:38:50 -04:00
Travis McArthur adf8a61625 Add support for adding/removing validators 2015-05-31 23:19:08 -04:00
Travis McArthur 1726669f67 Fix memory leak 2015-05-31 22:31:55 -04:00
Travis McArthur 7ca84567fe Add oper ACL evaluation system
Still requires module and core hooks to be added, config test to be added, and to require these for perm validation - this enables core parser and querying of system though
2015-05-31 17:20:28 -04:00