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
Shivaram Lingamneni
a34918e729
add a fuzz test for IRCStreamConn changes
2020-11-30 02:08:47 -05:00
Shivaram Lingamneni
5edfcced0a
Merge pull request #1415 from slingamn/issue1409_invite_history.1
...
fix #1409
2020-11-29 19:47:22 -08:00
Shivaram Lingamneni
b4cd62bece
Merge pull request #1414 from slingamn/issue1396_account_snomask
...
fix #1396
2020-11-29 19:46:12 -08:00
Shivaram Lingamneni
b28004bbd9
Merge pull request #1410 from slingamn/welcome
...
add network name to RPL_WELCOME
2020-11-29 19:45:36 -08:00
Shivaram Lingamneni
32bbde49a8
fix #1409
...
Record INVITE in DM history for the benefit of offline always-on clients
2020-11-29 22:12:06 -05:00
Shivaram Lingamneni
c62956f708
fix #1396
...
* Defer account login snomask until after connection registration is complete
* Don't send account-notify for pre-registration clients
2020-11-29 20:20:26 -05:00
Shivaram Lingamneni
e18eb1db99
fix #1411
...
Clients without event-playback should receive client-only tags in
replayed PRIVMSG / NOTICE.
2020-11-29 19:57:47 -05:00
Shivaram Lingamneni
42d5e767dd
add network name to RPL_WELCOME
2020-11-29 16:34:52 -05:00
Shivaram Lingamneni
0fcaf778e0
Merge pull request #1400 from slingamn/issue1387_messagecaching.4
...
fix #1387
2020-11-29 02:32:59 -08:00
Shivaram Lingamneni
3ee6fd1f6c
allow overriding services hostname
...
Fixes #1407
2020-11-29 00:02:26 -05:00
Shivaram Lingamneni
9214d978d0
refactor services prefixes and notice handlers
2020-11-29 00:02:26 -05:00
Shivaram Lingamneni
ec15d367ba
fix #1387
...
Instead of building a new serialized message for each recipient,
try to cache them.
2020-11-27 00:13:47 -05:00
Shivaram Lingamneni
a0d7d8d028
mention UN[DK]LINE in [DK]LINE help
2020-11-26 12:54:50 -05:00
Shivaram Lingamneni
8d44fa3c3f
fix duplicated JOIN line sent to resuming clients
...
Resuming clients without the resume capability would receive
two JOIN lines per channel.
2020-11-26 00:27:21 -05:00
Shivaram Lingamneni
c57828eb62
documentation updates for proxy v2
2020-11-19 17:01:56 -05:00
Shivaram Lingamneni
3062f97c2b
fix #1389
...
Support PROXY protocol v2, including ahead of plaintext connections
2020-11-19 12:31:58 -05:00
Shivaram Lingamneni
a6a8548466
fix SAJOIN not sending a MODE line where applicable
2020-11-12 11:57:30 -05:00
Shivaram Lingamneni
a8ffb11deb
use server name as source for chanserv mode changes, for consistency
2020-11-12 11:50:28 -05:00
Shivaram Lingamneni
6a6f104899
fix casefolding issue in NS SUSPEND DEL
...
NS SUSPEND DEL incorrectly required the use of the casefolded account name.
2020-11-11 11:09:09 -05:00
Shivaram Lingamneni
4f571c2cf3
implement NS RENAME
...
Fixes #1380
2020-11-10 19:59:12 -05:00
Shivaram Lingamneni
8ad6a53433
fix duplicated nicks in kline message
2020-11-10 11:17:17 -05:00
Shivaram Lingamneni
60ede87ab0
set up new development version
2020-11-08 20:17:22 -05:00
Shivaram Lingamneni
58b5d3c72d
fix channel mode help text
2020-11-08 17:33:45 -05:00
Shivaram Lingamneni
eeb7c6cb91
bump version to 2.4.0
2020-11-07 21:34:21 -05:00
Shivaram Lingamneni
9374a75c7a
implement FAIL CHATHISTORY INVALID_TARGET
2020-11-04 01:54:59 -05:00
Shivaram Lingamneni
dac43e6e76
fix #1370
2020-11-01 18:09:04 -05:00
Shivaram Lingamneni
40118d1533
bump version to 2.4.0-rc1
2020-10-31 22:17:58 -04:00
Shivaram Lingamneni
6513136ea3
fix #1366
...
Include an 'r' flag in RPL_WHOREPLY for registered nicks
2020-10-29 14:25:28 -04:00
Shivaram Lingamneni
5094b9da02
fix strings for NS SUSPEND
2020-10-28 20:32:55 -04:00
Shivaram Lingamneni
2bb2cab6c2
Merge pull request #1361 from slingamn/suspend.5
...
fix #1274
2020-10-28 08:12:46 -07:00
Shivaram Lingamneni
5418e5e794
fix #769
...
Add 379 RPL_WHOISMODES
2020-10-27 18:54:45 -04:00
Shivaram Lingamneni
4296ff02a4
schema change for #1274
2020-10-27 18:30:03 -04:00
Shivaram Lingamneni
1f6afa31d6
fix #1274
...
Enhancements to NS SUSPEND, including stored metadata and the ability
to list suspensions
2020-10-27 18:30:03 -04:00
Shivaram Lingamneni
dc456bd6a4
refactor schema versions to be ints, not strings
2020-10-27 12:26:44 -04:00
Shivaram Lingamneni
70b8bf75c5
Merge pull request #1360 from slingamn/issue861_fakelag
...
fix #861
2020-10-26 20:12:57 -07:00
Shivaram Lingamneni
a6e7e1f321
Merge pull request #1359 from slingamn/deop.1
...
fix #361
2020-10-26 20:12:18 -07:00
Shivaram Lingamneni
610fc5068d
refactor DEOP
...
DEOP is now pure syntactic sugar for /mode #channel -o nick,
the change is attributed to the originating user and not to ChanServ.
2020-10-26 23:08:05 -04:00
Shivaram Lingamneni
2f4431a5fb
fix #861
...
Allow messages-per-window to be 0
2020-10-26 21:06:03 -04:00