3
0
mirror of https://github.com/ergochat/ergo.git synced 2024-11-15 00:19:29 +01:00
Commit Graph

2271 Commits

Author SHA1 Message Date
Shivaram Lingamneni
b3abd0bf1d use slices.Reverse from go1.21 2023-08-15 20:45:00 -04:00
Shivaram Lingamneni
3f74612e2b implement draft/no-implicit-names 2023-08-15 20:29:57 -04:00
Shivaram Lingamneni
75bd63d0bc add channel autojoin feature
See discussion on #2077
2023-07-04 21:44:18 -04:00
Shivaram Lingamneni
ad3ad97047 upgrade to irc-go v0.4.0 2023-06-14 02:46:14 -04:00
Shivaram Lingamneni
0f39fde647 remove insecure reattach check
See #2013; given that plaintext is deprecated now, it seems like there is no
added value from continuing to police this.
2023-06-05 04:22:40 -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
d082ec7ab9
don't send multiline responses to CAP LS 301 (#2068)
* don't send multiline responses to CAP LS 301

This is more or less explicitly prohibited by the spec:

https://ircv3.net/specs/extensions/capability-negotiation.html#multiline-replies-to-cap-ls-and-cap-list

* switch to whitelist model to be future-proof

* bump irctest to include test

* add a unit test
2023-05-31 23:22:16 -04:00
Shivaram Lingamneni
3e68694760
Merge pull request #2067 from slingamn/issue2066
fix #2066
2023-05-30 23:12:19 -07:00
Val Lorentz
48f8c341d7
Implement draft/message-redaction (#2065)
* Makefile: Add dependencies between targets

* Implement draft/message-redaction for channels

Permission to use REDACT mirrors permission for 'HistServ DELETE'

* Error when the given targetmsg does not exist

* gofmt

* Add CanDelete enum type

* gofmt

* Add support for PMs

* Fix documentation of allow-individual-delete.

* Remove 'TODO: add configurable fallback'

slingamn says it's probably not desirable, and I'm on the fence.
Out of laziness, let's omit it for now, as it's not a regression
compared to '/msg HistServ DELETE'.

* Revert "Makefile: Add dependencies between targets"

This reverts commit 2182b1da69.

---------

Co-authored-by: Val Lorentz <progval+git+ergo@progval.net>
2023-05-31 01:16:14 -04:00
Shivaram Lingamneni
00cfe98461 fix #2066
CHATHISTORY TARGETS response should not be in a batch unless the client has
explicitly requested the batch cap.
2023-05-29 22:22:01 -04:00
Shivaram Lingamneni
e84793d7ee fix #2063
In #2058 we introduced two bugs:

* A nil dereference when an outside user attempts to speak
* Ordinary copy of a modes.ModeSet (which should only be accessed via atomics)

This fixes both issues.
2023-05-22 12:29:55 -04:00
Shivaram Lingamneni
eeec481b8d
tweaks to NAMES implementation (#2058)
* tweaks to NAMES implementation

* tweak member caching

* add a benchmark for NAMES
2023-04-14 02:15:56 -04:00
Shivaram Lingamneni
295a567eda
Merge pull request #2041 from mogad0n/killresponseupdate
Update response string when killing always on clients
2023-03-04 23:31:11 -08:00
Shivaram Lingamneni
db0910d82d fix linter error
See #2052
2023-03-04 23:29:16 -08:00
Shivaram Lingamneni
eb83df420b tweak KILL message
Remove `<no reason supplied>`, make default KILL anonymous
2023-02-27 03:34:38 -05:00
Shivaram Lingamneni
7c53b9430a support implicit TLS for mail submission agents
Fixes #2048
2023-02-17 00:07:21 -05: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
fc89d72045 publish MSGREFTYPES 005 token
https://github.com/ircv3/ircv3-specifications/pull/510
2023-02-02 14:28:37 -05:00
0653f90b4f update response when killing alwayson targets 2023-01-31 13:27:02 +05:30
Shivaram Lingamneni
abc71684f3 always validate UTF8 from websockets 2023-01-22 14:45:16 -05:00
Shivaram Lingamneni
9439e9b9e1 allow resizing the ws read buffer 2023-01-21 19:10:25 -05:00
Shivaram Lingamneni
5eaf7b37e5 reduce websocket read allocations
See #2037
2023-01-21 19:10:17 -05:00
Shivaram Lingamneni
4317016a09
Merge pull request #2028 from slingamn/channels_taketwo.1
refactor of channel persistence to use UUIDs
2023-01-15 08:01:37 -08:00
Shivaram Lingamneni
b2087977d0
Merge pull request #2032 from slingamn/scram.1
recommended default: advertise SCRAM
2023-01-15 04:16:28 -08:00
Shivaram Lingamneni
177133a96f
Merge pull request #2033 from slingamn/rehash
fix #2031
2023-01-15 04:13:53 -08:00
Shivaram Lingamneni
16e214e4fb fix #2031
Sanitize the in-band error message from REHASH
2023-01-12 06:58:18 -05:00
Shivaram Lingamneni
46d32520c7 recommended default: advertise SCRAM
Fixes #1782
2023-01-11 09:21:47 -05:00
Shivaram Lingamneni
f72a6fa011 round wait times to the nearest millisecond 2023-01-08 06:36:04 -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
7ce0636276 refactor of channel persistence to use UUIDs 2023-01-04 05:06:21 -05:00
Shivaram Lingamneni
bceae9b739 add standard-replies capability 2023-01-01 07:08:44 -08:00
Shivaram Lingamneni
f6f7315458 bump version for new development cycle 2022-12-25 03:17:21 -05:00
Shivaram Lingamneni
df8eef5b0a bump version for stable release 2022-12-25 02:09:51 -05:00
William Rehwinkel
63c08ce537
Fix SAREGISTER short help in SAVERIFY command 2022-12-24 13:13:38 -05:00
Shivaram Lingamneni
d0c01301fd update version number for v2.11.0-rc1 2022-12-18 00:25:50 -05:00
Shivaram Lingamneni
a052b82c78
don't reference SIGUSR1 on windows (#2018) 2022-12-18 00:15:55 -05:00
Shivaram Lingamneni
d17faf6bcb fix #1975
Provide a nondestructive stack trace dump option even when the http pprof
listener is disabled
2022-12-10 22:15:37 -08:00
Shivaram Lingamneni
77de026961 persistence broadcast needs a cap check 2022-12-10 22:05:46 -08:00
Shivaram Lingamneni
898f84c613 update persistence spec link 2022-12-10 22:05:46 -08:00
Shivaram Lingamneni
ae1de2554e add persistence broadcasting 2022-12-10 22:05:46 -08:00
Shivaram Lingamneni
893922afe0 don't report PERSISTENCE STATUS in reg burst for anonymous clients 2022-12-10 22:05:46 -08:00
Shivaram Lingamneni
99d27ff737 initial implementation of draft/persistence 2022-12-10 22:05:46 -08:00
Shivaram Lingamneni
fa3de3e149 fix #1983
TAGMSG should not get automatic RPL_AWAY replies
2022-12-10 21:01:28 -08:00
Shivaram Lingamneni
825cdab67d fix #1850
Add WHO responses for services
2022-12-02 07:23:29 -05:00
Shivaram Lingamneni
35b5613349 re-add draft/CHATHISTORY 005
Kiwi expects it due to https://github.com/kiwiirc/kiwiirc/pull/1244 , but
the corresponding spec change only altered the cap name, not the 005 name.
2022-12-02 01:30:46 -05:00
Shivaram Lingamneni
e40f550af8 fix CHATHISTORY 005 token name
Unclear where we got draft/CHATHISTORY from, it looks like the merged drafts
have always used unprefixed CHATHISTORY as the token name.
2022-11-30 04:10:47 -05:00
Shivaram Lingamneni
e20c983b57
fix #2002 (#2003)
* fix #2002

`CS AMODE #channel +f nickname` is invalid, but was being accepted
incorrectly.

* simplify logic
2022-11-06 14:41:29 -05:00
Valentin Lorentz
dd8073208c Use ratified extended-monitor cap name
https://github.com/ircv3/ircv3-specifications/pull/508
2022-11-01 07:41:55 +01:00
Shivaram Lingamneni
4e0d2d65e8 fix #1996
According to the de facto standard, `AWAY :\r\n` is equivalent to `AWAY\r\n`.
Our behavior was inconsistent before, now it consistently matches the de facto
standard.
2022-09-11 04:09:26 -04: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
68bd2d87e0 fix #1991
WHO <nickname> should not respect +i
2022-08-22 23:03:17 -04:00
Shivaram Lingamneni
8ff5a048f3
Merge pull request #1989 from slingamn/atomic_uint64.1
use new aligned atomic types everywhere
2022-08-21 10:02:06 -07:00
df234b842e uban list explicitly shows indefinite durations 2022-08-11 03:04:20 +05:30
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
a99c8a42f9 remove utils.ConfigStore in favor of atomic.Pointer[T] 2022-08-03 00:59:00 -04:00
Shivaram Lingamneni
5b72cd8622 apply go1.19 gofmt 2022-08-03 00:54:50 -04:00
Shivaram Lingamneni
1d10eb934a fix #1980
Sanitize ::1 to 0::1 in WHOX output
2022-07-14 21:53:36 -04:00
Shivaram Lingamneni
69448b13a1 fix #1969
On a 32-bit architecture, 64-bit atomic loads and stores must be aligned to a
64-bit boundary. Since the (mysql.MySQL) struct is directly included in the
Server struct, it is impossible to guarantee this via the standard technique
of putting the 64-bit value at the beginning of the struct definition
(since the point at which it is included in the parent struct may cross a
64-bit boundary).

This optimization is probably pointless anyway, adding an additional
indirection won't make a difference.
2022-06-10 10:35:56 -04:00
Shivaram Lingamneni
86f7668c68 set up new development version 2022-05-29 15:46:36 -04:00
Shivaram Lingamneni
101fd53d6d bump version and changelog for v2.10.0 2022-05-29 02:24:18 -04:00
Shivaram Lingamneni
acd95b9924 bump version and changelog for v2.10.0-rc2 2022-05-23 15:16:51 -04:00
Shivaram Lingamneni
ef088373a8 only send MARKREAD to sessions with the read-marker cap 2022-05-20 01:58:14 -04:00
Shivaram Lingamneni
2b86660e5c fix read markers not being reloaded on restart 2022-05-20 01:46:41 -04:00
Shivaram Lingamneni
c3d4be45f1 fix timestamp syntax in MARKREAD 2022-05-20 01:46:41 -04:00
Shivaram Lingamneni
104d0321e8 bump version and changelog for v2.10.0-rc1 2022-05-16 01:25:37 -04:00
Shivaram Lingamneni
6f9e07d2a2 fix #1905
NS SAREGISTER should send machine-readable responses. A simple approach:
check if the account-registration cap is enabled, and if so, send the
the same responses that would be sent by the REGISTER command.
2022-05-13 15:35:11 -04:00
Shivaram Lingamneni
737697d1d4 exempt operators from history cutoffs
See #1593; this enables a client-side implementation of bulk deletion
2022-05-12 16:43:11 -04:00
Shivaram Lingamneni
dd75eb1084 fix incorrect HOSTSERV HELP SET
Reported by @Mikaela
2022-05-06 14:48:01 -04:00
Shivaram Lingamneni
a13235880c
Merge pull request #1954 from slingamn/accept.1
fix #1688
2022-05-06 11:40:17 -04:00
Shivaram Lingamneni
87789676c0 add tests covering (*AcceptManager).Unaccept 2022-05-05 22:43:33 -04:00
Shivaram Lingamneni
c454c45d6a
Merge pull request #1953 from slingamn/issue1886_unregistered.1
fix #1886
2022-05-05 22:40:50 -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
b11dc1c84c fix #1886
Add more clarify in NS INFO and SAREGISTER about unregistered nicknames
2022-05-05 01:04:28 -04:00
Shivaram Lingamneni
78548aa9df add SAVERIFY command
Fixes #1924
2022-05-04 16:41:01 -04:00
Shivaram Lingamneni
d5814c10ab
Merge pull request #1949 from slingamn/generic_config.2
genericize atomic config changes
2022-05-04 01:30:52 -04:00
Shivaram Lingamneni
34ad3a2dc1 ConfigStore: clarify intended use 2022-05-03 23:27:24 -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
c603d41d08 genericize atomic config changes 2022-05-03 11:12:11 -04:00
Shivaram Lingamneni
c87dead39b remove history.ReverseCorrespondents in favor of generics 2022-05-03 02:45:36 -04:00
Shivaram Lingamneni
71fe4ecf48
Merge pull request #1945 from slingamn/generic_reverse
use genericized slice-reversing function
2022-04-30 21:29:25 -04:00
Shivaram Lingamneni
2df5fb1956 use genericized slice-reversing function 2022-04-29 13:39:11 -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
5ecba1d40b use ratified bot mode tag name 2022-04-26 15:43:24 -04:00
Shivaram Lingamneni
5c7df07d91
Merge pull request #1936 from slingamn/nick_empty
fix #1933
2022-04-25 18:02:31 -04:00
Shivaram Lingamneni
2b8eb93c00 clean up magic numbers 2022-04-24 11:57:21 -04:00
Shivaram Lingamneni
51cdebf167 fix #1935
RPL_WHOISCHANNELS didn't have proper line breaks
2022-04-24 02:47:31 -04:00
Shivaram Lingamneni
61fd7a2534 fix the rest of #1933
`NICK :` pre-registration needs to be special-cased to immediately
send ERR_NONICKNAMEGIVEN (unlike erroneous nonempty nicknames,
which are processed when registration is complete)
2022-04-24 01:39:45 -04:00
Shivaram Lingamneni
7201f14b8b partial fix for #1933
If the nickname must equal the account name (because always-on or
force-nick-equals-account), the correct error response to an empty
or otherwise invalid nickname is the usual "You must use your account
name as your nickname".
2022-04-24 00:31:20 -04:00
Val Lorentz
379632a9e6
Fix implementation of LIST <n 2022-04-16 22:55:58 +02:00
Shivaram Lingamneni
1f08c97238
Merge pull request #1926 from slingamn/readmarker.6
implement draft/read-marker capability
2022-04-08 01:33:06 -04:00
Shivaram Lingamneni
2fb8b836db fix #1928
LIST should not return ERR_NOSUCHCHANNEL for nonexistent channels
2022-04-07 11:44:23 -04:00
Shivaram Lingamneni
ac2fc0da28
Merge pull request #1927 from FiskFan1999/deletemessagewarn
histserv delete now requires two params
2022-04-02 21:27:13 -04:00
William Rehwinkel
934ad1cec2 histserv delete now requires two params 2022-04-01 20:52:09 -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
9f6e26450b make SAREGISTER override DEFCON
DEFCON 4 and lower were blocking SAREGISTER. This is wrong; admins should be
allowed to make new accounts even under DEFCON (this may be needed
specifically to work around the DEFCON restriction).
2022-03-01 07:57:15 -05:00
William Rehwinkel
4010f3fc02
Fix #1911 +s channels don't appear in /list even though on the channel (#1923)
* Fix #1911 +s channels don't appear in /list even though on the channel

* use channel.HasClient instead of custom iterative checker
2022-02-28 20:31:16 -05:00