Shivaram Lingamneni
a549827f17
upgrade to go 1.18, use generics
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
0afa7edffe
fix #1895
Include server start time in INFO output.
2 years ago
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 years ago
Shivaram Lingamneni
dba5d3faae
show arbitrary IP in WHOX
This extends #1650 to cover WHO as well as WHOIS
2 years ago
Shivaram Lingamneni
d174b5aad6
add disambiguating numbers in translated strings
2 years ago
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 years ago
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 years ago
Shivaram Lingamneni
cb757c703d
change FAIL AUTHENTICATE VERIFICATION_REQUIRED to be a NOTE
See discussion on #1852
2 years ago
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 years ago
Shivaram Lingamneni
9ff4047fa6
fix #1840
Account registrations pending verification should produce a logline and
send a sno.
2 years ago
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 years ago
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 years ago
Shivaram Lingamneni
62b2d0341e
fix #1831
RPL_ENDOFWHO should send the original, un-normalized mask
2 years ago
Shivaram Lingamneni
dc75b24d23
clarify comment on CAP byte arithmetic
2 years ago
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 years ago
Shivaram Lingamneni
3ec5ffa340
Revert "fix #1676"
This reverts commit 5bbee02fe6 .
2 years ago
Shivaram Lingamneni
5bbee02fe6
fix #1676
Fix various pagination issues with CHATHISTORY; also undo #491
(msgid munging).
2 years ago
Alex Jaspersen
53a7e8c334
Send snomask for channel mode changes via SAMODE.
Fixes #1787
2 years ago
Shivaram Lingamneni
aa969b7ff7
fix #1530
Warn if the user sent, e.g., /QUOTE /SAMODE instead of /QUOTE SAMODE
2 years ago
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 years ago
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 years ago
Shivaram Lingamneni
117401f293
fix SCRAM not supporting client IDs
reported by @Mikaela
2 years ago
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 years ago
Shivaram Lingamneni
41822813c0
clean up redundant check for sasl mechanism
2 years ago
Shivaram Lingamneni
e1401934df
implement SCRAM-SHA-256
2 years ago
delthas
7fde04ea94
Add support for extended-monitor
See: https://github.com/ircv3/ircv3-specifications/pull/466
2 years ago
Pratyush Desai
99610eae4b
add timeCreated to /uban list output
2 years ago
Valentin Lorentz
f58f8531b2
Restore support for multiple channels + single user
2 years ago
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.
2 years ago
Shivaram Lingamneni
59bddd066f
update draft/register -> draft/account-registration
Fixes #1740
2 years ago
Shivaram Lingamneni
46572b871f
expose a user-visible error if direct email sending fails
See #1659
2 years ago
Shivaram Lingamneni
d0801e45a8
fix #1731
CHATHISTORY INVALID_TARGETS was missing the subcommand parameter
2 years ago
Alex Jaspersen
b6264a43b6
Rename "realIP" to "ip" in WhoWas struct.
It could be the real IP or the proxied IP.
3 years ago
Shivaram Lingamneni
51c207dc80
fix #1703
`WHOWAS :` should return an error numeric instead of an empty response
3 years ago
Alex Jaspersen
e5c2588eab
Show real IP in WHOWAS to opers with ban capability.
3 years ago
Shivaram Lingamneni
4910aefa37
use ergochat/irc-go instead of goshuirc/irc-go
3 years ago
Shivaram Lingamneni
ec48966b68
fix #1661
If the relay bot and the owner share an IP, legacy bots that identify users
by user@host could misinterpret relayed lines as coming from the bot owner.
Try to avoid this by using the bot's account cloak where applicable.
3 years ago
Shivaram Lingamneni
77313e20ad
fix #1647
Send a full NUH with RELAYMSG.
Also fix client-only tags with RELAYMSG.
3 years ago
Shivaram Lingamneni
23c7218bf1
first pass at renaming Oragono to Ergo
3 years ago
Shivaram Lingamneni
ba21987d03
remove draft/resume-0.5
3 years ago
Shivaram Lingamneni
75f89a9f1f
fix FAIL REGISTER INVALID_USERNAME case
3 years ago
jesopo
4700d4c048
make gofmt happey :))
3 years ago
jesopo
7345ecba48
don't Sprintf for each match, Details().nick -> .Nick()
3 years ago
jesopo
0a1537f928
support $$server and $#hostname global messages
3 years ago
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.
3 years ago
Shivaram Lingamneni
da216fc699
fix #1577
Remove debugging loglines for truncation
3 years ago
Shivaram Lingamneni
18b6e2f1cd
implement CHATHISTORY TARGETS
3 years ago
Shivaram Lingamneni
4052cd12fe
fix #1592
Implements the new `CHATHISTORY LISTCORRESPONDENTS` API.
3 years ago
Shivaram Lingamneni
e447c61c73
fix #1596
All truncation must be made UTF8-safe.
3 years ago