Commit Graph

537 Commits

Author SHA1 Message Date
Shivaram Lingamneni ee7f818674
implement SASL OAUTHBEARER and draft/bearer (#2122)
* implement SASL OAUTHBEARER and draft/bearer
* Upgrade JWT lib
* Fix an edge case in SASL EXTERNAL
* Accept longer SASL responses
* review fix: allow multiple token definitions
* enhance tests
* use SASL utilities from irc-go
* test expired tokens
2024-02-13 18:58:32 -05:00
Shivaram Lingamneni dfe2a21b17 add panic handler to async client/channel writes
See #2113 for motivation
2024-01-05 00:18:46 -05:00
Shivaram Lingamneni 4aa1aa371d fix #2113
Persisting always-on clients was panicking if client X believed it was
a member of channel Y, but channel Y didn't have a record of client X.
2024-01-03 10:52:34 -05:00
Shivaram Lingamneni f77d430d25 use maps.Clone from go1.21 2023-08-15 20:57:52 -04:00
Shivaram Lingamneni f100c1d0fa fix incorrect chathistory batch types
This was introduced in 38a6d17ee5
2023-06-02 06:56:45 -04:00
Shivaram Lingamneni 60af8ee491 clean up force-trailing logic 2023-06-02 02:58:09 -04:00
Shivaram Lingamneni 38a6d17ee5 clean up nested batch logic 2023-06-01 06:29:22 -04:00
Shivaram Lingamneni 1da11ae8ae
implement draft/pre-away (#2044)
* implement draft/pre-away
* clean up some subtleties in auto-away aggregation.
* consistently apply auto-away only to always-on
* `AWAY *` should not produce user-visible changes wherever possible
2023-02-05 00:50:14 -05:00
Shivaram Lingamneni 3ceff6a8b1 make ReloadableListener lock-free
Also stop attaching the *tls.Config to the wrapped connection,
since this forces it to be retained beyond its natural lifetime.
2023-01-05 20:18:14 -05:00
Shivaram Lingamneni 746309e386 replace some utils.Semaphore with (*sync.Mutex).TryLock
See #1994
2022-09-02 04:25:39 -04:00
Shivaram Lingamneni 7ad31497c2 exempt a configurable number of MARKREAD commands from fakelag 2022-08-22 23:23:17 -04:00
Shivaram Lingamneni 35128bfc23 use new aligned atomic types everywhere
See 69448b13a1 / #1969; the compiler can now ensure that a uint64
intended for atomic access is always aligned to a 64-bit boundary.
Convert atomic operations on uint32s and pointers as well.
2022-08-10 02:47:39 -04:00
Shivaram Lingamneni 2b86660e5c fix read markers not being reloaded on restart 2022-05-20 01:46:41 -04:00
Shivaram Lingamneni c5579a6a34 fix #1688
* Add ACCEPT-tracking functionality (authorizing users to send DMs
  despite +R or other applicable restrictions)
* Sending a DM automatically accepts the recipient
* Add explicit ACCEPT command
2022-05-05 22:34:43 -04:00
Shivaram Lingamneni 077081076c fix #1941
KLINE'd clients would produce a QUIT snotice without a corresponding
CONNECT snotice; explicitly suppress the QUIT snotice.
2022-05-03 13:13:29 -04:00
Shivaram Lingamneni 42883972a8 make quit logging more consistent
Log it at level INFO for parity with connect / connect-ip
2022-04-28 14:19:11 -04:00
Shivaram Lingamneni 32f7868bfd implement draft/read-marker capability 2022-03-30 23:16:09 -04:00
Shivaram Lingamneni a549827f17 upgrade to go 1.18, use generics 2022-03-30 00:44:51 -04:00
Shivaram Lingamneni 4749d7e776 fix #1676, take 2
Ensure the pagination window is full by making sure that every history item
gets a replay line in CHATHISTORY output, even TAGMSG.
2021-11-01 04:34:59 -04:00
Shivaram Lingamneni 3ec5ffa340 Revert "fix #1676"
This reverts commit 5bbee02fe6.
2021-11-01 04:34:59 -04:00
Shivaram Lingamneni 5bbee02fe6 fix #1676
Fix various pagination issues with CHATHISTORY; also undo #491
(msgid munging).
2021-10-29 04:50:24 -04:00
Shivaram Lingamneni e0e4791f72 factor out some shared code 2021-09-18 21:28:16 -04:00
Shivaram Lingamneni 9b6ec04ca5
Merge pull request #1761 from delthas/feature-extended-monitor
Add support for extended-monitor
2021-08-26 10:14:31 -04:00
Shivaram Lingamneni 26cdb4cf36 fix #1650
RPL_WHOISACTUALLY should display some arbitrarily chosen IP address and
hostname.
2021-08-25 22:44:55 -04:00
Shivaram Lingamneni cf25e894e1 fix incorrect handling of overlong lines when allow-truncation is enabled 2021-08-02 21:49:42 -04:00
Shivaram Lingamneni e1401934df implement SCRAM-SHA-256 2021-07-30 12:20:13 -04:00
delthas 7fde04ea94 Add support for extended-monitor
See: https://github.com/ircv3/ircv3-specifications/pull/466
2021-07-24 20:52:03 +02:00
Shivaram Lingamneni fedf4a9176 add a debug logline for client read errors
May help clarify TLS configuration issues, possibly others too
2021-07-05 03:30:18 -04:00
Pratyush Desai 99cb1fd02c DISCONNECT Sno for always-on and/or multiclient 2021-07-03 04:41:42 +05:30
Alex Jaspersen b6264a43b6 Rename "realIP" to "ip" in WhoWas struct.
It could be the real IP or the proxied IP.
2021-06-20 11:13:18 -07:00
Alex Jaspersen e5c2588eab Show real IP in WHOWAS to opers with ban capability. 2021-06-20 10:26:30 -07:00
Shivaram Lingamneni 4910aefa37 use ergochat/irc-go instead of goshuirc/irc-go 2021-06-18 02:43:25 -04:00
Shivaram Lingamneni ac806e5c62 fix znc.in/playback for individual DM targets
This is a regression introduced in 0d05ab4ff4249f; playback for an individual
DM target would play all DMs.
2021-05-28 18:07:54 -04:00
Shivaram Lingamneni 7944871eb6 migrate additional dependencies to ergochat 2021-05-26 21:58:29 -04:00
Shivaram Lingamneni 23c7218bf1 first pass at renaming Oragono to Ergo 2021-05-26 15:55:24 -04:00
Shivaram Lingamneni 7c5a8f2013 make MaxLineLen configurable 2021-05-24 00:38:47 -04:00
Shivaram Lingamneni ba21987d03 remove draft/resume-0.5 2021-05-18 23:27:46 -04:00
Shivaram Lingamneni c53926acde fix autoreplay of DMs
I broke this in #1615 / 0d05ab4ff4
2021-04-21 10:53:43 -04:00
Shivaram Lingamneni 0b414cb158
Merge pull request #1625 from slingamn/cleanup_star.2
fix #1615
2021-04-21 09:27:54 -04:00
Shivaram Lingamneni 0d05ab4ff4 fix #1615
Remove the CHATHISTORY * and znc.in/playback *self targets,
clean up associated database code, add new mechanisms to play
all missed DMs.
2021-04-19 08:54:40 -04:00
Shivaram Lingamneni da216fc699 fix #1577
Remove debugging loglines for truncation
2021-04-19 07:06:49 -04:00
Shivaram Lingamneni f0796b2eb5
Merge pull request #1607 from slingamn/semaphore_update
simplify semaphore release code
2021-04-07 08:56:53 -04:00
Shivaram Lingamneni 5b33cd436f remove unnecessary indirection in semaphore 2021-04-07 08:44:17 -04:00
Shivaram Lingamneni 18b6e2f1cd implement CHATHISTORY TARGETS 2021-04-07 05:40:39 -04:00
Shivaram Lingamneni 4052cd12fe fix #1592
Implements the new `CHATHISTORY LISTCORRESPONDENTS` API.
2021-04-06 00:46:07 -04:00
Shivaram Lingamneni cd43fae478
Merge pull request #1597 from slingamn/away_session.1
fix #1531
2021-03-18 03:28:03 -04:00
Shivaram Lingamneni 07edf2dc1f consolidate auto-away string 2021-03-18 03:04:44 -04:00
Shivaram Lingamneni 70b20750aa fix #1531
AWAY status should be tracked per-session:

1. With auto-away enabled, away status is aggregated across sessions
   (if any session is not away, the client is not away, else use
   the away status that was set most recently)
2. With auto-away disabled, we get the legacy behavior where AWAY
   applies directly to the client
2021-03-18 02:53:18 -04:00
Shivaram Lingamneni 1efde964e1 Fix #1562
Implement the new bot mode spec:
https://github.com/ircv3/ircv3-specifications/pull/439
2021-03-17 14:36:52 -04:00
Shivaram Lingamneni 131eb229bc use the new irc-go identifiers 2021-03-10 20:07:43 -05:00