Alex Jaspersen
b6264a43b6
Rename "realIP" to "ip" in WhoWas struct.
It could be the real IP or the proxied IP.
преди 3 години
Alex Jaspersen
e5c2588eab
Show real IP in WHOWAS to opers with ban capability.
преди 3 години
Shivaram Lingamneni
23c7218bf1
first pass at renaming Oragono to Ergo
преди 3 години
Shivaram Lingamneni
ba21987d03
remove draft/resume-0.5
преди 3 години
Shivaram Lingamneni
ab870c2ffe
fix #1576
List IRCv3 CAPs in `NS CLIENTS LIST` output
преди 3 години
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
преди 3 години
Shivaram Lingamneni
4a48e52518
fix #1490
Track channel join times, use them to optionally enforce history access
restrictions
преди 3 години
Shivaram Lingamneni
bb5276553d
initial UBAN implementation
преди 3 години
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 години
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
преди 3 години
Shivaram Lingamneni
48166b5b4b
Implement expiration for always-on clients
Fixes #810
преди 3 години
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
преди 3 години
Shivaram Lingamneni
ba72d3acfc
implement a channel forwarding mode
Fixes #1260
преди 3 години
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 години
Shivaram Lingamneni
4f571c2cf3
implement NS RENAME
Fixes #1380
преди 3 години
Shivaram Lingamneni
a6d793a2d5
pointless optimization
преди 3 години
Shivaram Lingamneni
bcdf61bd7a
fix #1284
преди 3 години
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 години
Shivaram Lingamneni
06882a9b89
fix #1225
преди 3 години
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.
преди 3 години
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.)
преди 4 години
Shivaram Lingamneni
027886046c
clean up always-on state machine
преди 4 години
Shivaram Lingamneni
93530ae397
fix #1198
преди 4 години
Shivaram Lingamneni
77184c1625
restore transition mechanism
преди 4 години
Conrad Lukawski
6f8711da3b
Persist realname for always-on clients
преди 4 години
Shivaram Lingamneni
a7ca6601c7
enhancements to moderation (#1134, #1135)
преди 4 години
Shivaram Lingamneni
6ea2eb367d
fix #328 (implement DEFCON)
преди 4 години
Shivaram Lingamneni
70f533ee07
fix #1155
преди 4 години
Shivaram Lingamneni
9aa53aa3aa
update lastSeen on reattach
преди 4 години
Shivaram Lingamneni
ca79da87b1
fix disabling of autoreplay-missed
преди 4 години
Shivaram Lingamneni
17cd831319
fix #1144
преди 4 години
Shivaram Lingamneni
df1be01f54
simplify lastSeen handling
преди 4 години
Shivaram Lingamneni
218bea5a3e
fix #843
преди 4 години
Shivaram Lingamneni
a0f4e90b7e
add auto-away
преди 4 години
Shivaram Lingamneni
3f717436f8
fix #933
преди 4 години
Shivaram Lingamneni
26fd3e69a8
fix #749
преди 4 години
Shivaram Lingamneni
d5f68215e1
mark dirty when a client first becomes always-on
преди 4 години
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.
преди 4 години
Shivaram Lingamneni
904fa9653c
clear reg date and settings during logout
преди 4 години
Shivaram Lingamneni
f5ca35ed72
rename 'bouncer' to 'multiclient'
преди 4 години
Shivaram Lingamneni
4472683d58
persist lastSignoff in the database
преди 4 години
Shivaram Lingamneni
ad32356e34
move authentication data from Client to Session
преди 4 години
Shivaram Lingamneni
33dac4c0ba
initial persistent history implementation
преди 4 години
Shivaram Lingamneni
3480f124cd
fix #688
преди 4 години
Shivaram Lingamneni
40df122c73
remove unused getters
преди 4 години
Shivaram Lingamneni
65834c0729
optimize Sessions() at the expense of AddSession()
преди 5 години
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()
преди 5 години
Shivaram Lingamneni
5ac7ea5b1c
fix data race on exitedSnomaskSent
преди 5 години
Shivaram Lingamneni
4b88a60ba6
clean up some old getters
преди 5 години
Shivaram Lingamneni
1de166bccb
eliminate client.Realname() getter
преди 5 години