Commit graph

  • 275cb97cfc
    For JSON-RPC with UNIX Domain sockets, split on \n (newline). This so multiple parallel requests can be handled properly. Bram Matthys 2023-04-01 12:24:47 +0200
  • 89f75bd6e7
    Fix some warnings: change an int to time_t and vice-versa Bram Matthys 2023-04-01 09:51:53 +0200
  • a6820b4a8d
    Fix weird +F values when two channels merge. This was a forgotten TODO item for cmodef_dup_struct(), more netsync tests are still to follow. Bug reported by Lord255. Bram Matthys 2023-04-01 09:06:37 +0200
  • 4e49323e88
    Fix crash on rpc-user { } block without a name. Bram Matthys 2023-04-01 08:58:17 +0200
  • 7a50f963f8
    Make channel.set_topic use the issuer internally. No logging or other changes yet, just unrealircd.org/issued-by testing. Bram Matthys 2023-03-31 14:27:56 +0200
  • a3c151a16a
    RPC: add rpc.set_issuer, eg set to logged in user on the admin panel. This so UnrealIRCd knows who is issuing the commands. This information is then passed on to unrealircd.org/issued-by and is planned to be used by the logging system too. Bram Matthys 2023-03-31 12:49:25 +0200
  • 5871bd9463
    Initial work on unrealircd.org/issued-by message tag. This will communicate the original issuer of a command. For example an "SAMODE #test +s" results in a SAMODE coming from :maintest.test.net MODE ....etc.... And with this feature, we will communicate the IRCOp who did it: @unrealircd.org/issued-by=OPER:Syzop..etc.... This tag is only sent to servers and to IRCOps, not to ordinary users. Bram Matthys 2023-03-31 12:07:43 +0200
  • 1ca0b76bb5
    Validate value of rpc-user THISNAME { } Bram Matthys 2023-03-31 11:54:12 +0200
  • c9f697e3ca
    Merge branch 'unrealircd:unreal60_dev' into piss60 angryce 2023-03-31 11:25:31 +0200
  • 8c6c9b6206
    Fix SAMODE showing tags for the person who executed the SAMODE instead of the server executing the MODE. Eg unrealircd.org/userhost was set. This occured because the client = &me; was done after the message tag preparation, now moved up so it's done before. Bram Matthys 2023-03-31 11:20:09 +0200
  • eeaa4b53b8
    Merge branch 'unrealircd:unreal60_dev' into piss60 angryce 2023-03-30 21:47:08 +0200
  • 9ab876133d
    Add wildcard support to blacklist-module. This also removes the following warning as a side-effect: "blacklist-module for '%s' but module does not exist anyway". Bram Matthys 2023-03-30 17:41:02 +0200
  • b099033c1b
    Load RPC modules by default but don't enable webserver or RPC sockets. See release notes: +* The RPC modules are enabled by default now. This so remote RPC works + from other IRC servers for calls like modules.list. The default + configuration does not enable the webserver nor does it cause + listening on any socket for RPC, for that you need to follow the + [JSON-RPC](https://www.unrealircd.org/docs/JSON-RPC) instructions. Bram Matthys 2023-03-30 17:34:39 +0200
  • 553d826ab3
    Update release notes [skip ci] Bram Matthys 2023-03-30 17:23:55 +0200
  • bfee61d52d
    Fix dereferencing the wrong variable in a config_error() Bram Matthys 2023-03-30 16:58:44 +0200
  • b51c8315fd
    Add and use set::modef-split-delay which makes +f ignore join-flood for this amount of seconds (default: 75) when a server splits. This helps in case a server dies and the clients reconnect to the other servers, causing a join-flood to be triggered needlessly. Of course, OTOH disabling a flood protection temporarily is not ideal, but after seeing it being triggered too often and requiring manual intervention in many +f/+F channels, this is the best option I think, if we want +f/+F to work as painless as possible. Bram Matthys 2023-03-30 16:51:39 +0200
  • aae8306ef6
    Do some sanity checking on extban names: max 32 characters and a-z, 0-9, _, - Bram Matthys 2023-03-29 16:39:16 +0200
  • f4755fe587
    Do some sanity checks on flood profile names max length 24, and every character is a-z, 0-9, -, _ Bram Matthys 2023-03-29 16:34:36 +0200
  • a5b6365ef0
    Assume +f profile "normal" always exists, since that is the case. Also fix some "NULL check but dereferenced before" warnings. Bram Matthys 2023-03-29 16:24:57 +0200
  • 8ff5fb62fb
    Get rid of some shadow (bug in +f config profile handling) Bram Matthys 2023-03-29 16:23:34 +0200
  • 55350fe3a3
    Fix due to recent +f rewrite: add check for [ at start, fixes OOB read. Bram Matthys 2023-03-29 09:50:10 +0200
  • 36ac2301c3
    Merge branch 'unrealircd:unreal60_dev' into piss60 angryce 2023-03-28 14:36:44 +0200
  • 53aedf2b3f
    Update release notes [skip ci] Bram Matthys 2023-03-27 13:23:23 +0200
  • abb6fcfcb5
    RPC: user.list and user.get now have optional object_detail_level. This is an integer which decides the amount of details in the response object. Bram Matthys 2023-03-27 13:08:16 +0200
  • f9af852c43
    Again a fix for JSON logging, so object_detail_level has same result as 6.0.6. Bram Matthys 2023-03-27 12:24:12 +0200
  • 783bdfb741
    Fix JSON logging using the correct object_detail_level (same result as 6.0.6) Bram Matthys 2023-03-27 10:13:43 +0200
  • a18bb04f45
    Bump rpc/channel module version to 1.0.5 [skip ci] Bram Matthys 2023-03-27 09:57:07 +0200
  • 957af0909b
    RPC: channel.get and channel.list now have optional object_detail_level. This is an integer which decides the amount of details in the response object. Bram Matthys 2023-03-27 09:21:29 +0200
  • 98868dbbe9
    Some leftover changes for release notes [skip ci] Bram Matthys 2023-03-27 09:15:00 +0200
  • 5d25888c71
    Update release notes [skip ci] Bram Matthys 2023-03-26 19:49:49 +0200
  • 5c84728a32
    Update release notes [skip ci] Bram Matthys 2023-03-26 19:44:46 +0200
  • 8e6c38f09a
    Potentially fix +f 'r' Bram Matthys 2023-03-26 18:54:36 +0200
  • ccd9fc4b25
    Make MODE #channel +F show the combined effective view of +f and +F. Actually it accepts the following variations for this query: MODE #test f MODE #test +f MODE #test F MODE #test +F As long as it is like that (with no parameter) we will show details. Details are shown for all of the four possible combinations of having or not having +f and +F. Bram Matthys 2023-03-26 17:16:14 +0200
  • 67f61e7444
    Retain sorting order when when set_channel_flood_profile() overwrites an existing +F profile. Bram Matthys 2023-03-26 16:43:45 +0200
  • 4ebdc7cd5b
    Don't allow subtype 't' and 'r' in +F profiles for now due to technical reasons. If you want those, then use +f. (See source) Bram Matthys 2023-03-26 16:03:35 +0200
  • 7f84bf7a39
    floodprot minor code cleanup (chp -> fld) Bram Matthys 2023-03-26 15:57:44 +0200
  • aa48b4d9d8
    Make +F and +f work together (+f subtypes override +F settings) Bram Matthys 2023-03-26 15:56:52 +0200
  • 1590628488
    Drop the alt-actions +m and +M for the CTCP floodtype. When a channel CTCP flood happens and there is an +f with the 'c' floodtype, we set channel mode +C by default. Alternative action possiblities were +m and +M. I don't think anyone really used those alt actions for CTCP because makes little sense to set the channel +m/+M on a CTCP flood when there is +C which has far less impact. Bram Matthys 2023-03-26 15:37:32 +0200
  • 972046448a
    Channelmode +f code cleanups: make a single parse_channel_mode_flood() function that handles all of is_ok(), conv_param() and put_param(). Bram Matthys 2023-03-26 13:33:04 +0200
  • b03b122348
    Initial work on set::anti-flood::channel likely with bugs and no validation Bram Matthys 2023-03-26 09:34:51 +0200
  • 5db1ce00b1
    Handle the HOOKTYPE_CONFIGRUN and TEST for CONFIG_SET_ANTI_FLOOD first. Bram Matthys 2023-03-26 09:00:35 +0200
  • c9fddc51f9
    Add channel mode +F <flood-profile> Bram Matthys 2023-03-25 18:35:46 +0100
  • b9be185f0a
    Make channel mode +f ban "unknown-users" first on a join flood, if the join flood is caused by >75% of "unknown-users". This to see if that will take care of the flood without harming the "known-users" group. And naturally, do something similar for message floods and nick floods. Bram Matthys 2023-03-25 13:29:17 +0100
  • 04ce8f8ed7
    Add helper functions Bram Matthys 2023-03-25 12:19:26 +0100
  • 748f381d81
    Use X509_check_host() in OpenSSL 1.1.0 and later and don't use it for OpenSSL 1.0.2 anymore, 1.0.2 will use the fallback version. This changes the include file. Bram Matthys 2023-03-25 12:15:06 +0100
  • 78ce692357
    Move ban_exists() to the core (was a helper function in channeldb) Bram Matthys 2023-03-25 10:38:05 +0100
  • 5f36221869
    Add OpenSSL include to fix compile warning. X509_check_host() requires openssl/x509.h -- well except on newer OpenSSL's apparently :D Bram Matthys 2023-03-25 10:31:30 +0100
  • bfd9650abf
    Don't use X509_CHECK_FLAG_NO_PARTIAL_WILDCARDS to fix compile problems. I guess it's not that important so not doing #if defined() checks for it. Compile problem reported by val. Bram Matthys 2023-03-25 10:22:28 +0100
  • 24622144b1
    Bump version to 6.0.8-git [skip ci] Bram Matthys 2023-03-25 09:19:20 +0100
  • 83d2498ec8
    Add configure check for and use X509_check_host() instead of always using our own implementation (that is not really ours, by the way). Bram Matthys 2023-03-25 08:28:29 +0100
  • d5aa0b61f1
    Bump max length of log entries from 8k to 16k (for example for logging a 8k+512 bytes line during debugging). Bram Matthys 2023-03-25 07:39:44 +0100
  • b51a533ccf
    In WHOWAS show the normal host (vhost/cloakedhost) to IRCOps now that the realhost/IP is communicated on a separate line. This so you now can see both vhost/cloakedhost and realhost as an IRCOp in a single WHOWAS request. Bram Matthys 2023-03-25 07:32:43 +0100
  • 89611887cb
    Previous fix for big tags was insufficient. 4K+4K+512 rule should now be OK. This also adds the MAXLINELENGTH define which is set to 4K+4K+512, it can be used when you are dealing with complete lines (quite rare in the code, mostly in socket code and labeled response). And now also #define READBUFSIZE MAXLINELENGTH but it is used beyond read buffers, als in write buffers of course. Bram Matthys 2023-03-25 07:30:22 +0100
  • da3c1c6544
    ** UnrealIRCd 6.0.7 ** Bram Matthys 2023-03-24 13:26:29 +0100
  • 7194799f93
    Fix valid_vhost() rejecting user@host. Reported by Lord255. Bram Matthys 2023-03-24 13:19:57 +0100
  • c4059a4b13
    Update release notes [skip ci] Bram Matthys 2023-03-24 08:56:46 +0100
  • a743c5956d
    Buy a brain.. [skip ci] Bram Matthys 2023-03-22 15:32:06 +0100
  • ed14d044e9
    Fix crash in SVSO due to change from earlier today [skip ci] Bram Matthys 2023-03-22 15:31:21 +0100
  • 2d4c064c59
    Makefile.windows: add missing standard-replies.dll [skip ci] Bram Matthys 2023-03-22 15:11:11 +0100
  • 2a719df7f0
    Update release notes; mention windows libs [skip ci] Bram Matthys 2023-03-22 14:43:43 +0100
  • 9a171f2c79
    Update release notes [skip ci] Bram Matthys 2023-03-22 10:59:22 +0100
  • e83c610b39
    Add valid_vhost() and validate oper::vhost too just like vhost::vhost. Actually make them both use this same function, even thought he original vhost::vhost check was a bit more informational. Bram Matthys 2023-03-22 10:24:41 +0100
  • 1274e3d142
    Update release notes [skip ci] Bram Matthys 2023-03-22 09:48:43 +0100
  • 23254a8b2b
    Fix for c-ares library bump (forgot to run ./autogen.sh) Bram Matthys 2023-03-22 09:45:30 +0100
  • f24b708562
    Update curl-ca-bundle to version of 10-jan-2023 from https://curl.se/ca/cacert.pem Bram Matthys 2023-03-22 09:44:12 +0100
  • 62f79c3375
    Update shipped c-ares library to 1.19.0 (28-jan-2023) Bram Matthys 2023-03-22 09:41:24 +0100
  • 6b9cb96787
    Update shipped Jansson library to 2.14 (9-sep-2021) Bram Matthys 2023-03-22 09:39:42 +0100
  • ed2113e97c
    Update PCRE2 to 10.42 (12-dec-2022) Bram Matthys 2023-03-22 09:38:01 +0100
  • 3d8905dd1c
    Fix "unknown connection(s)" in LUSERS being rather high. This was a counting bug in src/socket.c. The socket itself was actually freed though, so it's purely counting that was wrong. Bram Matthys 2023-03-22 09:31:26 +0100
  • 6f0757a2d0
    Update release notes [skip ci] Bram Matthys 2023-03-22 09:13:50 +0100
  • 852169429d
    Update release notes [skip ci] Bram Matthys 2023-03-22 09:03:41 +0100
  • 4b4562516c
    Another attempt at UTF8-aware spamfilter. Bram Matthys 2023-03-22 08:56:08 +0100
  • 768a08f83b
    Fixes for remote REHASH of a server: fix both missing and duplicate lines. Duplicate line reported by Lord255 in https://bugs.unrealircd.org/view.php?id=6082 Missing line(s) may have been mentioned by someone but never reported on the bug tracker. Bram Matthys 2023-03-20 11:45:41 +0100
  • 8a48cfb664
    Fix not sending CAP DEL on module unload. Reported by westor in https://bugs.unrealircd.org/view.php?id=6104 The code was there but the order of which the checks were done was wrong, so first it was checking which CAP's were unloaded and after that it was unloading the CAP, instead of the other way around. Bram Matthys 2023-03-20 10:53:41 +0100
  • a7c9ecb4e7
    Add deny link::reason (optional) and display it in oper warnings and to the other side of the link. Bram Matthys 2023-03-20 09:17:52 +0100
  • a1e7e9f882
    Move deny link { } handling to server module. Bram Matthys 2023-03-20 09:09:03 +0100
  • 56478f04aa
    When an IRCOp uses user mode +H (hide oper) then only hide swhois entries that have the tag "oper", IOTW: the ones that are added through the oper { } block, and not the ones added through different means like a vhost { } block. Really minor thingy but suggested by JanisB in https://bugs.unrealircd.org/view.php?id=4233 and actually possible nowadays when swhois items are tagged. Bram Matthys 2023-03-19 12:27:56 +0100
  • 5a95a19d2d
    Update release notes [skip ci] Bram Matthys 2023-03-19 12:06:55 +0100
  • 37b2f951fd
    Update release notes [skip ci] Bram Matthys 2023-03-19 12:03:37 +0100
  • fae628cbdf
    Fix "Missing snomask logging configuration" REHASH issue if you do actually have 1 snomask configured (a single one). Although this is rather rare and unusual, it should be possible. Previously we required at least 2 snomasks and the counter did not properly reset during rehashes. Not sure why we required 2 and not 1, and the counter reset was a bug. Reported by westor in https://bugs.unrealircd.org/view.php?id=5994 Bram Matthys 2023-03-19 11:51:28 +0100
  • 5c108e0ec3
    Don't fetch GeoIP.dat upon blacklist-module geoip_classic; Reported in https://bugs.unrealircd.org/view.php?id=6100 Bram Matthys 2023-03-19 11:25:37 +0100
  • 15c8da2be8
    Send ERR_INPUTTOOLONG (417) on oversized message-tags, as per https://ircv3.net/specs/extensions/message-tags Reported by progval in https://bugs.unrealircd.org/view.php?id=5949 Bram Matthys 2023-03-19 10:12:38 +0100
  • 951b913800
    Update crule.c, re-porting it from ircu, to hopefully fix some bug(s). Reported by 9pfs in https://bugs.unrealircd.org/view.php?id=6248 Bram Matthys 2023-03-19 08:36:59 +0100
  • 99c3f8688e
    When we blocked remote requests for CREDITS/INFO/LICENSE 10 years ago due to flood attacks, back then we changed the argument silently to point to our own server, eg 'INFO some.remote.server' ended up being 'INFO' (local server) when requested by non-IRCOps. Now, we simply return "Permission denied" in such cases, which is more clear and explicit. Reported by progval in https://bugs.unrealircd.org/view.php?id=6004 Bram Matthys 2023-03-18 14:11:48 +0100
  • eccf108866
    Forgot second part of the patch in previous commit. Bram Matthys 2023-03-18 14:01:37 +0100
  • 3bccc63125
    Fix +S stripping too much on incorrect color codes. Reported by semioriginal in https://bugs.unrealircd.org/view.php?id=5908 with the patch also by semioriginal. Bram Matthys 2023-03-18 13:58:59 +0100
  • 5cdcb95cdf
    Fix log message nick.BAD_NICK_REMOTE showing wrong server. Reported by Valware in https://bugs.unrealircd.org/view.php?id=6060 Bram Matthys 2023-03-18 13:41:16 +0100
  • 3329cbcf18
    Fix @if module-loaded() for modules that are about to be unloaded during REHASH. Reported by westor in https://bugs.unrealircd.org/view.php?id=6122 Bram Matthys 2023-03-18 13:35:43 +0100
  • 80d9b00de2
    Possible fix for changes yesterday in moddata websocket_mdata_unserialize, freeing of old websocket data (probably never called, but hey..) Bram Matthys 2023-03-18 07:39:09 +0100
  • 6cb7a12baa
    Minor rls notes updates [skip ci] Bram Matthys 2023-03-17 19:10:09 +0100
  • 8ed633a452
    Update release notes [skip ci] Bram Matthys 2023-03-17 19:05:39 +0100
  • 0428819c03
    Add security group "websocket-users" and add security-group options security-group::websocket and security-group::exclude-websocket, all similar to how security-group::webirc works but for websocket. Suggested by PeGaSuS in https://bugs.unrealircd.org/view.php?id=5598 and Nini in https://bugs.unrealircd.org/view.php?id=6222 Bram Matthys 2023-03-17 18:57:59 +0100
  • 3c64392a86
    Sync websocket status over the network (needed for next commits) Bram Matthys 2023-03-17 18:52:59 +0100
  • 7c98f10259
    Update release notes [skip ci] Bram Matthys 2023-03-17 18:14:59 +0100
  • cdb36e7e30
    WHOWAS: Show IP address and account to IRCOps. Thanks to Noisytoot for https://github.com/unrealircd/unrealircd/pull/227 who suggested displaying account and provided a partial patch, and armyn in https://bugs.unrealircd.org/view.php?id=6153 suggesting IP. Bram Matthys 2023-03-17 18:02:32 +0100
  • fcdb059883
    Fix whitespace and add some comments, before I go edit this file Bram Matthys 2023-03-17 17:36:57 +0100
  • cc97589e47
    Update release notes a bit [skip ci] Bram Matthys 2023-03-17 14:27:16 +0100
  • 96a6cf03a1
    Probably helps if i add the .c file Bram Matthys 2023-03-17 14:20:58 +0100
  • 45757da12e
    Add CAP standard-replies, and send ACCOUNT_REQUIRED_TO_CONNECT when a user is soft-banned, from authprompt anyway. Bram Matthys 2023-03-17 14:20:02 +0100
  • db23e7ba74
    Update a module description (copy-paste error) [skip ci] Bram Matthys 2023-03-17 14:06:42 +0100