Shivaram Lingamneni
825cdab67d
fix #1850
Add WHO responses for services
1 year ago
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.
1 year ago
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.
1 year ago
Shivaram Lingamneni
e20c983b57
fix #2002 (#2003)
* fix #2002
`CS AMODE #channel +f nickname` is invalid, but was being accepted
incorrectly.
* simplify logic
1 year ago
Valentin Lorentz
dd8073208c
Use ratified extended-monitor cap name
https://github.com/ircv3/ircv3-specifications/pull/508
1 year ago
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.
1 year ago
Shivaram Lingamneni
746309e386
replace some utils.Semaphore with (*sync.Mutex).TryLock
See #1994
1 year ago
Shivaram Lingamneni
7ad31497c2
exempt a configurable number of MARKREAD commands from fakelag
1 year ago
Shivaram Lingamneni
68bd2d87e0
fix #1991
WHO <nickname> should not respect +i
1 year ago
Pratyush Desai
df234b842e
uban list explicitly shows indefinite durations
2 years ago
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.
2 years ago
Shivaram Lingamneni
a99c8a42f9
remove utils.ConfigStore in favor of atomic.Pointer[T]
2 years ago
Shivaram Lingamneni
5b72cd8622
apply go1.19 gofmt
2 years ago
Shivaram Lingamneni
1d10eb934a
fix #1980
Sanitize ::1 to 0::1 in WHOX output
2 years ago
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.
2 years ago
Shivaram Lingamneni
86f7668c68
set up new development version
2 years ago
Shivaram Lingamneni
101fd53d6d
bump version and changelog for v2.10.0
2 years ago
Shivaram Lingamneni
acd95b9924
bump version and changelog for v2.10.0-rc2
2 years ago
Shivaram Lingamneni
ef088373a8
only send MARKREAD to sessions with the read-marker cap
2 years ago
Shivaram Lingamneni
2b86660e5c
fix read markers not being reloaded on restart
2 years ago
Shivaram Lingamneni
c3d4be45f1
fix timestamp syntax in MARKREAD
2 years ago
Shivaram Lingamneni
104d0321e8
bump version and changelog for v2.10.0-rc1
2 years ago
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.
2 years ago
Shivaram Lingamneni
737697d1d4
exempt operators from history cutoffs
See #1593 ; this enables a client-side implementation of bulk deletion
2 years ago
Shivaram Lingamneni
dd75eb1084
fix incorrect HOSTSERV HELP SET
Reported by @Mikaela
2 years ago
Shivaram Lingamneni
87789676c0
add tests covering (*AcceptManager).Unaccept
2 years ago
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
2 years ago
Shivaram Lingamneni
b11dc1c84c
fix #1886
Add more clarify in NS INFO and SAREGISTER about unregistered nicknames
2 years ago
Shivaram Lingamneni
78548aa9df
add SAVERIFY command
Fixes #1924
2 years ago
Shivaram Lingamneni
34ad3a2dc1
ConfigStore: clarify intended use
2 years ago
Shivaram Lingamneni
077081076c
fix #1941
KLINE'd clients would produce a QUIT snotice without a corresponding
CONNECT snotice; explicitly suppress the QUIT snotice.
2 years ago
Shivaram Lingamneni
c603d41d08
genericize atomic config changes
2 years ago
Shivaram Lingamneni
c87dead39b
remove history.ReverseCorrespondents in favor of generics
2 years ago
Shivaram Lingamneni
2df5fb1956
use genericized slice-reversing function
2 years ago
Shivaram Lingamneni
42883972a8
make quit logging more consistent
Log it at level INFO for parity with connect / connect-ip
2 years ago
Shivaram Lingamneni
5ecba1d40b
use ratified bot mode tag name
2 years ago
Shivaram Lingamneni
2b8eb93c00
clean up magic numbers
2 years ago
Shivaram Lingamneni
51cdebf167
fix #1935
RPL_WHOISCHANNELS didn't have proper line breaks
2 years ago
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)
2 years ago
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".
2 years ago
Val Lorentz
379632a9e6
Fix implementation of `LIST <n`
2 years ago
Shivaram Lingamneni
2fb8b836db
fix #1928
LIST should not return ERR_NOSUCHCHANNEL for nonexistent channels
2 years ago
William Rehwinkel
934ad1cec2
histserv delete now requires two params
2 years ago
Shivaram Lingamneni
32f7868bfd
implement draft/read-marker capability
2 years ago
Shivaram Lingamneni
a549827f17
upgrade to go 1.18, use generics
2 years ago
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).
2 years ago
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
2 years ago
Shivaram Lingamneni
197a9d4b5e
use exact integer parsing for znc.in/playback
2 years ago
Val Lorentz
e7abd93e90
Update help of REGISTER and VERIFY commands
2 years ago
Shivaram Lingamneni
0afa7edffe
fix #1895
Include server start time in INFO output.
2 years ago