Shivaram Lingamneni
7e93770540
Merge pull request #1813 from slingamn/message_error
...
CHATHISTORY with nonexistent msgid should send empty batch
2021-11-02 20:59:02 -04:00
Shivaram Lingamneni
ad8c97c9bb
CHATHISTORY with nonexistent msgid should send empty batch
...
It was sending MESSAGE_ERROR, which was inappropriate. Send an empty batch
for now (this is at parity with the in-memory implementation).
2021-11-02 18:50:41 -04:00
Shivaram Lingamneni
c4e376c8bb
fix spurious error logline in schema change
2021-11-02 18:26:51 -04:00
Shivaram Lingamneni
85fabaad6d
fix case where CS TRANSFER as an operator required acceptance
...
Reported by @mogad0n. If a user had both operator privileges and
channel owner privileges, the CS TRANSFER would proceed as though
unprivileged, requiring acceptance by the receiving user. Fix this
to not require acceptance.
2021-11-02 18:26:47 -04:00
Shivaram Lingamneni
c9b54ee2b8
Merge pull request #1809 from slingamn/issue1676_again.3
...
fix #1676 , take 2
2021-11-02 03:51:04 -04:00
Shivaram Lingamneni
ea1678ec8f
Merge pull request #1810 from slingamn/nolusers
...
fix #1802
2021-11-01 23:25:32 -04:00
Shivaram Lingamneni
61bce74018
fix spurious "corrupt account creds" logline
...
Reported by @tacerus. This was most likely introduced by 8b2f6de3e
.
2021-11-01 18:48:37 -04:00
Shivaram Lingamneni
51d573d3c9
fix #1802
...
Add a config option to suppress LUSERS
2021-11-01 04:48:31 -04:00
Shivaram Lingamneni
8c556fe8c5
schema change to remove ReplayJoinsNever
...
See #1676
2021-11-01 04:36:06 -04:00
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.
2021-11-01 04:34:59 -04:00
Shivaram Lingamneni
3ec5ffa340
Revert "fix #1676 "
...
This reverts commit 5bbee02fe6
.
2021-11-01 04:34:59 -04:00
Shivaram Lingamneni
5bbee02fe6
fix #1676
...
Fix various pagination issues with CHATHISTORY; also undo #491
(msgid munging).
2021-10-29 04:50:24 -04:00
Shivaram Lingamneni
7d5cb723b4
make ergo genpasswd
warn for bad passwords
2021-10-28 19:29:55 -04:00
Alex Jaspersen
53a7e8c334
Send snomask for channel mode changes via SAMODE.
...
Fixes #1787
2021-10-03 17:15:01 -07:00
Shivaram Lingamneni
b0f412538c
move signals code to utils/
2021-09-19 04:02:44 -04:00
Shivaram Lingamneni
2cae19dde5
remove unnecessary indirection in config
2021-09-19 02:09:43 -04:00
Shivaram Lingamneni
e0e4791f72
factor out some shared code
2021-09-18 21:28:16 -04:00
Shivaram Lingamneni
b8009c4a07
rename oragono.io/nope to ergo.chat/nope
2021-09-10 13:05:09 -04:00
Shivaram Lingamneni
eff6dd242b
Merge pull request #1791 from slingamn/hashmark
...
add # to disfavoredNameCharacters
2021-09-09 21:34:54 -04:00
Shivaram Lingamneni
69d88fb231
update logo in /INFO response
2021-09-09 21:25:07 -04:00
Shivaram Lingamneni
b83479247e
add # to disfavoredNameCharacters
...
Partially fixes #1679 , not sure whether to police the relaymsg config or not
2021-09-09 21:04:47 -04:00
Shivaram Lingamneni
aa969b7ff7
fix #1530
...
Warn if the user sent, e.g., /QUOTE /SAMODE instead of /QUOTE SAMODE
2021-09-05 20:14:13 -04:00
Shivaram Lingamneni
9b6ec04ca5
Merge pull request #1761 from delthas/feature-extended-monitor
...
Add support for extended-monitor
2021-08-26 10:14:31 -04:00
Shivaram Lingamneni
26cdb4cf36
fix #1650
...
RPL_WHOISACTUALLY should display some arbitrarily chosen IP address and
hostname.
2021-08-25 22:44:55 -04:00
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
Shivaram Lingamneni
3cca1e2c39
fix #1619
...
Clean up channels during unregistration if necessary.
2021-04-18 20:03:17 -04:00
Shivaram Lingamneni
fed5134a63
set up new development version
2021-04-18 17:03:25 -04:00
Shivaram Lingamneni
7481bf0385
bump version and changelog
2021-04-18 14:30:35 -04:00
Shivaram Lingamneni
197d487f40
bump version for 2.6.0-rc1
2021-04-10 23:51:10 -04:00
Shivaram Lingamneni
8dd12b0693
publish the FORWARD 005 token
2021-04-08 07:10:05 -04:00
Shivaram Lingamneni
5cd76f89d4
fix #1545
...
Warn users that NS UNREGISTER doesn't give them a "do-over";
the account name will remain reserved.
2021-04-08 05:17:37 -04:00
Shivaram Lingamneni
6817186224
fix #1518
...
UBAN ADD and DEL need to produce snomasks and loglines
2021-04-08 05:17:37 -04:00
Shivaram Lingamneni
745fd764dd
fix #1524
...
Document permissions structure of CS AMODE
2021-04-08 00:55:30 -04:00
Shivaram Lingamneni
db41b2bc34
fix #765
...
CS INFO with no arguments should list your registered channels
2021-04-07 23:30:24 -04:00
Shivaram Lingamneni
aecb28a616
support SNI
2021-04-07 23:30:24 -04:00
Shivaram Lingamneni
f9c1a00b91
populate (tls.Certificate).Leaf
2021-04-07 22:35:54 -04:00
Shivaram Lingamneni
2e3e4f72ba
fix inverted error check in deleteCorrespondents
2021-04-07 22:16:18 -04:00
Shivaram Lingamneni
f0796b2eb5
Merge pull request #1607 from slingamn/semaphore_update
...
simplify semaphore release code
2021-04-07 08:56:53 -04:00
Shivaram Lingamneni
5b33cd436f
remove unnecessary indirection in semaphore
2021-04-07 08:44:17 -04:00
Shivaram Lingamneni
549d06bc98
simplify semaphore release code
2021-04-07 08:33:19 -04:00
Shivaram Lingamneni
18b6e2f1cd
implement CHATHISTORY TARGETS
2021-04-07 05:40:39 -04:00
Shivaram Lingamneni
4052cd12fe
fix #1592
...
Implements the new `CHATHISTORY LISTCORRESPONDENTS` API.
2021-04-06 00:46:07 -04:00
Shivaram Lingamneni
b022c34a23
try to record buntdb errors from persisting lastSeen
...
See #1603
2021-03-31 07:06:58 -04:00
Shivaram Lingamneni
0b5544831d
Merge pull request #1599 from slingamn/issue1594_warn_nick
...
fix #1594
2021-03-18 04:45:29 -04:00
Shivaram Lingamneni
46c32094d7
review fixes
...
1. Use FAIL instead of WARN
2. Use NICKNAME_RESERVED instead of ACCOUNT_REQUIRED
3. Don't send 433 at all for registered clients, just send the FAIL
2021-03-18 04:38:28 -04:00
Shivaram Lingamneni
ab870c2ffe
fix #1576
...
List IRCv3 CAPs in `NS CLIENTS LIST` output
2021-03-18 04:24:45 -04:00
Shivaram Lingamneni
67ee36f1ed
fix #1594
...
Send a WARN NICK ACCOUNT_REQUIRED on attempt to take a reserved nick
2021-03-18 04:10:32 -04:00
Shivaram Lingamneni
e447c61c73
fix #1596
...
All truncation must be made UTF8-safe.
2021-03-18 03:49:12 -04:00
Shivaram Lingamneni
cd43fae478
Merge pull request #1597 from slingamn/away_session.1
...
fix #1531
2021-03-18 03:28:03 -04:00
Shivaram Lingamneni
07edf2dc1f
consolidate auto-away string
2021-03-18 03:04:44 -04:00
Shivaram Lingamneni
70b20750aa
fix #1531
...
AWAY status should be tracked per-session:
1. With auto-away enabled, away status is aggregated across sessions
(if any session is not away, the client is not away, else use
the away status that was set most recently)
2. With auto-away disabled, we get the legacy behavior where AWAY
applies directly to the client
2021-03-18 02:53:18 -04:00
Shivaram Lingamneni
88b877fce4
ensure IsBot gets propagated into history
2021-03-17 19:01:38 -04:00
Shivaram Lingamneni
1efde964e1
Fix #1562
...
Implement the new bot mode spec:
https://github.com/ircv3/ircv3-specifications/pull/439
2021-03-17 14:36:52 -04:00
Shivaram Lingamneni
fe8e6551c3
fix #1502
...
RELAYMSG should respect mutes
2021-03-11 01:21:03 -05:00
Shivaram Lingamneni
76b0e44474
fix #1534
...
Improve error message for CS TRANSFER
2021-03-11 00:49:12 -05:00
Shivaram Lingamneni
5c4984f45f
fix #1544
...
PerstentStatusMandatory should display as "enabled", not "mandatory",
in the context where it refers to a user-chosen setting.
2021-03-11 00:45:13 -05:00
Shivaram Lingamneni
44ed0b7a38
fix #1565
...
Allow chanops to delete channel messages from history
2021-03-11 00:45:13 -05:00
Shivaram Lingamneni
4e49a25ba6
fix #1570
...
Handle panics in rehash, even if it was triggered by SIGHUP
2021-03-10 23:04:16 -05:00
Shivaram Lingamneni
131eb229bc
use the new irc-go identifiers
2021-03-10 20:07:43 -05:00
Shivaram Lingamneni
03185ea4a9
deprecate message truncation
...
Implements #1577 , but the issue should remain open until we clean up
the debugging loglines.
2021-03-04 22:29:34 -05:00
Alex Jaspersen
23164054f6
Send 477 ERR_NEEDREGGEDNICK when an unregistered user messages a +R user.
...
Fixes #1064 .
2021-03-03 19:36:29 -08:00
Shivaram Lingamneni
1762a168e8
Merge pull request #1558 from slingamn/websocket_compromise
...
implement candidate compromise proposal for websockets
2021-03-02 00:18:13 -05:00
Shivaram Lingamneni
22af40c995
fix #1547
...
make PASSWORD an alias for PASSWD in nickserv
2021-03-01 22:40:39 -05:00
Shivaram Lingamneni
eeb5f9b24d
Merge pull request #1560 from slingamn/configerrors
...
fix #1559
2021-03-01 17:10:29 -05:00
Shivaram Lingamneni
d7ba478519
validate that passphrases are valid as non-final IRC parameters
2021-03-01 11:47:29 -05:00
Shivaram Lingamneni
8180c2b572
improve compatibility with published register spec
...
1. Send COMPLETE_CONNECTION_REQUIRED instead of DISALLOWED
2. Include the account name in all FAIL messages
2021-02-28 17:14:10 -05:00
Shivaram Lingamneni
16f0170512
fix #1563
...
ERR_INVALIDMODEPARAM should take both the mode and the invalid parameter
as arguments.
2021-02-27 21:51:14 -05:00
Shivaram Lingamneni
e9d42e02a2
simplify utf8 validation of incoming WS lines
...
As of #1483 , websockets entail enforce-utf8, so there's no need
to check globalUTF8EnforcementSetting when handling websockets.
2021-02-26 03:10:30 -05:00
Shivaram Lingamneni
29666107ab
fix #1559
...
Improve debuggability of some config deserialization errors
2021-02-26 01:10:21 -05:00
Shivaram Lingamneni
d547d05205
implement candidate compromise proposal for websockets
...
1. Text and binary frames are accepted
2. Text frames are sent by default
3. Binary frames are sent to clients who negotiate `binary.ircv3.net`
4. Non-UTF8 data is not accepted (enabling websockets still enables UTFONLY)
2021-02-24 14:08:04 -05:00
Shivaram Lingamneni
1f3f9f18d9
fix #1552
...
ZNC playback LIST was panicking when history was disabled,
and possibly in other cases
2021-02-21 15:29:19 -05:00
Shivaram Lingamneni
9e25a3027a
fix #1549
...
If history is disabled, disable the history CAPs
2021-02-21 13:25:22 -05:00
Shivaram Lingamneni
430b40fc2f
upgrade go to 1.16
...
Fixes #1510
2021-02-17 15:14:53 -05:00
Shivaram Lingamneni
e957a89ee2
bump irc-go for the IRCMessage rename
2021-02-15 11:27:04 -05:00
Shivaram Lingamneni
d0e11f49ad
use the new goshuirc ircreader
2021-02-13 20:58:19 -05:00
4340da9b6e
docs/USERGUIDE.md & irc/handlers.go: fix spelling of WeeChat
2021-02-13 14:44:13 +02:00
Shivaram Lingamneni
bb39399f97
Merge pull request #1528 from slingamn/issue1176_operprivs
...
enhancements to operator privilege handling
2021-02-09 22:56:58 -05:00
Shivaram Lingamneni
91cfdb963d
fix #1074
...
Make snomask add/remove behavior match other ircds
2021-02-09 22:07:06 -05:00
Shivaram Lingamneni
42316bc04f
fix #1176
...
Transition most "is an operator" checks to require a specific operator
capability
2021-02-09 22:07:06 -05:00
Shivaram Lingamneni
9aeb80dbf3
Merge pull request #1526 from slingamn/issue1516_amode_op
...
fix #1516
2021-02-09 13:59:29 -05:00
Shivaram Lingamneni
dfc26d1182
fix a help typo
2021-02-09 01:05:47 -05:00
Shivaram Lingamneni
7ce396931c
fix #1516
...
CS OP should regrant one's stored amode
2021-02-05 13:07:39 -05:00
Shivaram Lingamneni
4c08bc9c49
Merge pull request #1525 from slingamn/issue1523_halfop_topic
...
fix #1523
2021-02-05 13:07:07 -05:00
Shivaram Lingamneni
6f1bc9896b
fix #1523
...
Let halfops change the channel topic
2021-02-05 11:02:31 -05:00
Shivaram Lingamneni
cc6be14c1d
fix #1507
...
Registered channels should be eagerly created on startup, and should
remain (and be visible in LIST) even when they have no members.
2021-02-04 15:26:03 -05:00
Shivaram Lingamneni
1fad76b906
set up new development version (again)
2021-02-03 08:24:01 -05:00
Shivaram Lingamneni
6f1380f77f
bump version and changelog
2021-02-02 16:54:29 -05:00
Shivaram Lingamneni
de392aea5a
fix incorrect permissions check in NS CLIENTS LOGOUT
2021-02-02 16:50:47 -05:00
Shivaram Lingamneni
e54d8cfcd9
fix duplicated word in CS AMODE help
2021-02-02 15:27:24 -05:00
Shivaram Lingamneni
ec48d6b97d
set up new development version
2021-01-30 23:01:40 -05:00
Shivaram Lingamneni
7953804e72
bump version to 2.5.0
2021-01-30 22:19:08 -05:00
Shivaram Lingamneni
2ce74ff9c1
bump version for 2.5.0-rc1
2021-01-23 20:42:30 -05:00
Shivaram Lingamneni
81ae166dfb
require-sasl uban should not kill authenticated clients
2021-01-22 10:49:54 -05:00
Shivaram Lingamneni
07fa2ecb3e
allow UBAN <ip> REQUIRE-SASL
2021-01-22 09:38:40 -05:00
Shivaram Lingamneni
8dd39a6e71
tweaks to UBAN
2021-01-22 07:27:10 -05:00
Shivaram Lingamneni
a237ce428f
fix permissions check in CS HOWTOBAN
2021-01-21 16:48:57 -05:00
Shivaram Lingamneni
6bd396f5a2
fix UBAN INFO considering the wrong IP
2021-01-21 16:40:01 -05:00
Shivaram Lingamneni
2e7cf3cc1e
Merge pull request #1496 from slingamn/jointime.1
...
fix #1490
2021-01-21 01:20:45 -05:00
Shivaram Lingamneni
4a48e52518
fix #1490
...
Track channel join times, use them to optionally enforce history access
restrictions
2021-01-20 21:13:18 -05:00
Shivaram Lingamneni
44bfca80a7
add IP addresses to UBAN ADD <account> output
2021-01-19 12:19:48 -05:00
Shivaram Lingamneni
bb5276553d
initial UBAN implementation
2021-01-19 08:49:45 -05:00
Shivaram Lingamneni
64bc363cf1
fix #1443
...
Improve auditability of sensitive operator actions
2021-01-19 06:45:30 -05:00
Shivaram Lingamneni
e195854851
fix #1442
...
strip local_ from oper capab names, also consolidate unban into ban
2021-01-19 06:45:30 -05:00
Shivaram Lingamneni
6b7f0e15ac
fix always-on expiration checks
...
checkAlwaysOnExpirationNoMutex was respecting registered status, but
always-on clients were not considered registered at the time of the
initial check, so they were being created regardless of expiration.
2021-01-15 06:50:35 -05:00
Shivaram Lingamneni
7b300a802f
Merge pull request #1484 from slingamn/utf8only
...
initial work on #1483
2021-01-15 06:21:53 -05:00
Shivaram Lingamneni
db81b15acb
initial work on #1483
...
Add the new utf8-only cap, disallow non-utf8 when websockets are enabled
2021-01-15 06:19:13 -05:00
Shivaram Lingamneni
3e230e2a17
Merge pull request #1480 from slingamn/issue1479_tor_cloak
...
fix #1479
2021-01-15 06:18:35 -05:00
Shivaram Lingamneni
bafadf3aac
fix #1476
...
enable the use of grouped nicks as account names for SASL,
if force-nick-equals-account is disabled
2021-01-12 09:33:57 -05:00
Shivaram Lingamneni
d1f8317180
fix #1479
...
Give Tor clients who authenticate via SASL a unique cloak, so chanops
can ban *!*@tor-network.onion and still allow authenticated Tor users
2021-01-12 08:40:13 -05:00
Shivaram Lingamneni
1db9cdd989
fix incorrect CTCP ACTION messages sent by roleplay
2020-12-31 14:06:19 -05:00
Shivaram Lingamneni
ec375f5bdc
consolidate ArgsToStrings
2020-12-30 00:41:34 -05:00
Shivaram Lingamneni
0c9ecbade7
ERR_HELPNOTFOUND should take the nick as a parameter
2020-12-29 13:19:46 -05:00
Shivaram Lingamneni
6965031aa9
fix #1472
...
HELP responses weren't taking the client nickname as a parameter,
as is standard.
2020-12-29 05:20:18 -05:00
Shivaram Lingamneni
7c4d016fcb
fix incorrect sprintf-before-unescape
2020-12-27 20:17:24 -05:00
Shivaram Lingamneni
5342ab1bb1
Merge pull request #1470 from slingamn/issue1468_relaymsg_tag
...
fix #1468
2020-12-22 02:16:17 -05:00
Shivaram Lingamneni
a566c85b12
Merge pull request #1438 from slingamn/issue1436_badchars
...
fix #1436
2020-12-22 02:16:01 -05:00
Shivaram Lingamneni
8abbc1072b
additionally disallow ; in nicknames
2020-12-21 23:09:34 -05:00
Shivaram Lingamneni
514a2e613f
fix #1468
2020-12-21 22:07:48 -05:00
Shivaram Lingamneni
48166b5b4b
Implement expiration for always-on clients
...
Fixes #810
2020-12-21 05:11:50 -05:00
Shivaram Lingamneni
be31d33dc4
shorten the cached batch ID for multilines
2020-12-18 03:13:01 -05:00
Shivaram Lingamneni
fd71b79bb8
Enhancements to CS PURGE
...
1. Consolidate PURGE and UNPURGE into subcommands
2. Add PURGE LIST
3. PURGE ADD now requires a confirmation code
Fixes #1294
2020-12-15 04:00:44 -05:00
Shivaram Lingamneni
4d5815ab2e
Merge pull request #1456 from slingamn/rename_skeleton_bug.2
...
fix critical bugs in RENAME
2020-12-15 02:02:07 -05:00
Shivaram Lingamneni
5b79e427b5
Merge pull request #1460 from slingamn/issue1449_invite_playback
...
fix #1449
2020-12-14 23:43:27 -05:00
Shivaram Lingamneni
f717fceead
Merge pull request #1461 from slingamn/issue1452_enable_mysql
...
fix #1452
2020-12-14 23:42:47 -05:00
Shivaram Lingamneni
cc2b6d27a0
fix critical bugs in RENAME
...
Channel rename (both of registered and unregistered channels) would leave
the old name unreclaimable.
2020-12-14 23:35:46 -05:00
Shivaram Lingamneni
ba72d3acfc
implement a channel forwarding mode
...
Fixes #1260
2020-12-14 22:38:23 -05:00
Shivaram Lingamneni
dd4fd1cbb6
fix #1452
2020-12-14 15:31:55 -05:00
Shivaram Lingamneni
15a0cda78b
pointless refactor of stripMaskFromNick
2020-12-14 15:23:01 -05:00
Shivaram Lingamneni
853bb12c29
fix #1449
...
INVITE playback (#1409 ) was buggy, due to the double use of (Item).Params[0]
for the channel name and the recipient nick. Stuff the channel name in
(Item).Message.Message instead.
2020-12-14 08:24:38 -05:00
Shivaram Lingamneni
9033d97c6f
Merge pull request #1450 from slingamn/tor_defcon
...
DEFCON 4 and lower should require SASL from Tor users
2020-12-13 20:06:30 -05:00
Shivaram Lingamneni
47f7b9a76e
make CAP LS/LIST respect the MaxLineLen constant
2020-12-13 15:44:10 -05:00
Shivaram Lingamneni
534939c342
DEFCON 4 and lower should require SASL from Tor users
2020-12-11 05:04:56 -05:00
Shivaram Lingamneni
96380adf27
Merge pull request #1446 from slingamn/reservation_docs
...
manual updates for nick reservation and email verification
2020-12-08 23:10:01 -08:00
Shivaram Lingamneni
84e3b5d77b
stop autocreating d-lines for throttle violations
...
This didn't work correctly for IPv6 or custom nets.
/UNDLINE IP can temporarily be used to reset the throttle.
2020-12-08 22:01:23 -05:00
Shivaram Lingamneni
45471138d2
update nick reservation docs
2020-12-08 02:11:53 -05:00
Shivaram Lingamneni
44cc4c2092
introduce "flat ip" representations
2020-12-07 21:21:10 -05:00
Shivaram Lingamneni
c8c1ddfb41
fix #1439
...
Validate imported databases for confusable nicks
2020-12-07 13:35:58 -05:00
Shivaram Lingamneni
48d5bd9144
fix #1436
2020-12-07 03:51:52 -05:00
Shivaram Lingamneni
e994e0451a
fix incorrect vhost serialization
2020-12-07 02:29:18 -05:00
Shivaram Lingamneni
da2d4ca130
make overridden services hostname appear in chanserv
2020-12-07 02:29:18 -05:00
Shivaram Lingamneni
66d90bef5e
change FAIL codes from NOT_PRIVED to PRIVS_NEEDED
2020-12-06 21:01:44 -05:00
Shivaram Lingamneni
7bdbb01238
fix #1428
...
Tor listeners should never see an STS cap.
Add an undocumented 'hide-sts' key for listeners that hides the STS cap.
This can be used if the listener is secured at layer 3 or 4 (VPNs,
E2E mixnets). It will be necessary to add the relevant IPs to `secure-nets`.
2020-12-05 23:06:23 -05:00
Shivaram Lingamneni
f9b842c88b
fix #1421
...
Allow custom limit definitions that encompass multiple subnets
2020-12-04 14:24:19 -05:00
Shivaram Lingamneni
7e56f62aed
Merge pull request #1419 from slingamn/alwayson_channelmodes.1
...
fix #1345
2020-12-04 02:28:38 -08:00
Shivaram Lingamneni
281821ed0e
validate amode recipients
2020-12-04 04:50:40 -05:00
Shivaram Lingamneni
32f3c69a08
support certfp import
2020-12-04 04:37:24 -05:00
Shivaram Lingamneni
c0bc485840
schema change for #1345
...
Convert the flat list of channels for always-on clients
to a map from channel names to channel-user modes.
2020-12-02 15:32:17 -05:00
Shivaram Lingamneni
51f279289d
fix #1345
...
Store the channel-user modes of always-on clients along with their
channel memberships, restore them on server startup. This will coexist
alongside /CS AMODE, which autoapplies modes to clients on join regardless
of their always-on status.
2020-12-02 15:31:49 -05:00
Shivaram Lingamneni
01291ceadd
fix #1417
...
Allow `JOIN 0` with a confirmation code
2020-12-01 14:23:47 -05:00
Shivaram Lingamneni
1b91360885
fix incorrect TAGMSG relaying
2020-11-30 17:08:53 -05:00
Shivaram Lingamneni
db100f1f91
Merge pull request #1231 from slingamn/buffer.2
...
more memory-efficient implementation of line reading
2020-11-30 02:34:25 -08:00