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)
3 years ago
Shivaram Lingamneni
e957a89ee2
bump irc-go for the IRCMessage rename
3 years ago
Shivaram Lingamneni
d0e11f49ad
use the new goshuirc ircreader
3 years ago
Shivaram Lingamneni
42316bc04f
fix #1176
Transition most "is an operator" checks to require a specific operator
capability
3 years ago
Shivaram Lingamneni
4a48e52518
fix #1490
Track channel join times, use them to optionally enforce history access
restrictions
3 years ago
Shivaram Lingamneni
bb5276553d
initial UBAN implementation
3 years ago
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.
3 years ago
Shivaram Lingamneni
db81b15acb
initial work on #1483
Add the new utf8-only cap, disallow non-utf8 when websockets are enabled
3 years ago
Shivaram Lingamneni
48166b5b4b
Implement expiration for always-on clients
Fixes #810
3 years ago
Shivaram Lingamneni
15a0cda78b
pointless refactor of stripMaskFromNick
3 years ago
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.
3 years ago
Shivaram Lingamneni
534939c342
DEFCON 4 and lower should require SASL from Tor users
3 years ago
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.
3 years ago
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`.
3 years ago
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.
3 years ago
Shivaram Lingamneni
32bbde49a8
fix #1409
Record INVITE in DM history for the benefit of offline always-on clients
3 years ago
Shivaram Lingamneni
e18eb1db99
fix #1411
Clients without event-playback should receive client-only tags in
replayed PRIVMSG / NOTICE.
3 years ago
Shivaram Lingamneni
ec15d367ba
fix #1387
Instead of building a new serialized message for each recipient,
try to cache them.
3 years ago
Shivaram Lingamneni
4b1e6b04c4
add UNINVITE command (#1171)
3 years ago
Shivaram Lingamneni
42d246b557
improve security properties of INVITE
See #1171 .
3 years ago
Shivaram Lingamneni
76e3d67b66
replace suppress-ident with coerce-ident
3 years ago
Shivaram Lingamneni
8cd7085d0b
separate rawHostname and cloakedHostname for always-on clients
This affects RPL_WHOISACTUALLY and possibly others.
3 years ago
Shivaram Lingamneni
78b2f61707
fix #1194
3 years ago
Shivaram Lingamneni
c470f63daf
fix #1312
3 years ago
Shivaram Lingamneni
9ed789f67c
fix #1075
3 years ago
Shivaram Lingamneni
a19324b948
fix #1293
3 years ago
Shivaram Lingamneni
8c99dcb2c7
fix #484
3 years ago
Shivaram Lingamneni
1a9f501383
fix #414
3 years ago
Alex Jaspersen
ca2132ff09
Add NickServ "CLIENTS LIST" and "CLIENTS LOGOUT".
CLIENTS LIST shows information about clients attached to a nick.
CLIENTS LOGOUT allows individual (or all) sessions to be logged out.
SESSIONS is now an alias for CLIENTS LIST.
Fixes #1072 .
3 years ago
Shivaram Lingamneni
f3cdf8442a
pass the require-sasl message through from the script
3 years ago
Shivaram Lingamneni
1a98a37a75
scripting API for IP bans
See discussion on #68 .
3 years ago
Shivaram Lingamneni
307adba8bd
fix #1213
3 years ago
Shivaram Lingamneni
c50c267d3c
better debug logline for failed message building
3 years ago
Shivaram Lingamneni
b54d0f8f34
add timer coalescing for the common case
3 years ago
Shivaram Lingamneni
a3e5c9e98c
fix #1229
3 years ago
Shivaram Lingamneni
1c4f9daae7
remove some dead code
3 years ago
Shivaram Lingamneni
06882a9b89
fix #1225
3 years ago
Shivaram Lingamneni
df8be72c6f
move StringSet to utils package
3 years ago
Shivaram Lingamneni
6a2fba9812
make it easier to patch out the maximum line length
3 years ago
Shivaram Lingamneni
027886046c
clean up always-on state machine
4 years ago
Shivaram Lingamneni
eaae3165f2
don't trigger auto-away if the client is already away
4 years ago
Shivaram Lingamneni
6916dbeae0
use consistent phrase for auto-away message
4 years ago
Shivaram Lingamneni
ffd00e1aff
minor optimization to Client.Friends
4 years ago
Conrad Lukawski
6f8711da3b
Persist realname for always-on clients
4 years ago
Shivaram Lingamneni
a7ca6601c7
enhancements to moderation (#1134, #1135)
4 years ago
Shivaram Lingamneni
6ea2eb367d
fix #328 (implement DEFCON)
4 years ago
Shivaram Lingamneni
067e62ad5e
fix #1166 and #1168
4 years ago
Shivaram Lingamneni
70f533ee07
fix #1155
4 years ago
Shivaram Lingamneni
0f04acaa40
persist last seen on shutdown
4 years ago
Shivaram Lingamneni
e22adf47ca
increase write interval for lastSeen
4 years ago