Commit Graph

2389 Commits

Author SHA1 Message Date
quaff 147403ea73 IRCv3 spec no-implicit-names has been ratified. (#2390) 2026-04-21 14:40:37 -04:00
Shivaram Lingamneni 49192e6fa5 add /v1/whois to API (#2387) 2026-04-20 00:58:29 -04:00
Shivaram Lingamneni 7c8d81ac79 pointless optimization to (*caps.Set).Strings (#2386)
Doesn't change anything on arm64 (where atomic load is a plain MOV),
but reduces atomic instructions on arm64 and other platforms.
2026-04-20 00:56:48 -04:00
Shivaram Lingamneni de005ee69f enhanced auth integrations (#2383)
* Harvest cookies from the initial websocket handshake to pass to an
  auth-script (#2185)
* Allow running auth-script and ip-check-script over unix domain socket
  (#2280)
2026-04-15 01:48:29 -04:00
Shivaram Lingamneni cfee1917f3 use deferred unlock in two more places (#2381)
No functional change, just defensive coding
2026-04-13 23:06:08 -04:00
Shivaram Lingamneni 9556e5c025 add support for draft/chathistory-end tag (#2379) 2026-04-13 22:50:24 -04:00
Shivaram Lingamneni 10da32292f fix missing read permissions checks for METADATA (#2382)
These were incorrectly refactored out in #2277.
Also group the two write subcommands together, then the
three read subcommands.
2026-04-13 22:46:10 -04:00
Shivaram Lingamneni 5bb94efaf6 fix handling of invalid API bearer tokens (#2380)
Not doing a pointfix since this only affects obvious misconfigurations of Ergo
(our attempt to be defensive against those misconfigurations failed)
2026-04-10 13:32:09 -04:00
Shivaram Lingamneni 44cd51ef36 new development version 2026-03-22 01:38:47 -04:00
Shivaram Lingamneni 4fabfb8ee3 release v2.18.0 2026-03-22 00:55:45 -04:00
Shivaram Lingamneni f9a11db153 fix (*SQLite).ListChannels
If the final channel we attempted to list had no messages, sql.ErrNoRows
would be returned as the error for the entire function, which would
prevent any channels from appearing in the targets list.
2026-03-20 04:15:29 +00:00
Shivaram Lingamneni 937bad6717 fix #2287 (#2369)
Allow restricting metadata modification to server operators
2026-03-17 14:33:11 -04:00
Shivaram Lingamneni 2a114dc78a release v2.18.0-rc1 (#2364) 2026-03-16 00:53:01 -04:00
Shivaram Lingamneni da037c0162 clean up config tests 2026-03-15 05:56:31 -04:00
Shivaram Lingamneni 0e76470249 allow testing irc/ with i18n compiled out (#2363)
Add to `make test` as well
2026-03-15 03:47:33 -04:00
Shivaram Lingamneni 218cac3037 fix environment overrides against map fields 2026-03-15 07:16:44 +00:00
Shivaram Lingamneni 52fc77433e api: defcon endpoint (#2359) 2026-03-13 03:18:23 -04:00
Shivaram Lingamneni 05c37122fc api: add /v1/list to list channels (#2358) 2026-03-13 01:53:17 -04:00
Shivaram Lingamneni ca4c3c09df goreleaser updates for v2.18 (#2357)
* Full build is default
* sqlite is only supported on Linux, MacOS, and FreeBSD;
  override the sqlite build tag based on OS where unsupported
2026-03-12 22:37:56 -04:00
Shivaram Lingamneni e7558f292c build changes (#2356)
* default build includes everything
* allow compiling out PRECIS and Skeleton (still included by default)
* consistently use `postgresql` in identifiers
2026-03-12 21:48:37 -04:00
Shivaram Lingamneni 768c01c17b add a sqlite history backend (#2352) 2026-03-12 21:32:13 -04:00
Shivaram Lingamneni 1b673f049f remove defer in AuthenticateByCertificate (#2355)
Makes the control flow unnecessarily confusing now that the check
is its own function.
2026-03-12 12:58:29 -04:00
Shivaram Lingamneni 4e65b76c67 fix #2353 (#2354)
Check certfp in API /v1/check_auth
2026-03-12 01:41:49 -04:00
Shivaram Lingamneni c61859927f fix WEBPUSH FAIL responses (#2351)
* All FAIL messages take the endpoint as a parameter when available
* Use MAX_REGISTRATIONS instead of FORBIDDEN when appropriate
* Add handler for unknown subcommand
2026-03-11 04:21:36 -04:00
Shivaram Lingamneni ec7db5a02b fix #2349 (#2350)
Add msgid to push messages when available, as required by the spec
2026-03-10 17:50:01 -04:00
Shivaram Lingamneni 69efae2c2e postgres: accept libpq URIs (#2347) 2026-03-05 14:58:09 -05:00
Shivaram Lingamneni 5fd8ed8ed6 add a postgres history backend (#2322)
Postgres support is behind a build tag; use `make build_full`
or `make install_full` to compile it in.
2026-03-05 01:18:28 -05:00
Shivaram Lingamneni 2e6fd75525 support draft/ACCOUNTREQUIRED in 005 (#2341)
https://github.com/ircv3/ircv3-specifications/pull/585
2026-03-02 04:10:58 -05:00
Shivaram Lingamneni 76e8e61705 fix #2227 (#2334)
* fix #2227

Instead of returning an error from Accept(), force the caller to process
errors from trying to read and parse the PROXY protocol.

The advantage here is that we don't have to rely on (net.Error).Temporary
or incur timed backoff from net/http when hitting these errors. However,
we still risk stalling processing of new incoming connections if someone
opens a connection to the proxy listener and doesn't send anything.
This is hard to fix while maintaining the net.Listener abstraction in
cooperation with http.Server.

* reduce proxy deadline to 5 seconds
2026-03-02 04:10:26 -05:00
Shivaram Lingamneni b120806fd5 fix #2345 (#2346)
Nil dereference from CS DEOP and EXTJWT; no security implications
2026-03-01 12:45:21 -05:00
Shivaram Lingamneni 23e1ef384c mysql: fix channels allocation 2026-03-01 06:04:07 -05:00
Shivaram Lingamneni 5fa9757b43 fix #2328 (#2329)
* Add API endpoint /v1/ns/passwd to change passwords
* New naming scheme for API endpoints under /v1/ns/
* /v1/ns/list no longer returns error responses
2026-02-08 01:27:13 -05:00
Shivaram Lingamneni 2152000312 use correct name for RPL_INVEXLIST (#2326)
Rename the constants only; no functional change
2026-01-11 02:27:37 -05:00
Shivaram Lingamneni 2da19a0760 fix #2324 (#2325)
Validate user limit parameter
2026-01-10 18:57:49 -05:00
Shivaram Lingamneni 5c0af196da fix (noopSequence).Ephemeral() 2026-01-01 15:06:53 -05:00
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 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 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