Commit Graph

26 Commits

Author SHA1 Message Date
Shivaram Lingamneni a59212f8dc send nickserv timeout warnings from a full pseudo-nickmask 2019-05-21 02:48:18 -04:00
Shivaram Lingamneni 8fc588375b implement user preferences system 2019-05-19 06:17:30 -04:00
Shivaram Lingamneni 4af783ed9e fix #449 2019-04-14 20:48:50 -04:00
Shivaram Lingamneni c2faeed4b5 initial implementation of bouncer functionality 2019-04-14 20:48:50 -04:00
Daniel Oaks baa7e5af0b
Merge pull request #442 from slingamn/message_tags.5
upgrade message-tags to non-draft version
2019-03-12 08:47:08 +10:00
Shivaram Lingamneni 2e88f82e41 remove indirections in Fakelag and NickTimer 2019-03-08 05:36:54 -05:00
Shivaram Lingamneni 85493ef031 upgrade message-tags to non-draft version 2019-03-07 04:31:08 -05:00
Shivaram Lingamneni 12e3ca9b4d work around a Tor bug
https://bugs.torproject.org/29665 describes how single-onion circuits
will close unless the client sends data every 60 seconds. To cause the
client to send these messages, have Oragono send the client a PING every
30 seconds.
2019-03-05 22:10:30 -05:00
Shivaram Lingamneni 29c6db593a fix missing Unescape call 2019-02-17 22:59:13 -05:00
Shivaram Lingamneni 729d4b377c revised string from discussion on ticket 2019-02-17 22:47:41 -05:00
Shivaram Lingamneni a211ddfcdb work around znc's broken nickserv support 2019-02-17 21:29:04 -05:00
Shivaram Lingamneni 1c23af8767 add sasl-only config option 2019-02-05 00:51:58 -05:00
Shivaram Lingamneni b9b2553a2f use the TR39 skeleton algorithm to prevent confusables (#178) 2019-01-30 21:48:53 -05:00
Shivaram Lingamneni 2ee89b15b3 per-user settings for nickname enforcement 2019-01-02 10:15:59 -05:00
Shivaram Lingamneni b8f37e4e6c fix bad interaction between nickTimer.Stop() and accounts.Logout()
Sequence of events:

1. client.nickTimer.Stop()
2. client.server.accounts.Logout(client)
3. accounts sees that client is no longer logged in, does client.nickTimer.Touch()
4. 30 seconds later, RandomlyRename resurrects the zombie client
2018-03-14 08:43:50 -04:00
Shivaram Lingamneni 945dec9964 ensure the nick timeout mechanism is cleaned up on client quit 2018-02-28 17:29:18 -05:00
Shivaram Lingamneni 988cb22692 changes to nick reservation
* Clients are now renamed, not disconnected, on reservation timeout
* Nick reservation config is now its own subsection
2018-02-18 04:46:14 -05:00
Shivaram Lingamneni ad73d68807 refactor account registration, add nick enforcement 2018-02-11 05:30:40 -05:00
Daniel Oaks 7b88d21e58 Possible IdleTimer lock fix 2018-01-30 14:26:29 +10:00
Daniel Oaks ac99e82192 Fix build issues 2018-01-22 17:57:38 +10:00
Daniel Oaks d09f085b1a Add very initial RESUME cap and command 2018-01-22 17:57:38 +10:00
Shivaram Lingamneni d8d1705035 refactor idle timeouts again 2017-12-06 23:23:25 -05:00
Shivaram Lingamneni ad1e00629b fix a race condition in idle timeouts
squigz on freenode reported an issue where bots were responding to PING
on time, but were occasionally being timed out regardless. This was a race
condition: timeout was detected as idleTime >= it.quitTimeout, but if
the client responded promptly to its PING message and sent no further messages,
but the main loop subsequently slept for longer than expected (i.e., significantly
longer than quitTimeout), this condition would be met through no fault of the
client's.

The fix here is to explicitly track the last time the ping was sent, then test
!lastSeen.After(lastPinged) instead (making use of time.Time's monotonicity).
It is sufficient that the measurement of lastPinged happens-before the PING is sent.
2017-12-02 20:30:26 -05:00
Shivaram Lingamneni 52b0fb71e7 refactor ClientManager 2017-11-22 05:09:38 -05:00
Shivaram Lingamneni c026cc5ab6 review fixes
* move constant definitions
* always give the client at least quitTimeout to respond to ping,
  even if registerTimeout or quitTimeout are longer than idleTimeout
2017-10-15 22:37:36 -04:00
Shivaram Lingamneni e540fde816 refactor idle timeouts 2017-10-15 19:46:25 -04:00