Commit Graph

100 Commits

Author SHA1 Message Date
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
Shivaram Lingamneni db39608bcb change "last signoff" tracking to "last seen"
Explicit quit and ping timeout behave the same way,
but reattach after abandoning/losing the previous session
(without the break being detected server-side) is more aggressive
about replaying missed messages, at the cost of potential duplication.
2020-02-27 02:17:58 -05:00
Shivaram Lingamneni 904fa9653c clear reg date and settings during logout 2020-02-21 06:36:32 -05:00
Shivaram Lingamneni f5ca35ed72 rename 'bouncer' to 'multiclient' 2020-02-21 00:33:55 -05:00
Shivaram Lingamneni 4472683d58 persist lastSignoff in the database 2020-02-21 00:33:37 -05:00
Shivaram Lingamneni ad32356e34 move authentication data from Client to Session 2020-02-19 00:24:21 -05:00
Shivaram Lingamneni 33dac4c0ba initial persistent history implementation 2020-02-19 00:24:12 -05:00
Shivaram Lingamneni 3480f124cd fix #688 2019-12-17 19:37:33 -05:00
Shivaram Lingamneni 40df122c73 remove unused getters 2019-10-04 02:08:49 -04:00
Shivaram Lingamneni 65834c0729 optimize Sessions() at the expense of AddSession() 2019-08-02 00:20:31 -04:00
Shivaram Lingamneni b134a63dc2 simplify "client dead" logic in AddSession
now that we have client.destroyed again, we don't need to test the
"0 sessions && brb disabled" condition in both AddSession() and
destroy()
2019-05-28 04:56:56 -04:00
Shivaram Lingamneni 5ac7ea5b1c fix data race on exitedSnomaskSent 2019-05-27 14:33:59 -04:00
Shivaram Lingamneni 4b88a60ba6 clean up some old getters 2019-05-22 19:07:12 -04:00
Shivaram Lingamneni 1de166bccb eliminate client.Realname() getter 2019-05-22 16:10:56 -04:00
Shivaram Lingamneni 3d445573cf implement draft/resume-0.4 2019-05-21 22:36:37 -04:00
Shivaram Lingamneni 8fc588375b implement user preferences system 2019-05-19 06:17:30 -04:00
Shivaram Lingamneni 353aeb0389 normalize most times in the app to UTC
Fixes #480
2019-05-12 20:57:53 -04:00
Shivaram Lingamneni 5331afbdd4 Merge remote-tracking branch 'origin/master' into compat.4 2019-05-11 21:56:41 -04:00
Shivaram Lingamneni ce6a3e42df load isupport directly into the config object
eliminates Server.configurableStateMutex
2019-05-10 00:32:10 -04:00
Shivaram Lingamneni fbc6c84a01 add client compatibility switches 2019-05-09 15:41:08 -04:00
Shivaram Lingamneni 60c8f286e8 fix several session destruction bugs 2019-05-08 20:55:34 -04:00
Shivaram Lingamneni da656c07c8 add NICKSERV SESSIONS command to list sessions 2019-05-08 18:18:05 -04:00