Shivaram Lingamneni
1da11ae8ae
implement draft/pre-away ( #2044 )
...
* implement draft/pre-away
* clean up some subtleties in auto-away aggregation.
* consistently apply auto-away only to always-on
* `AWAY *` should not produce user-visible changes wherever possible
2023-02-05 00:50:14 -05:00
Shivaram Lingamneni
7ce0636276
refactor of channel persistence to use UUIDs
2023-01-04 05:06:21 -05:00
Shivaram Lingamneni
35128bfc23
use new aligned atomic types everywhere
...
See 69448b13a1
/ #1969 ; the compiler can now ensure that a uint64
intended for atomic access is always aligned to a 64-bit boundary.
Convert atomic operations on uint32s and pointers as well.
2022-08-10 02:47:39 -04:00
Shivaram Lingamneni
a99c8a42f9
remove utils.ConfigStore in favor of atomic.Pointer[T]
2022-08-03 00:59:00 -04:00
Shivaram Lingamneni
c3d4be45f1
fix timestamp syntax in MARKREAD
2022-05-20 01:46:41 -04:00
Shivaram Lingamneni
d5814c10ab
Merge pull request #1949 from slingamn/generic_config.2
...
genericize atomic config changes
2022-05-04 01:30:52 -04:00
Shivaram Lingamneni
077081076c
fix #1941
...
KLINE'd clients would produce a QUIT snotice without a corresponding
CONNECT snotice; explicitly suppress the QUIT snotice.
2022-05-03 13:13:29 -04:00
Shivaram Lingamneni
c603d41d08
genericize atomic config changes
2022-05-03 11:12:11 -04:00
Shivaram Lingamneni
32f7868bfd
implement draft/read-marker capability
2022-03-30 23:16:09 -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
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
Alex Jaspersen
e5c2588eab
Show real IP in WHOWAS to opers with ban capability.
2021-06-20 10:26:30 -07:00
Shivaram Lingamneni
23c7218bf1
first pass at renaming Oragono to Ergo
2021-05-26 15:55:24 -04:00
Shivaram Lingamneni
ba21987d03
remove draft/resume-0.5
2021-05-18 23:27:46 -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
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
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
bb5276553d
initial UBAN implementation
2021-01-19 08:49:45 -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
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
48166b5b4b
Implement expiration for always-on clients
...
Fixes #810
2020-12-21 05:11:50 -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
ba72d3acfc
implement a channel forwarding mode
...
Fixes #1260
2020-12-14 22:38:23 -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
4f571c2cf3
implement NS RENAME
...
Fixes #1380
2020-11-10 19:59:12 -05:00
Shivaram Lingamneni
a6d793a2d5
pointless optimization
2020-09-24 08:35:03 -04:00
Shivaram Lingamneni
bcdf61bd7a
fix #1284
2020-09-24 02:44:12 -04:00
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 .
2020-09-19 10:19:41 -07:00
Shivaram Lingamneni
55b21fa86c
Merge pull request #1227 from slingamn/issue1225.2
...
fix #1225
2020-08-06 01:19:39 -07:00
Shivaram Lingamneni
06882a9b89
fix #1225
2020-08-06 03:28:10 -04:00
Hubert Hirtz
f6d5fe812f
Update draft/rename implementation
...
Link to the new draft PR:
<https://github.com/ircv3/ircv3-specifications/pull/420 >
Changes in the spec:
- Use standard replies instead of numerics:
<https://github.com/ircv3/ircv3-specifications/pull/420/files#diff-70e90beef48dc9cf5d784d1e179ea822R44 >
- Allow RENAME to a different case:
<https://github.com/ircv3/ircv3-specifications/pull/420/files#diff-70e90beef48dc9cf5d784d1e179ea822R42 >
This commit makes oragono send the PART-JOIN fallback even on case-only
changes. This is so that clients don't have to worry about oragono's
UTF8 casefolding. See the following comments for further info:
<https://github.com/ircv3/ircv3-specifications/pull/420#issuecomment-668770837 >
Misc fixes:
- Remove unused variable,
- Add missing calls to utils.SafeErrorParam,
- Don't fill replies with the user-provided "oldName", for the same
reason as sending the PART-JOIN fallback.
2020-08-05 22:46:30 +02:00
Shivaram Lingamneni
470756cd3e
fix an edge case with /NS SASET user always-on true
...
If force-nick-equals-account is disabled, then this could cause
a client with a non-reserved (or grouped) nick to become always-on.
(This can't happen with `/NS SET always-on true` because we check in
advance.)
2020-07-27 06:08:06 -04:00
Shivaram Lingamneni
027886046c
clean up always-on state machine
2020-07-27 00:21:16 -04:00
Shivaram Lingamneni
93530ae397
fix #1198
2020-07-17 02:54:43 -04:00
Shivaram Lingamneni
a99c893f9b
Merge branch 'realname_again'
2020-07-12 16:49:30 -04:00
Shivaram Lingamneni
77184c1625
restore transition mechanism
2020-07-12 16:47:11 -04:00
Conrad Lukawski
6f8711da3b
Persist realname for always-on clients
2020-07-12 14:46:36 -04:00
Shivaram Lingamneni
a7ca6601c7
enhancements to moderation ( #1134 , #1135 )
2020-07-10 17:09:02 -04:00
Shivaram Lingamneni
6ea2eb367d
fix #328 (implement DEFCON)
2020-07-09 02:16:51 -04:00
Shivaram Lingamneni
70f533ee07
fix #1155
2020-06-29 21:29:28 -04:00
Shivaram Lingamneni
9aa53aa3aa
update lastSeen on reattach
2020-06-29 00:38:05 -04:00
Shivaram Lingamneni
ca79da87b1
fix disabling of autoreplay-missed
2020-06-18 04:32:54 -04:00
Shivaram Lingamneni
17cd831319
fix #1144
2020-06-18 03:38:00 -04:00
Shivaram Lingamneni
df1be01f54
simplify lastSeen handling
2020-06-14 13:52:29 -04:00
Shivaram Lingamneni
218bea5a3e
fix #843
2020-06-12 16:26:27 -04:00
Shivaram Lingamneni
a0f4e90b7e
add auto-away
2020-05-19 22:46:23 -04:00
Shivaram Lingamneni
3f717436f8
fix #933
2020-04-06 13:10:38 -04:00
Shivaram Lingamneni
26fd3e69a8
fix #749
2020-03-16 13:48:14 -04:00
Shivaram Lingamneni
d5f68215e1
mark dirty when a client first becomes always-on
2020-03-02 01:53:02 -05:00