Commit Graph

  • 4b23596b4c
    Code cleanup: some strncmp -> str_starts_with* replaces (less chance of mistakes) Bram Matthys 2023-06-17 17:44:26 +0200
  • 4c2bb2ff21
    ** UnrealIRCd 6.1.1.1 ** Bram Matthys 2023-06-16 18:06:44 +0200
  • cca19fa7f0
    Fix maxperip bug when using a WEBIRC proxy/gateway with IPv4 vs IPv6 mismatch. (more info to follow) Bram Matthys 2023-06-16 18:03:03 +0200
  • 65da3d7ccd
    Mention ./unrealircd upgrade [skip ci] Bram Matthys 2023-06-14 09:14:21 +0200
  • 6e2569a9b7
    ** UnrealIRCd 6.1.1 ** Bram Matthys 2023-06-14 08:53:07 +0200
  • fd7a715e17
    Don't use slow socket closing (w/TLS handshake) for (G)ZLINE. The whole point of (G)ZLINEs is that it rejects instantly upon accept, that's what makes them different from KLINE/GLINE. Bram Matthys 2023-06-07 15:10:14 +0200
  • c315751c2e
    Fix crash with log destination 'syslog'. Bram Matthys 2023-06-04 15:11:58 +0200
  • acbedd5938
    Also trigger hi connection warning when near maxconnection limit Bram Matthys 2023-06-04 10:06:12 +0200
  • a94884c6a9
    Mention that hbm_return_after actually implements BETWEEN (#252) Val Lorentz 2023-06-04 09:58:57 +0200
  • 635c4e22dc
    README: Sync "About UnrealIRCd" with the text on the site [skip ci] Bram Matthys 2023-05-31 18:20:46 +0200
  • 61cd88c710
    Update market share percentage in README to match IRCStats Dec'2022 Bram Matthys 2023-05-31 16:09:56 +0200
  • f1a5e30e8a
    ** UnrealIRCd 6.1.1-rc1 ** Bram Matthys 2023-05-31 08:03:20 +0200
  • 0816cf79bc
    TOPIC does not need CMD_BIGLINES anymore after commit c32ff22a3e [skip ci] Bram Matthys 2023-05-31 07:33:08 +0200
  • e3bd914ad8
    Add a link in release notes [skip ci] Bram Matthys 2023-05-29 19:18:33 +0200
  • c32ff22a3e
    Change the meaning of CMD_BIGLINES of yesterday. Without CMD_BIGLINES: parameters to commands can be 510 bytes max (but eg. strlen(parv[1])+strlen(parv[2]) can be >510, like 510*2, when received from servers with BIGLINES support). If someone does set CMD_BIGLINES in their CommandAdd() then the parameter(s) size is not limited an can be up to 16k. Bram Matthys 2023-05-29 15:12:15 +0200
  • bb419b95d1
    Remove set::maxbanlength as it is not useful and only confusing. https://www.unrealircd.org/docs/Set_block#set::maxbanlength Bram Matthys 2023-05-28 20:25:02 +0200
  • 23bddde416
    Server w/o BIGLINES: fix line cutting at wrong place in parse2() Bram Matthys 2023-05-28 18:36:13 +0200
  • 7820676616
    SetDeadSocket() in close_connection() to avoid a crash in todays code which was like: 1) exit_client gets called 2) close_connection() sets client->direction to NULL 3) a bit further it calls remove_dependents() 4) a sendto is attempted and the new code accesses client->direction which is unexpected to be NULL Bram Matthys 2023-05-28 18:13:34 +0200
  • e3262c6bd8
    Change default for set::topic-setter and set::ban-setter to 'nick-user-host', previously it was set to 'nick' Bram Matthys 2023-05-28 17:51:17 +0200
  • 82dd83f7dc
    Use BIGLINES in RRPC when possible (and deal with splitting up again when it is not possible, mixed server scenario). Now a big RRPC response like server.module_list for a remote server (44KB) fits in only 3 lines, instead of almost 100 lines. Bram Matthys 2023-05-28 16:09:07 +0200
  • 2fcb5b4669
    * Server to server lines can now be 16384 bytes in size when `PROTOCTL BIGLINES` is set. This will allow us to do things more efficiently and possibly raise some other limits in the future. This 16k is the size of the complete line, including sender, message tags, content and \r\n. Also, in server-to-server traffic we now allow 30 parameters (MAXPARA*2). The original input size limits for non-servers remain the same: the complete line can be 4k+512, with the non-mtag portion limit set at 512 bytes (including \r\n), and MAXPARA is still 15 as well. * I chose 16k because I don't want to first raise it to like 8k and then realize later that 16k would be better and raise it again. * To receive BIGLINES in a command, you need to `CommandAdd()` with flags `CMD_BIGLINES`, without it you still get regular 512 max. This is so, because a lot of the code does not expect longer than 512 bytes lines or in parameters, so we can gradually change that (where needed). Bram Matthys 2023-05-28 15:01:10 +0200
  • 5e64991296
    Fix CHATHISTORY BETWEEN accidentally including a message too much Reported by progval in https://bugs.unrealircd.org/view.php?id=5952 Bram Matthys 2023-05-28 11:07:10 +0200
  • a4d7ca022e
    Update CHATHISTORY AROUND to include middle message Reported by progval in https://bugs.unrealircd.org/view.php?id=5953 Bram Matthys 2023-05-28 10:15:51 +0200
  • f768b34050
    chathistory: Advertize MSGREFTYPES ISUPPORT token (#251) Val Lorentz 2023-05-28 07:57:36 +0200
  • b6179d87d0
    Update release notes a bit [skip ci] Bram Matthys 2023-05-27 19:21:59 +0200
  • 1a8653de19
    Fix require module not working on one side, sending SMOD too early. Has to do with running HOOKTYPE_SERVER_CONNECT too soon, before introducing ourselves to the other side. This bug was created in commit ddf639836b so exists in all UnrealIRCd 6 versions (-beta1 and up). Bram Matthys 2023-05-27 19:13:07 +0200
  • 8e2527741b
    Update shipped libraries: c-ares to 1.19.1 Bram Matthys 2023-05-27 16:03:59 +0200
  • e0bce86445
    Fix config check for old webirc { } block (if missing password) Bram Matthys 2023-05-27 08:44:17 +0200
  • 55670c5865
    Fix memory leak created today on REHASH (free the proxy blocks) Bram Matthys 2023-05-26 16:39:02 +0200
  • 257ec35931
    Require proxy blocks to have a name, like proxy nginx { } Not sure yet where/when this will be used or displayed (WHOIS? connect line?), but better require it straight from the start. Bram Matthys 2023-05-26 16:31:28 +0200
  • 995d28cacb
    Add duplicate_security_group() function, and also: unreal_duplicate_masks() duplicate_nvplist() duplicate_name_list() Bram Matthys 2023-05-26 16:15:09 +0200
  • f241fef575
    For proxy::type web, automatically add proxy::mask to exceptions for blacklist, connect-flood, handshake-data-flood (Well, unless mask::ip is used with a wildcard, due to current technical limitations, that will be resolved later) Bram Matthys 2023-05-26 15:54:09 +0200
  • fa4b39d4aa
    Fix "function returns an aggregate" to make GCC happy. Actually I don't think this was really wrong as this is an enum, which is probably why clang does not complain... but still... whatever.... Bram Matthys 2023-05-26 14:39:01 +0200
  • cf5808dc44
    Error on listen::options::websocket::forward and tell to use proxy { } block. [skip ci] Bram Matthys 2023-05-26 14:34:22 +0200
  • a7cf24c45d
    Mention new https://www.unrealircd.org/docs/Proxy_block in release notes and also for safety when redoing DNS and ident due to IP change, we now: ClearIdentLookupSent(client); ClearIdentLookup(client); ClearDNSLookup(client); Bram Matthys 2023-05-26 14:26:26 +0200
  • fb54d4a2c6
    Replace do_parse_forwarded_header() and set WEB(client)->forwarded depending on what we get from the proxy, so it can be used later in the websocket module for setting the user secure or not (the latter similar to what k4be already did in the old code). Bram Matthys 2023-05-26 13:31:01 +0200
  • d2f45fcaaf
    Move webserver proxy handling from the websocket to the webserver module. This now requires a proxy { } block -- docs follow soon Bram Matthys 2023-05-26 13:04:51 +0200
  • c537a72c10
    Make proxy::mask and webirc::mask a generic mask item almost all others in the config - https://www.unrealircd.org/docs/Mask_item Bram Matthys 2023-05-26 12:38:51 +0200
  • 9aafdb7f9c
    Move handling of webirc { } block into new proxy { } block (allow the old name) This is untested, as I'm first working on the rest... Bram Matthys 2023-05-26 12:23:51 +0200
  • c2d465c5dd
    Move chunk of code from start_of_normal_client_handshake() to a function called start_dns_and_ident_lookup(). This can then be easily called from other places as well, like the code k4be did in src/modules/websocket.c to handle proxies. Bram Matthys 2023-05-26 11:24:01 +0200
  • be95182031
    Merge branch 'unrealircd:unreal60_dev' into piss60 angryce 2023-05-22 18:32:02 +0200
  • 52472a9a88
    Add support for set unknown-users { } and the like: Bram Matthys 2023-05-22 12:07:43 +0200
  • e575d0ea05
    Update modules.default.conf with more examples of what can go wrong if you decide to go with your own modules.custom.conf, and why blacklist-module is a safer approach. [skip ci] Bram Matthys 2023-05-22 08:01:41 +0200
  • 58228e28b3
    Prevent people from using an old modules.default.conf. That file has such a clear warning in it but still people manage to load old ones. That being said, usually it is not deliberate, like an cp ../unrealircd.old/conf/* conf/ Bram Matthys 2023-05-22 07:44:17 +0200
  • 6bbb5dee37
    Add str_starts_with* and str_ends_with* functions: int str_starts_with_case_sensitive(const char *haystack, const char *needle); int str_ends_with_case_sensitive(const char *haystack, const char *needle); int str_starts_with_case_insensitive(const char *haystack, const char *needle); int str_ends_with_case_insensitive(const char *haystack, const char *needle); [skip ci] Bram Matthys 2023-05-22 07:41:54 +0200
  • 3652940c2c
    Add set::anti-flood::<secgroup>::max-channels-per-user setting to override the default set::max-channels-per-user (also called set::maxchannelsperuser). Bram Matthys 2023-05-19 21:40:33 +0200
  • f2015ad865
    Fix crash when removing a listen { } block with websocket or rpc (or changing the port number). Reported by Nini. Bram Matthys 2023-05-19 19:27:28 +0200
  • 9ea1e0e99c
    Update release notes a bit [skip ci] Bram Matthys 2023-05-18 13:23:22 +0200
  • 815c97c81e
    Update release notes on the new functionality of today. [skip ci] Bram Matthys 2023-05-18 13:21:44 +0200
  • f804c5ed65
    Add detection and set the high connect rate to 1000 per seconds. https://www.unrealircd.org/docs/FAQ#hi-conn-rate This finishes https://bugs.unrealircd.org/view.php?id=5532 Bram Matthys 2023-05-18 13:15:17 +0200
  • 82dbc4a297
    Add except ban { } for IRCCloud for maxperip & connect-flood. In both the release notes to illustrate and in example*.conf because this is generally a good idea. Bram Matthys 2023-05-18 11:57:24 +0200
  • 9b9434e442
    Delay throttling check until IP is resolved or failed to resolve. This so you can use throttling exceptions (eg in ELINE) on hostnames. Bram Matthys 2023-05-18 11:48:44 +0200
  • 89075e532a
    Send throttling and some other error messages to SSL/TLS users (encrypted). This is the start of "be more friendly to TLS users with disconnect error messages" from https://bugs.unrealircd.org/view.php?id=5532 Bram Matthys 2023-05-18 11:14:34 +0200
  • 40bdef6cd9
    Make exceeds_maxperip() use a hash table (performance improvement) Bram Matthys 2023-05-17 19:08:39 +0200
  • 63cfe56208
    Use LineCache in sendto_local_common_channels() Bram Matthys 2023-05-15 17:11:37 +0200
  • b19b70e876
    Speed up invisibility checks for delayjoin mode (and when not used too). This adds user_can_see_member_fast() which is used in at least 3 places now, more places may follow later. It has extra paramters for membership and membership modes that is very likely already looked up by the caller (or if not, it is worth doing so by the caller). Bram Matthys 2023-05-15 16:55:09 +0200
  • 0874e376bc
    Add LineCache which is used when sending a message to a channel. When sending to channel members this will cache full IRC protocol lines, including message tags and \r\n, for similar clients. This avoid the need for many mtags_to_string() calls and also entire parts of sendbuf_to_one() can be skipped as well. The "Similar clients" cache entries are defined as clients that: 1) Are of the same type: normal local client, ircop local client or remote client. 2) Have the same CAPs set, that is: we only look at CAPs that actually have anything to do with message tags ('clicaps_affecting_mtag') 3) Optionally there can be an explicit line_opts. It is not used yet but could be used when there are different type of lines sent depending on other criteria, such as chanop status or something else that doesn't fit in #1 and #2. Bram Matthys 2023-05-15 15:18:56 +0200
  • e6b068f47d
    Create modules.default.conf angryce 2023-05-10 04:49:49 +0200
  • ec800857ea Merge branch 'unrealircd-unreal60_dev' into piss60 angryce 2023-05-10 04:48:21 +0200
  • c637a2f7a4 Merge branch 'unreal60_dev' of https://github.com/unrealircd/unrealircd into unrealircd-unreal60_dev angryce 2023-05-10 04:47:55 +0200
  • 14d82bbd49
    Delete modules.default.conf angryce 2023-05-10 04:42:59 +0200
  • 5b071d7bfd
    Change return value of add_listmode() / add_listmode_ex(). This fixes a bug when two servers merge, you could see +beI items being set that already exist, if the timestamp or setter differed between servers. Now they are updated but no +beI is shown. https://bugs.unrealircd.org/view.php?id=5681 Bram Matthys 2023-05-08 18:49:25 +0200
  • 2c73a37ac7
    * New setting set::handshake-boot-delay https://www.unrealircd.org/docs/Set_block#set%3A%3Ahandshake-boot-delay which allows server linking autoconnects to kick in (and incoming servers on serversonly ports), before allowing clients in. This potentially avoids part of the mess when initially linking on-boot. This option is not turned on by default, you have to set it explicitly. * This is not a useful feature on hubs, as they don't have clients. * It can be useful on client servers, if you `autoconnect` to your hub. * If you connect services to a server with clients this can be useful as well, especially in single-server setups. You would have to set a low `retrywait` in your anope conf (or similar services package) of like `5s` instead of the default `60s`. Then after an IRCd restart, your services link in before your clients and your IRC users have SASL available straight from the start. Bram Matthys 2023-05-07 11:21:22 +0200
  • be7d1cbed9
    Minor update of early release notes [skip ci] Bram Matthys 2023-05-07 10:09:39 +0200
  • a2324268da
    Update early release notes for 6.1.1-git [skip ci] Bram Matthys 2023-05-07 09:54:54 +0200
  • 8f3db7ba1b
    Fix crash on FreeBSD/NetBSD when using JSON-RPC interface. Bram Matthys 2023-05-07 09:28:48 +0200
  • c352cc2d5f
    Fix missing 'issued-by-tag' module in windows build. Oops... [skip ci] Bram Matthys 2023-05-06 11:27:35 +0200
  • ef6ba9c0cc
    Bump max number of DNS cached entries from 241 to 4096. This may help a little during mass connects. Bram Matthys 2023-05-06 11:13:16 +0200
  • 8cabbcb59b
    DNS: add negative caching of unresolved hosts (60 seconds) Mostly to avoid repeated lookups for like clients that reconnect rapidly. Bram Matthys 2023-05-06 10:34:26 +0200
  • e04bde003c
    DNS: don't use "search domains" to avoid silly lookups for like 4.3.2.1.dnsbl.dronebl.org.mydomain.org which is a waste (and is compounded if you have multiple search domains and multiple DNSBL's) Bram Matthys 2023-05-06 09:47:09 +0200
  • 16531e53db
    Performance tweak to dbufs: 512 bytes -> 4K Bram Matthys 2023-05-06 09:23:54 +0200
  • 63c7fd604d
    Fourth attempt at fixing 3+ JSON-RPC connections causing the error "Too many unknown connections from your IP". Bram Matthys 2023-05-06 09:11:49 +0200
  • e66824b8a6
    Fix some typo or massreplace error in Failed OPER attempt message. [skip ci] Bram Matthys 2023-05-06 09:02:38 +0200
  • 0444a192bb
    Don't show REMOTE_CLIENT_JOIN for users on a server that is syncing. Was an overshight. We don't show REMOTE_CLIENT_CONNECT either in such a case. Bram Matthys 2023-05-05 16:57:21 +0200
  • 2a70a35f13
    Propagate blacklist hit message globally. For snomask 'B', but also for remote logging and JSON-RPC logging purposes. [skip ci] Bram Matthys 2023-05-05 16:24:12 +0200
  • 4ec2815d0c
    JSON-RPC: log.list now has a sources argument which allows filtering. Uses the same filter as log.subscribe. Bram Matthys 2023-05-05 15:08:02 +0200
  • 45342c2d33
    Don't log join/part/kick by default if memory log is on via conf/rpc.modules.default.conf. This because: 1) It matches the default in example.conf for ircd.log 2) It is a more privacy-friendly setting 3) The log entries are spammy / fill the memory log buffer quickly Bram Matthys 2023-05-05 14:50:28 +0200
  • 4f632125fb
    JSON-RPC: add log.list call to fetch old(er) log entries from memory. Bram Matthys 2023-05-05 12:17:18 +0200
  • d48ccb1ec8
    When rpc.modules.default.conf is loaded, remember last 1000 lines of log entries for a maximum of 7 days, in memory. [skip ci] Bram Matthys 2023-05-05 12:16:10 +0200
  • 1dcef57970
    Add safe_json_decref() which sets pointer to NULL after decref. Bram Matthys 2023-05-05 09:51:09 +0200
  • 95074410a5
    Set version to 6.1.1-git [skip ci] Bram Matthys 2023-05-05 09:49:42 +0200
  • 5d3319d662
    Whoops.. fix windows compile issue :D. Let's not add a random x there. Bram Matthys 2023-05-05 07:46:21 +0200
  • 1317784de1
    ** UnrealIRCd 6.1.0 ** Bram Matthys 2023-05-05 07:32:22 +0200
  • c400e9282e
    Remove CCM ciphers, which are likely unavailable anyway. Bram Matthys 2023-04-27 13:16:15 +0200
  • af6d93f584
    Fix small memory leak when using JSON-RPC timers. Bram Matthys 2023-04-27 09:14:58 +0200
  • 215869b421
    Fix memory leak in whowasdb Caused by fix a01862bf05 which no longer assigns but duplicates string values. Bram Matthys 2023-04-26 18:12:31 +0200
  • 9e80487270
    JSON-RPC: server_ban.del: more fixes for previous two commits (done) Bram Matthys 2023-04-25 15:41:40 +0200
  • 30ed59617e
    Additional fix for previous: deletion didn't work either, let's move this fiddling up one layer. Though i should really check if .get works. Bram Matthys 2023-04-25 15:28:38 +0200
  • 5ec2701e9d
    JSON-RPC: server_ban.add: fix softbans not working. Actually two issues: * passed the wrong 'type' so it rejected all softbans. * and fix bans being added with %% instead of %. Bram Matthys 2023-04-25 15:22:42 +0200
  • 2e6f3a50d2
    Fix-for-fix of remote includes crash of yesterday (2922a8ae5a) Bram Matthys 2023-04-23 07:44:00 +0200
  • f467c031c1
    Fix memory leak when an outgoing TLS_connect() fails. Reported by immibis in https://bugs.unrealircd.org/view.php?id=6263 Bram Matthys 2023-04-22 14:36:21 +0200
  • 2922a8ae5a
    Fix crash if there is a parse error in an included file and there are other remote included files still being downloaded. This issue exists both with and without cURL, so in both url interfaces. Bram Matthys 2023-04-22 14:06:47 +0200
  • 17e2a17e81
    Remove library before 'make install'. Possibly fix a bug. Bram Matthys 2023-04-19 18:52:59 +0200
  • 8ddc9bd69c
    More chgs to last commits: use listener->options & LISTENER_NO_CHECK_CONNECT_FLOOD as that is the same method we use in connect-flood. Bram Matthys 2023-04-17 09:43:46 +0200
  • a01862bf05
    whowasdb: fix double free issues Bram Matthys 2023-04-17 08:32:55 +0200
  • 172554abd4
    Make previous commit actually work Bram Matthys 2023-04-17 08:19:22 +0200
  • 76b87ed880
    Don't count RPC for set::max-unknown-connections-per-ip. This fixes you no longer being able to get on to the IRC network if you also run the webpanel from your same source IP (and other similarly weird errors, of course) Bram Matthys 2023-04-17 08:09:54 +0200
  • ebcfe6a6bc
    Add sendtaggednumeric/sendtaggednumericfmt (#250) Val Lorentz 2023-04-15 16:34:38 +0200
  • 50e5cb7cbe
    Bleh, fix a warning... Bram Matthys 2023-04-15 14:52:06 +0200
  • 2b1fad89be
    ** UnrealIRCd 6.1.0-rc2 ** Bram Matthys 2023-04-15 14:07:06 +0200