Commit Graph

5453 Commits

Author SHA1 Message Date
Shivaram Lingamneni f28b10986e redact: fix error line for missing channel (#2321) 2025-12-31 14:56:23 -05:00
Shivaram Lingamneni d2c9c80cc1 fix mysql logline 2025-12-31 02:37:00 -05:00
Shivaram Lingamneni 6386b9ef70 fix some redact bugs (#2320)
* Consistently return UNKNOWN_MSGID for unknown or invalid msgids
* If both client's DMs are stored in persistent history, a single
  server.DeleteMessage will delete the single canonical copy of the message.
  So the second call will fail, which is fine.
2025-12-31 02:15:11 -05:00
Shivaram Lingamneni 6ba60c89c4 move mysql serialization tools to shared pkgs 2025-12-30 23:34:05 -05:00
Shivaram Lingamneni 0b7be24f80 propagate mysql close error 2025-12-30 23:13:55 -05:00
Shivaram Lingamneni 9f54ea07b7 prep for alternative history databases (#2316)
* abstract history DB interface

* make mysql error logging consistent

Consistently propagate database errors to the client, making the client
responsible for logging them.

* move ListCorrespondents from Sequence to Database/Buffer
2025-12-30 23:12:30 -05:00
Shivaram Lingamneni 3179fdffb0 REDACT: fix reason handling (#2319)
REDACT without a reason parameter was being relayed with an
empty reason parameter instead; fix this.
2025-12-30 18:41:24 -05:00
Shivaram Lingamneni 13653b5202 fix #2284 (#2317)
Send a configurable NOTICE on first connection that hopm can
detect via target_string
2025-12-30 02:27:09 -05:00
Shivaram Lingamneni b26571e891 bump irctest 2025-12-29 12:41:20 -05:00
Shivaram Lingamneni b7ede0730f consistent casing for SQL queries (#2315)
Makes it easier to read diffs with other database backends
2025-12-29 00:03:58 -05:00
Shivaram Lingamneni 05b41e18af bump irctest 2025-12-28 21:47:27 -05:00
Shivaram Lingamneni 748700877e dependency upgrades for v2.18 release cycle (#2314) 2025-12-23 00:07:39 -05:00
Shivaram Lingamneni 462e568f00 fix #2311 (#2312)
Validate bcrypt-cost config value to prevent silent errors
2025-12-22 03:26:09 -05:00
Shivaram Lingamneni 3c4c5dde4d fix #2309 (#2310)
If bob is monitoring alice, bob should get METADATA lines for alice
even if bob doesn't have extended-monitor.

This implementation also removes the check for extended-monitor
when sending account-notify, away-notify, chghost, setname
(which are explicitly mentioned in the extended-monitor spec)
on the grounds that nothing bad will happen if clients who support
the cap receive notifications for users they're not explicitly tracking.
2025-12-22 03:25:27 -05:00
Shivaram Lingamneni 3e9fa38f6b set up new development version 2025-12-22 03:22:05 -05:00
Shivaram Lingamneni 16186d677d bump version and changelog for v2.17.0 2025-12-22 02:34:40 -05:00
Shivaram Lingamneni d5fb189a55 changelog and version bump for v2.17.0-rc1 (#2308) 2025-12-14 04:43:30 -05:00
Shivaram Lingamneni 53664694c4 add RPL_WHOISKEYVALUE output (#2302) 2025-12-14 04:32:02 -05:00
Shivaram Lingamneni d26aa37f2c pin Alpine to 3.22 (#2306)
* Upgrade the production image from 3.19 to 3.22 (3.19 went EOL
  2025-11-01)
* Downgrade the build image to 3.22 (3.23 is buggy, see #2305)
2025-12-14 02:50:21 -05:00
Shivaram Lingamneni 9ca936a777 bump irctest 2025-12-14 02:15:44 -05:00
Shivaram Lingamneni fdd261a1e6 fix #2303 (#2304)
Fix inconsistent behavior when history.enabled is set but
history.chathistory-maxmessages is not
2025-12-14 02:13:15 -05:00
Shivaram Lingamneni aef5d77b3b Merge pull request #2301 from slingamn/ratelimited
more metadata follow-ups
2025-12-08 01:48:39 -05:00
Shivaram Lingamneni 0ce9016098 add persistence for user metadata 2025-12-07 03:05:34 -05:00
Shivaram Lingamneni f91d1d94f6 add METADATA response when MONITOR triggered 2025-12-01 07:03:26 +00:00
Shivaram Lingamneni 0119bbc36f implement FAIL METADATA RATE_LIMITED 2025-12-01 04:09:45 +00:00
Shivaram Lingamneni 96aa018352 bump irctest 2025-11-26 03:27:13 -05:00
Shivaram Lingamneni 68faf82787 Merge pull request #2299 from ergochat/shivaram_ping.1
configurable idle timeouts
2025-11-09 21:49:39 -05:00
Shivaram Lingamneni 5cda5bdac9 Merge pull request #2298 from slingamn/shivaram_operthrottle
changes to OPER command
2025-11-09 21:41:53 -05:00
Shivaram Lingamneni ed841ee62a configurable idle timeouts
Fixes #2292
2025-11-09 21:11:04 -05:00
Shivaram Lingamneni 6fdac13ad4 changes to OPER command
* Impose a throttle on OPER attempts regardless of whether they caused a
  password check.
* Never disconnect the client on a failed attempt, even if there was a
  password check.
* Change error numeric to ERR_NOOPERHOST
* Explicit information about the failure in the server log (copying Insp)

Fixes #2296.
2025-11-09 19:34:31 -05:00
Shivaram Lingamneni efc1627d23 Merge pull request #2295 from slingamn/shivaram_pushreject
fix validation of web push URLs
2025-10-26 00:58:52 -04:00
Shivaram Lingamneni 6b8265fb17 fix validation of web push URLs
They are validated by test message, but it would have been possible
to add an http url.

If an http url was added, it's still possible to remove it via
NS PUSH DELETE.
2025-10-26 00:55:30 -04:00
Shivaram Lingamneni 92f069846c Merge pull request #2290 from slingamn/goupgrade
upgrade to go 1.25
2025-08-17 21:11:02 -07:00
Shivaram Lingamneni 8913bd7fa9 upgrade to go 1.25 2025-08-18 00:07:11 -04:00
Shivaram Lingamneni 064291e902 add an explicit note covering #2289 2025-08-12 16:23:36 -04:00
Shivaram Lingamneni 65295cbafa Merge pull request #2283 from slingamn/makefile
refactor makefile to label individual targets phony
2025-06-26 22:17:06 -04:00
Shivaram Lingamneni f0b1f34da7 refactor makefile to label individual targets phony 2025-06-26 22:14:19 -04:00
Shivaram Lingamneni f918e28513 bump irctest 2025-06-26 01:31:51 -04:00
Shivaram Lingamneni 8798676ae9 update metadata corresponding to spec edits (#2282)
* spec update: metadata keys are lowercase

* add batch parameter to metadata batches

* fix: connecting clients receive METADATA, not RPL_KEYVALUE

* spec update: send RPL_METADATASUBS in a metadata-subs batch

* move some helpers

* bump irctest to forked hash

This is https://github.com/progval/irctest/pull/314 but I don't want to
couple the merges

* fix: empty value is valid

* fix: deleting a nonexistent key gets a FAIL
2025-06-22 18:59:42 -04:00
Shivaram Lingamneni cca400de73 fix: actually broadcast prereg updates to subscribers
Missed in #2281, needs a test presumably :-)
2025-06-22 13:59:36 -04:00
Shivaram Lingamneni 73e51333ad implement metadata before-connect (#2281)
* metadata spec update: disallow colon entirely

* refactor key validation

* implement metadata before-connect

* play the metadata in reg burst to all clients with the cap

* bump irctest

* remove all case normalization for keys

From spec discussion, we will most likely either require keys to be lowercase,
or else treat them as case-opaque, similar to message tag keys.
2025-06-22 13:57:46 -04:00
Shivaram Lingamneni a5e435a26b bump irctest 2025-06-21 22:04:33 -04:00
Shivaram Lingamneni 17ed01c1ed Merge pull request #2279 from slingamn/doc
fix some documentation
2025-06-19 13:29:08 -04:00
Shivaram Lingamneni 8f18454e8f fix help string for HISTORY 2025-06-19 13:25:34 -04:00
Shivaram Lingamneni 23844d4103 update documentation for globalUtf8EnforcementSetting 2025-06-19 13:22:07 -04:00
Shivaram Lingamneni 3b7db7fff7 round 1 of follow-up for metadata (#2277)
* refactoring
* send an empty batch if necessary, as per spec
* don't broadcast no-op updates
* don't trim spaces before validating the key
* bump irctest to cover metadata
* replay existing metadata to reattaching always-on clients
* use canonicalized name everywhere
* use utils.SafeErrorParam in FAIL lines
* validate key names for sub
* fix error for METADATA CLEAR
* max-keys is enforced for channels as well
* remove unlimited configurations
* maintain the limit exactly without off-by-one cases
* add final channel registration check
2025-06-18 00:22:49 -04:00
thatcher-gaming 4dcbc48159 metadata-2 (#2273)
Initial implementation of draft/metadata-2
2025-06-15 04:06:45 -04:00
Shivaram Lingamneni 0f5603eca2 bump irctest to upstream master 2025-06-09 02:20:49 -04:00
Shivaram Lingamneni 7d4f5e4adf Merge pull request #2271 from slingamn/register
fix #2270
2025-06-09 02:19:55 -04:00
Shivaram Lingamneni 16568c5ab7 fix #2270
REGISTER should strip the guest format when applicable, same as NS REGISTER.
2025-06-08 16:50:34 -04:00