1
0
mirror of https://github.com/unrealircd/unrealircd.git synced 2026-07-06 23:03:13 +02:00
Commit Graph

8828 Commits

Author SHA1 Message Date
Bram Matthys fae7c0fef7 cloak_sha256: require cloaking key to be at least 80 characters.
This may also help with people accidentally loading cloak_sha256
when they previously had cloak keys for cloak_md5.

[skip ci]
2021-09-26 08:32:27 +02:00
Bram Matthys 08723e0e56 Error when no cloaking module is loaded. 2021-09-25 20:46:06 +02:00
Bram Matthys 97ccf29573 Make "./unrealircd gencloak" print the generated keys in a way
so the user can easily copy-paste them to their config file.
Also bump the key length from 50-60 to 80 characters.
2021-09-25 20:25:03 +02:00
Bram Matthys 72fd878664 Add "cloak_sha256" module.
This is based on the old MD5 module, it uses SHA256 instead.
Some re-indenting, replacing hardcoded values with a define,
and some other small changes due to the different hash size.
2021-09-25 20:13:57 +02:00
Bram Matthys e4b449adf8 Add set_channel_mode() which can be used to issue a server mode.
It's usage would be rare, but this is f.e. used from channeldb.
Other uses may be in some 3rd party module.
Example: set_channel_mode(channel, "+k", "key")
2021-09-25 17:42:21 +02:00
Bram Matthys 0e9d7a669f Update HOOKTYPE_LOG to work with new logging system (lots of different args) 2021-09-25 17:33:02 +02:00
Bram Matthys 892a639272 Get rid of big chunk in postconf_defaults() that is unneeded / much
easier now, now that we process the set { } block before all other
blocks (since a few years already).
2021-09-25 17:27:53 +02:00
Bram Matthys 35ae1bcc42 Update a comment about a hook
[skip ci]
2021-09-25 17:23:52 +02:00
Bram Matthys c6ef13b258 Remove HOOKTYPE_REQUIRE_SASL which was never called.
Apparently the other hooks were sufficient after all for authprompt ;D
2021-09-25 17:15:49 +02:00
Bram Matthys 834d38e904 Update HOOKTYPE_PRE_KNOCK to include reason (not used, though) 2021-09-25 17:08:53 +02:00
Bram Matthys 707575bc32 Resolve a number of todo items, most by simply removing them :D 2021-09-25 16:54:29 +02:00
Bram Matthys 38e47b9b62 Rename find_person() to find_user() to be consistent in the naming that
we use since UnrealIRCd 5: we have users (IsUser) and servers (IsServer).
2021-09-25 16:44:11 +02:00
Bram Matthys f2863656ea Remove a number of todo items in conf.c, some by resolving them and
others that can be removed since they are no longer relevant or
deemed not to be an issue.
2021-09-25 16:42:07 +02:00
Bram Matthys 3033fd9b6d Fix some todo items such as validating extban letter and names in ExtbanAdd() 2021-09-25 16:38:15 +02:00
Bram Matthys 73b908e413 Changes to BanContext struct (extended ban API):
* Now ban_check_types (previously checktype):
  this is one or more of BANCHK_* OR'd together, eg BANCHK_JOIN, BANCHK_MSG..
* Now ban_type (previously what2):
  this is the type of the ban, eg EXBTYPE_BAN, EXBTYPE_EXCEPT, etc.
* Now is_ok_check (previously is_ok_checktype)
  this is one of EXBCHK_* for is_ok, eg EXBCHK_PARAM to check parameter.
2021-09-25 16:28:10 +02:00
Bram Matthys b37b190fdd Add enums ExtbanCheck and ExtbanType for use in BanContext. 2021-09-25 16:16:42 +02:00
Bram Matthys fa95735f29 Merge branch 'unreal60_dev' of github.com:syzop/unrealircd-next into unreal60_dev 2021-09-25 16:10:39 +02:00
Bram Matthys e18bea2a89 Re-add STATUSMSG in 005 and change the make_prefix() since it now
creates two buffers.
Also remove the placeholder for STATUSMSG and PREFIX in src/api-isupport.c
2021-09-25 16:09:50 +02:00
k4be 063bdc1f5b Merge branch 'unreal60_dev' of github.com:syzop/unrealircd-next into unreal60_dev 2021-09-25 16:02:16 +02:00
k4be 11fb778e9d Move METADATA isupport to a correct place 2021-09-25 16:01:27 +02:00
Bram Matthys 3f5d9bf865 member modes / prefix modes (vhoaq) should not show up in CHANMODES= 2021-09-25 16:00:44 +02:00
Bram Matthys bf6d47716e An extra -Wformat-nonliteral fix for clang 3.x (ubuntu 16.04 / debian 8). 2021-09-25 15:55:49 +02:00
k4be ae08cbfb3b Fix isupport PREFIX token generation 2021-09-25 15:40:54 +02:00
Bram Matthys 49e1a8a565 Merge branch 'unreal60_dev' of github.com:syzop/unrealircd-next into unreal60_dev 2021-09-25 15:25:00 +02:00
k4be a07f7f2567 extjwt cmodes: generate array of mode characters 2021-09-25 15:23:04 +02:00
Bram Matthys 174459587c Fix crash on CAP-capable TLS client connect.
Crash was introduced couple of weeks ago by proxy stuff.
2021-09-25 15:22:17 +02:00
Bram Matthys 4a4d069f11 Get rid of ignore for -Wformat-nonliteral in two entire files,
now it is only in 5 functions in entire UnrealIRCd. Acceptable.
2021-09-25 15:16:45 +02:00
Bram Matthys 8603c2eb71 Update hunt_server() so command is really the command (eg "LUSERS") and
not a format string (eg ":%s LUSERS %s"). It now simply concats all parv[]'s.
That is, up to parc count. And it automatically does the :stuff for the
last parameter if it contains spaces or starts with a : etc.

This gets rid of a bit sketchy code with an arbitrary maximum etc.

Now it's just:
if (hunt_server(client, NULL, "REHASH", 1, parc, parv) != HUNTED_ISME)
	return;

This has one side effect, though:
Previously we used the format string, so it may be possible for S2S
traffic to now have more arguments then before here and there.
Eg:
* It could be that the caller was using a format string to
  intentionally cut off an extra parameter at the end.
  You can still do that if you call with eg parc-1 instead of parc.
  I don't think there were any such cases though, but hard to rule out.
* Extranous parameters may show up in S2S traffic where it was
  previously unexpected.
2021-09-25 14:49:19 +02:00
Bram Matthys b5375de52d Move some reputation log msgs to ULOG_DEBUG (they already required DEBUGMODE) 2021-09-25 14:24:15 +02:00
Bram Matthys 299c885802 More room for log buffer 2021-09-25 14:23:20 +02:00
Bram Matthys 10ec3c164a Rename the old cloaking module to "cloak_md5" (UnrealIRCd 3.2.1 - 5.2.X)
It was used from July 2004 and served us well it seems.
2021-09-25 11:23:14 +02:00
Bram Matthys ec8f54ec26 Update cloaking key mismatch error and rename some stuff. 2021-09-25 11:19:15 +02:00
Bram Matthys 5100d4863c Guard against multiple log blocks logging to the same file. 2021-09-25 11:12:00 +02:00
Bram Matthys 47279108e4 Use get_operclass() in extbans/operclass as well. 2021-09-25 11:02:39 +02:00
Bram Matthys cac8c34bcc JSON logging: expand operlogin and operclass for users who are ircop.
This uses the new get_operlogin() / get_operclass() functions.
Also updated whois code to use them too.
2021-09-25 10:58:39 +02:00
Bram Matthys b95eb0b3b7 Add get_operlogin() and get_operclass() functions to make things easy.
This retrieves the oper login (/OPER thislogin ...) and operclass of
local and remote users.
2021-09-25 10:57:00 +02:00
Bram Matthys c1378abc32 Initialize variables to NULL (duh) 2021-09-25 10:33:47 +02:00
Bram Matthys 677fcf6b71 Move the HOOKTYPE_LOCAL_OPER back out of remove_oper_privileges().
Can't have it in that function as it may be called even when the
user was not oper before (as a safety precaution). Pitty.
2021-09-25 10:32:25 +02:00
Bram Matthys ce5917e0d9 Expose operlogin and operclass via moddata so they can be seen in WHOIS
and used for auditting purposes across servers (assuming the servers
itself can be trusted).
This is done via the 'operlogin' module which is loaded by default.
Obviously for opers of U5 and below this information is not available.

This also changes the HOOKTYPE_LOCAL_OPER hook to include oper block info:
-int hooktype_local_oper(Client *client, int add);
+int hooktype_local_oper(Client *client, int add, ConfigItem_oper *oper_block);
2021-09-25 10:28:36 +02:00
Bram Matthys b00743fa79 Bump moddata slots
[skip ci]
2021-09-25 10:24:32 +02:00
Bram Matthys edbfaaf95d JSON logging: expand user modes, snomasks, and oper login (if available)
This also adds a function get_usermode_string_r(), which requires
you to specify the buffer (and buffer length) for building the
umode string.
2021-09-25 09:45:30 +02:00
Bram Matthys 6e74cd133b Expand channel modes in JSON logging messages of 'channel' 2021-09-25 09:28:00 +02:00
Bram Matthys 135c5f0747 Use strlcpy()/strlcat()/strlcat_letter() in channel_modes() instead
of pointer calculations. We don't need the speed improvement anymore.
2021-09-25 09:21:31 +02:00
Bram Matthys bf7a72a850 Usermode_Table[].flag -> Usermode_Table[].letter
just like how it is now in U6 in channel modes and extended bans
2021-09-25 09:13:34 +02:00
Bram Matthys fbf3a51517 Add HOOKTYPE_CAN_SET_TOPIC, which works similar to HOOKTYPE_CAN_KICK.
Move checking of +t restrictions to chanmodes/topiclimit.
Move checking for +m restrictions to chanmodes/moderated.
Now the only check remaining in topic is for +b (banned users)
which is fine I think.
2021-09-25 09:04:19 +02:00
Bram Matthys 618049fca1 Add buildnumeric() function, which will only be used sporadically as you
would normally use sendnumeric() instead.

The buildnumeric() function prepares a buffer but does not send it.
It is used in eg CAN_KICK / CAN_SET_TOPIC, where you need to set an
'errbuf' with a full IRC protocol line to reject the request (which
then may or may not be sent depending on operoverride privileges).
2021-09-25 09:03:48 +02:00
Bram Matthys 847f2fc384 Remove is_ip_valid() as we already have is_valid_ip(), and update
the doxygen docs a bit for that function.
2021-09-25 08:17:47 +02:00
Bram Matthys c582a29f09 Update doxygen docs a bit (minimal) for channel access functions. 2021-09-25 08:13:18 +02:00
Bram Matthys fabe16a95c Get rid of has_voice(), is_half_op(), is_skochanop(), is_chan_op(), is_chanadmin(),
is_chanowner(). Using check_channel_access() instead now.
2021-09-25 08:00:57 +02:00
Bram Matthys 0b6336c5f9 Update config.guess and config.sub from 2015-03-04 to 2021-06-03 2021-09-24 18:20:13 +02:00