Shivaram Lingamneni
8b2f6de3e0
Add email-based password reset ( #1779 )
...
* Add email-based password reset
Fixes #734
* rename SETPASS to RESETPASS
* review fixes
* abuse mitigations
* SENDPASS and RESETPASS should both touch the client login throttle
* Produce a logline and a sno on SENDPASS (since it actually sends an email)
* don't re-retrieve the settings value
* add email confirmation for NS SET EMAIL
* smtp: if require-tls is disabled, don't validate server cert
* review fixes
* remove cooldown for NS SET EMAIL
If you accidentally set the wrong address, the cooldown would prevent you
from fixing your mistake. Since we touch the registration throttle anyway,
this shouldn't present more of an abuse concern than registration itself.
2021-08-25 22:32:55 -04:00
Shivaram Lingamneni
12947644e2
remove SCRAM-SHA-256 from advertised SASL mechanisms
...
Advertising SCRAM-SHA-256 breaks irccloud, which doesn't fall back to PLAIN
if it sees SCRAM advertised but SCRAM then fails (as is the case for any
account password hashed on Ergo 2.7 or lower).
Leave a config option for irctest to enable it in the controller.
2021-08-25 18:34:27 -04:00
Shivaram Lingamneni
492109f29d
upgrade go to 1.17
2021-08-20 15:59:26 -04:00
Shivaram Lingamneni
fea8cc1b9a
Merge pull request #1778 from ProgVal/empty-realname
...
Add missing argument to ERR_NEEDMOREPARAMS on USER commands.
2021-08-13 16:58:53 -04:00
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
2021-08-13 21:10:46 +02:00
Shivaram Lingamneni
0d438dd0d6
Merge pull request #1776 from ProgVal/kick-default-comment
...
Make kick messages default to the kicker name instead of the kicked
2021-08-13 14:20:17 -04:00
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.
2021-08-13 20:16:37 +02:00
Valentin Lorentz
f6f25039b7
Advertise support for multiple KICK targets
...
This is already implemented, but TARGMAX=KICK:1 says it isn't.
Instead, let's advertise that indefinitely many targets are allowed.
Refs:
* https://defs.ircdocs.horse/defs/isupport.html#targmax
* https://github.com/ircdocs/modern-irc/pull/112
2021-08-13 19:42:03 +02:00
Shivaram Lingamneni
abfb8442ab
fix handling of +k with an empty key parameter
...
This should be disallowed; `MODE #keytest +k :` should just be an error.
2021-08-10 15:11:11 -04:00
Valentin Lorentz
e894c44960
Add missing channel parameter to ERR_INVALIDMODEPARAM.
2021-08-10 20:33:00 +02:00
Shivaram Lingamneni
1c5a485c17
Merge pull request #1768 from slingamn/scram_clientid
...
fix SCRAM not supporting client IDs
2021-08-03 23:51:10 -04:00
Alex Jaspersen
ecd878c169
Correct help text for NS CLIENTS LOGOUT.
...
"LOGOUT ALL" logs out all clients for a user.
Fixes #1712 .
2021-08-03 18:54:37 -07:00
Shivaram Lingamneni
117401f293
fix SCRAM not supporting client IDs
...
reported by @Mikaela
2021-08-03 11:47:00 -04:00
Shivaram Lingamneni
1389d89a9b
Merge pull request #1766 from slingamn/allow_truncation
...
fix incorrect handling of overlong lines when allow-truncation is enabled
2021-08-03 00:40:54 -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
4dd9af8f06
add autogeneration of SCRAM credentials on successful PLAIN
2021-08-02 12:26:58 -04:00
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`
2021-07-30 14:06:13 -04:00
Shivaram Lingamneni
41822813c0
clean up redundant check for sasl mechanism
2021-07-30 14:03:40 -04:00
Shivaram Lingamneni
e1401934df
implement SCRAM-SHA-256
2021-07-30 12:20:13 -04:00
Shivaram Lingamneni
ef92318282
replace jwt library
...
Fixes #1762
2021-07-29 16:49:35 -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
6851901e20
fix #1756
...
A default channel mode of +i would block channel creation; fix this by treating
initial joins as SAJOINs.
Note that it's nontrivial to detect initial join in (*Channel).Join, because
having 0 members does not necessarily indicate a new channel.
2021-07-15 06:31:27 -04:00
Shivaram Lingamneni
c99b2be403
fix #1757
...
Allow SAJOIN or implicit always-on join to override channels.operator-only-creation
2021-07-15 06:27:37 -04:00
99610eae4b
add timeCreated to /uban list output
2021-07-14 12:36:45 +05:30
Shivaram Lingamneni
128142ca41
Merge pull request #1753 from slingamn/rename
...
fix #1751
2021-07-14 02:09:43 -04:00
Shivaram Lingamneni
5b317d4846
fix #1751
...
RENAME (channel rename) that was a simple case change (e.g.
renaming #chan to #CHAN) would delete the channel :-|
2021-07-13 08:47:16 -04:00
Valentin Lorentz
f58f8531b2
Restore support for multiple channels + single user
2021-07-12 20:59:05 +02:00
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.
2021-07-10 11:13:52 +02:00
Shivaram Lingamneni
907f82a27e
Merge pull request #1741 from slingamn/greylisting.3
...
user visible email errors, email timeouts
2021-07-09 07:22:03 -04:00
Shivaram Lingamneni
3fde046a01
Merge pull request #1743 from mogad0n/fix/disconn_sno_help_missing
...
fix missing disconnect sno help text
2021-07-08 11:04:25 -04:00
Shivaram Lingamneni
29f1afd565
Merge pull request #1742 from slingamn/register_update
...
update draft/register -> draft/account-registration
2021-07-07 09:17:20 -04:00
b2ea2583f4
add missing disconnect sno help
2021-07-07 18:43:42 +05:30
Shivaram Lingamneni
59bddd066f
update draft/register -> draft/account-registration
...
Fixes #1740
2021-07-07 07:37:46 -04:00
Shivaram Lingamneni
032ca175e4
add support for email timeouts
2021-07-07 07:21:22 -04:00
Shivaram Lingamneni
46572b871f
expose a user-visible error if direct email sending fails
...
See #1659
2021-07-07 07:21:22 -04:00
Shivaram Lingamneni
1c89f996bc
fix #1738
...
Fix error message for privileged NS PASSWD on a nonexistent account
2021-07-06 13:28:25 -04: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
Shivaram Lingamneni
98c4d0e399
Merge pull request #1735 from slingamn/systemd
...
support systemd notifications
2021-07-05 03:10:27 -04:00
Shivaram Lingamneni
5fc7ac41da
always mark the service ready after rehash
2021-07-04 19:51:35 -04:00
Shivaram Lingamneni
364193df4e
refactor some start-stop logging
2021-07-04 17:58:48 -04:00
Shivaram Lingamneni
dbfa704eb2
fix UBAN ADD of masks (k-lines) not killing clients
2021-07-04 08:14:38 -04:00
Shivaram Lingamneni
6f24082705
support systemd notifications
...
Fixes #1733
2021-07-04 07:41:59 -04:00
Shivaram Lingamneni
188d8c499d
Merge pull request #1728 from mogad0n/session_disconnect_sno
...
DISCONNECT Sno for always-on and/or multiclient
2021-07-04 02:25:10 -04:00
Shivaram Lingamneni
77bfdd8619
Merge pull request #1723 from slingamn/vhost_validation
...
fix #1722
2021-07-04 01:41:38 -04:00
Shivaram Lingamneni
d0801e45a8
fix #1731
...
CHATHISTORY INVALID_TARGETS was missing the subcommand parameter
2021-07-04 01:37:59 -04:00
99cb1fd02c
DISCONNECT Sno for always-on and/or multiclient
2021-07-03 04:41:42 +05:30
Kyle Fuller
9adc77498e
Include nick in ERR_LISTMODEALREADYSET and ERR_LISTMODENOTSET
2021-07-02 20:09:48 +01:00
Shivaram Lingamneni
0751f31b9e
fix #1722
...
Validate operator vhosts against the configured (or default)
vhosts.valid-regexp
2021-06-29 10:06:37 -04:00
Shivaram Lingamneni
5daabdd226
Merge pull request #1717 from ajaspers/voice
...
Allow +v users to talk in +R channels.
2021-06-29 09:11:52 -04:00
Alex Jaspersen
ff3f959d52
Allow +v users to talk in +R channels.
2021-06-28 17:27:50 -07:00
Shivaram Lingamneni
b68696eb9b
fix #1714
...
Fix a panic if the operator class title is empty
2021-06-28 01:45:13 -04:00
Shivaram Lingamneni
f07524111c
Merge pull request #1702 from ajaspers/whowas
...
Show real IP in WHOWAS to opers with ban capability.
2021-06-22 02:28:56 -04:00
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
Shivaram Lingamneni
51c207dc80
fix #1703
...
`WHOWAS :` should return an error numeric instead of an empty response
2021-06-20 14:12:13 -04:00
Alex Jaspersen
e5c2588eab
Show real IP in WHOWAS to opers with ban capability.
2021-06-20 10:26:30 -07:00
Shivaram Lingamneni
99b9312847
fix #1696
2021-06-18 18:26:45 -04:00
Shivaram Lingamneni
4910aefa37
use ergochat/irc-go instead of goshuirc/irc-go
2021-06-18 02:43:25 -04:00
Shivaram Lingamneni
8f8b71761d
Update irc/help.go
...
Co-authored-by: Mikaela Suomalainen <mikaela@mikaela.info>
2021-06-16 02:52:21 -04:00
8efb2d23c3
help for +f mode
...
fix help for +f mode
2021-06-16 11:01:34 +05:30
Shivaram Lingamneni
e59d599eed
Merge pull request #1685 from slingamn/next
...
set up new development version
2021-06-13 00:50:00 -04:00
Shivaram Lingamneni
94afd012fb
Merge pull request #1680 from tamiko/master
...
update ChanServ OP command documentation
2021-06-13 00:49:53 -04:00
Shivaram Lingamneni
5d4a12f008
Merge pull request #1677 from ajaspers/email
...
Show email in NS INFO when user has permission.
2021-06-13 00:49:33 -04:00
Shivaram Lingamneni
fcaefaca9c
set up new development version
2021-06-08 10:47:18 -04:00
Shivaram Lingamneni
9851d2e9bc
bump version and changelog for official release
2021-06-08 00:51:37 -04:00
Matthias Maier
6cfd8eadc9
update ChanServ OP command documentation
...
Commit 7ce396931c
introduced the ability
that every user with an account in the AMODE list of a channel can use
the OP command to restore their modes. Update the chanserv help message
accordingly.
2021-06-06 13:57:48 -05:00
Alex Jaspersen
1d832ee1bc
Show email in NS INFO when user has permission.
...
Users logged into an account can see their own email.
Opers with the accreg capability can see all users.
2021-06-04 16:44:00 -07:00
Shivaram Lingamneni
b81757d273
bump version for 2.7.0-rc1
2021-05-31 01:50:02 -04:00
Shivaram Lingamneni
f93e1f1a7d
Merge pull request #1668 from slingamn/changelog.3
...
changelog, documentation, and distrib updates for ergo 2.7
2021-05-30 21:25:56 -04:00
Shivaram Lingamneni
33e3b0ce1b
fix #1669
...
Sort snomasks for display rather than displaying them in hash order
2021-05-30 12:35:16 -04:00
Shivaram Lingamneni
6ff0486aa0
changelog, documentation, and distrib updates for ergo 2.7
2021-05-30 03:45: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
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.
2021-05-27 11:43:21 -04:00
Shivaram Lingamneni
91cdb96bcb
fix HS STATUS help strings
2021-05-27 10:51:54 -04:00
Shivaram Lingamneni
77313e20ad
fix #1647
...
Send a full NUH with RELAYMSG.
Also fix client-only tags with RELAYMSG.
2021-05-27 02:00:59 -04:00
Shivaram Lingamneni
7944871eb6
migrate additional dependencies to ergochat
2021-05-26 21:58:29 -04:00
Shivaram Lingamneni
f1ae8051cb
update readmes, add placeholder logo
2021-05-26 18:01:11 -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
a131507090
fix #1642
...
Fix auditorium JOIN lines with zero values for the time and msgid tags.
2021-05-05 10:00:19 -04:00
Shivaram Lingamneni
aa27ad98a8
add a warning for the #1634 case
...
Configurations with require-sasl and open account registration are valid,
but likely unintended. Show a warning about them.
2021-04-27 08:44:54 -04:00
Shivaram Lingamneni
2d31a16647
propagate require-sasl into tor-listeners.require-sasl
2021-04-26 10:26:16 -04:00
Shivaram Lingamneni
317720bfc8
Merge pull request #1632 from slingamn/mysql_safety
...
fix #1622
2021-04-25 23:14:40 -04:00
Shivaram Lingamneni
e14aace1da
Merge pull request #1635 from slingamn/pass
...
fix #1634 (forward-porting to master)
2021-04-25 21:34:12 -04:00
Shivaram Lingamneni
97ba1c3d63
fix #1634 :
...
1. Fix auth bypass in the default configuration with the addition of
server.password (the REGISTER command was allowed before connection
registration, allowing unauthenticated users to REGISTER and then
take advantage of skip-server-password)
2. Caution operators against the use of require-sasl without disabling
user-initiated account registration. (Such a configuration is still valid
in the case of a public server that requires everyone to register.)
2021-04-25 19:22:08 -04:00
Shivaram Lingamneni
75f89a9f1f
fix FAIL REGISTER INVALID_USERNAME case
2021-04-25 17:16:34 -04:00
Shivaram Lingamneni
5eed48c077
fix #1622
...
Allow users to set max MySQL connections and connection lifetime;
set a sane default for max connections if it's not present.
2021-04-23 13:54:44 -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
6b8a487b0c
Merge pull request #1628 from slingamn/issue1627_channel_listing
...
fix #1627
2021-04-21 07:58:53 -04:00
jesopo
4700d4c048
make gofmt happey :))
2021-04-20 11:05:05 +00:00
jesopo
7345ecba48
don't Sprintf for each match, Details().nick -> .Nick()
2021-04-20 11:04:24 +00:00
jesopo
0a1537f928
support $$server and $#hostname global messages
2021-04-20 10:46:43 +00:00
Shivaram Lingamneni
88f8caad0b
fix #1627
...
Fix incorrect description of channel ownership in NS INFO
2021-04-19 15:49:56 -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
517b776b62
don't call (*Config).prepareListeners twice
2021-04-18 21:40:33 -04:00
Shivaram Lingamneni
1a5d079670
fix #1611
...
Allow setting the minimum TLS version
2021-04-18 21:40:33 -04:00
Shivaram Lingamneni
eb2dfa78c9
fix #1617
...
Prevent LUSERS stats from getting out of sync when modes are
modified on offline clients.
2021-04-18 20:18:02 -04:00
Shivaram Lingamneni
fed002d11a
fix #1618
...
Allow snomasks to be added via oper config block, even if the oper
doesn't have `ban` or `snomasks` and therefore can't add snomasks
on their own.
2021-04-18 20:06:00 -04:00