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年前
Shivaram Lingamneni
68bd2d87e0
fix #1991
WHO <nickname> should not respect +i
1年前
Pratyush Desai
df234b842e
uban list explicitly shows indefinite durations
1年前
Shivaram Lingamneni
1d10eb934a
fix #1980
Sanitize ::1 to 0::1 in WHOX output
1年前
Shivaram Lingamneni
ef088373a8
only send MARKREAD to sessions with the read-marker cap
2年前
Shivaram Lingamneni
c3d4be45f1
fix timestamp syntax in MARKREAD
2年前
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年前
Shivaram Lingamneni
b11dc1c84c
fix #1886
Add more clarify in NS INFO and SAREGISTER about unregistered nicknames
2年前
Shivaram Lingamneni
78548aa9df
add SAVERIFY command
Fixes #1924
2年前
Shivaram Lingamneni
2b8eb93c00
clean up magic numbers
2年前
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年前
Shivaram Lingamneni
2fb8b836db
fix #1928
LIST should not return ERR_NOSUCHCHANNEL for nonexistent channels
2年前
Shivaram Lingamneni
32f7868bfd
implement draft/read-marker capability
2年前
Shivaram Lingamneni
a549827f17
upgrade to go 1.18, use generics
2年前
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年前
Shivaram Lingamneni
0afa7edffe
fix #1895
Include server start time in INFO output.
2年前
Shivaram Lingamneni
fcb86c54f7
fix #1906
Having the 'samode' capability made all KICK commands privileged. This appears
to have been introduced unintentionally by 42316bc04f and I can't find
any discussion of a rationale. Since this goes against our policy that all
ircop (as opposed to channel founder) privileges must be invoked explicitly
(e.g. SAJOIN, SAMODE), remove this.
2年前
Shivaram Lingamneni
dba5d3faae
show arbitrary IP in WHOX
This extends #1650 to cover WHO as well as WHOIS
2年前
Shivaram Lingamneni
d174b5aad6
add disambiguating numbers in translated strings
2年前
Shivaram Lingamneni
76f7748c8a
correctly account for nickname in CAP LS arithmetic
The arithmetic was assuming that the nickname is * (which it is
pre-registration). However, we were sending the actual nickname
post-registration. It would be simpler to always send *, but it
appears that the nickname is actually required by the spec:
>Replies from the server must [sic] contain the client identifier name or
>asterisk if one is not yet available.
2年前
Shivaram Lingamneni
f3f805acb8
send `*` for WHOX o (oplevel) instead of `0`
Jobe points out that 0 is a valid oplevel in some contexts,
* is a better placeholder for "unimplemented".
2年前
Shivaram Lingamneni
cb757c703d
change FAIL AUTHENTICATE VERIFICATION_REQUIRED to be a NOTE
See discussion on #1852
2年前
Shivaram Lingamneni
7d66368274
add FAIL AUTHENTICATE VERIFICATION_REQUIRED
From discussion with @emersion , this will help with UX if people try to
log into their unverified accounts.
2年前
Shivaram Lingamneni
9ff4047fa6
fix #1840
Account registrations pending verification should produce a logline and
send a sno.
2年前
Shivaram Lingamneni
bc5c2a1250
fix casefolding issue in muting RELAYMSG
Reported by @mogad0n ; the mute mask was being case-canonicalized,
but the RELAYMSG identifier wasn't being case-canonicalized before
the check.
2年前
Shivaram Lingamneni
2038763e10
fix #1730
`WHO #channel o` is supposed to return only server operators.
This is RFC1459 cruft; just return an empty list in this case.
2年前
Shivaram Lingamneni
62b2d0341e
fix #1831
RPL_ENDOFWHO should send the original, un-normalized mask
2年前
Shivaram Lingamneni
dc75b24d23
clarify comment on CAP byte arithmetic
2年前
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.
2年前
Shivaram Lingamneni
3ec5ffa340
Revert "fix #1676"
This reverts commit 5bbee02fe6 .
2年前
Shivaram Lingamneni
5bbee02fe6
fix #1676
Fix various pagination issues with CHATHISTORY; also undo #491
(msgid munging).
2年前
Alex Jaspersen
53a7e8c334
Send snomask for channel mode changes via SAMODE.
Fixes #1787
2年前
Shivaram Lingamneni
aa969b7ff7
fix #1530
Warn if the user sent, e.g., /QUOTE /SAMODE instead of /QUOTE SAMODE
2年前
Valentin Lorentz
a90fbf9f2c
Add missing argument to ERR_NEEDMOREPARAMS on USER commands.
Refs:
* other instances in the codebase
* https://defs.ircdocs.horse/defs/numerics.html#err-needmoreparams-461
* https://modern.ircdocs.horse/#errneedmoreparams-461
2年前
Valentin Lorentz
f33f41b0eb
Make kick messages default to the kicker name instead of the kicked
For consistency with RFC2812, Bahamut, Hybrid, Insp, Plexus4, Unreal.
https://datatracker.ietf.org/doc/html/rfc2812#section-3.2.8
At the expense of consistency with chary/solanum, irc2, and ircu2.
2年前
Shivaram Lingamneni
117401f293
fix SCRAM not supporting client IDs
reported by @Mikaela
2年前
Shivaram Lingamneni
ebe1f84d64
consolidate login throttle checks
We can check once during initialization of the SASL session, e.g.
on receiving `AUTHENTICATE PLAIN` or `AUTHENTICATE EXTERNAL`
2年前
Shivaram Lingamneni
41822813c0
clean up redundant check for sasl mechanism
2年前
Shivaram Lingamneni
e1401934df
implement SCRAM-SHA-256
2年前
delthas
7fde04ea94
Add support for extended-monitor
See: https://github.com/ircv3/ircv3-specifications/pull/466
2年前
Pratyush Desai
99610eae4b
add timeCreated to /uban list output
3年前
Valentin Lorentz
f58f8531b2
Restore support for multiple channels + single user
3年前
Val Lorentz
54c5d35193
Add support for KICK #chan user1,user2
This is one of the two cases of [RFC 2812 kicks](https://datatracker.ietf.org/doc/html/rfc2812#section-3.2.8 ):
even when there are multiple user targets, the RFC (and Unreal
and Inspircd and probably others) allows a single channel name.
3年前
Shivaram Lingamneni
59bddd066f
update draft/register -> draft/account-registration
Fixes #1740
3年前
Shivaram Lingamneni
46572b871f
expose a user-visible error if direct email sending fails
See #1659
3年前
Shivaram Lingamneni
d0801e45a8
fix #1731
CHATHISTORY INVALID_TARGETS was missing the subcommand parameter
3年前
Alex Jaspersen
b6264a43b6
Rename "realIP" to "ip" in WhoWas struct.
It could be the real IP or the proxied IP.
3年前
Shivaram Lingamneni
51c207dc80
fix #1703
`WHOWAS :` should return an error numeric instead of an empty response
3年前
Alex Jaspersen
e5c2588eab
Show real IP in WHOWAS to opers with ban capability.
3年前
Shivaram Lingamneni
4910aefa37
use ergochat/irc-go instead of goshuirc/irc-go
3年前