Commit Graph

930 Commits

Author SHA1 Message Date
Shivaram Lingamneni 6533893863 optimized implementation of Channel.Names() 2018-04-26 03:22:52 -04:00
Shivaram Lingamneni ef35c587fc remove redundant friends computation 2018-04-25 00:58:54 -04:00
Shivaram Lingamneni b97ae00fe3 refactor channel join and part 2018-04-25 00:58:54 -04:00
Shivaram Lingamneni 74fa58dda0 Merge remote-tracking branch 'origin/master' into vhosts.4 2018-04-23 21:46:12 -04:00
Daniel Oaks 22ec6139bf
Merge pull request #256 from slingamn/issue255.2
modes refactor, #255
2018-04-24 11:20:07 +10:00
Shivaram Lingamneni abbbd2c899 review fix 2018-04-23 20:05:02 -04:00
Shivaram Lingamneni cc9941cb07 review fixes, bug fixes 2018-04-23 02:38:35 -04:00
Shivaram Lingamneni 43b90f2a85 have travis enforce gofmt, #253 2018-04-22 20:41:29 -04:00
Shivaram Lingamneni fad2475c3f modes refactor, #255 2018-04-22 19:36:15 -04:00
Daniel Oaks 8f22d5ffd8
Merge pull request #236 from slingamn/socket_again.1
eliminate dedicated RunSocketWriter goroutine
2018-04-23 02:07:43 +10:00
Daniel Oaks 4a17eadbce
Merge pull request #246 from slingamn/db_autoupgrade.1
implement database auto-upgrades (#243)
2018-04-22 13:39:41 +10:00
Daniel Oaks 0aab3b44e9
Merge pull request #252 from slingamn/issue249
fix #249
2018-04-22 13:38:26 +10:00
moocow 744ad2ce0b Stats for LUSERS logic now seperated, fixed params in LUSERS 2018-04-20 22:48:15 +02:00
Shivaram Lingamneni 393070b7d9 fix #249 2018-04-20 14:21:07 -04:00
Shivaram Lingamneni 3db71415c9 review fixes 2018-04-20 03:59:01 -04:00
moortens 0b3abb5bde
Fixed LUSERS count not subtracting invisible users 2018-04-20 09:11:56 +02:00
Shivaram Lingamneni 5e62cc4ebc initial vhosts implementation, #183 2018-04-19 03:00:56 -04:00
Daniel Oaks 40d6cd02da Fix whois channel handling 2018-04-18 01:11:12 +10:00
Shivaram Lingamneni 69fd3ac324 implement database auto-upgrades (#243) 2018-04-16 16:35:01 -04:00
Shivaram Lingamneni f6d2dade4e fix fakelag double-rate issue
Basically, fakelag was counting the time imposed by its own sleeps as though
the user had themselves paused for that amount of time. Therefore, if a user
sent a large number of consecutive commands, every other command would pause
for the expected throttle interval, but the subsequent command would be
processed instantly (you'd get two back-to-back commands). This resulted in
throttled users being able to send at double the expected rate.
2018-04-16 04:32:57 -04:00
Daniel Oaks c75d2c91c5
Merge pull request #224 from slingamn/channelkeys.1
Updates to channel persistence
2018-04-16 13:35:48 +10:00
Daniel Oaks 5811226760 Only allow valid snomasks to be set 2018-04-16 13:20:37 +10:00
Shivaram Lingamneni f54561171e try to reduce redundant goroutines 2018-04-15 19:05:22 -04:00
Daniel Oaks 22f9df388d Fix trailing hack 2018-04-16 02:28:25 +10:00
Daniel Oaks dd6aacee61 Setup v0.12.0-unreleased devel ver 2018-04-16 02:28:06 +10:00
Daniel Oaks 31e5db9c1e Release v0.11.0 2018-04-15 19:47:20 +10:00
Shivaram Lingamneni 4778e7bcc7 fixes
* Placate `go vet`
* Reorder the `send` loop, clarify things a little
2018-04-15 01:21:32 -04:00
Shivaram Lingamneni b2f798cf03 eliminate dedicated RunSocketWriter goroutine 2018-04-13 16:13:43 -04:00
Daniel Oaks 27c575e191 Um... name monitor subcommands handler properly 2018-04-12 10:11:45 +10:00
Daniel Oaks df17b77266 Back to -unreleased 2018-04-11 10:12:11 +10:00
Daniel Oaks 26fcb2ebbc Release v0.11.0-beta 2018-04-11 09:37:09 +10:00
Shivaram Lingamneni 363b120cc5 fix #227 2018-04-09 12:46:20 -04:00
Daniel Oaks 9e8920394f Only display modestring on connect if it's set 2018-04-09 16:37:06 +10:00
Daniel Oaks b1a73142b5 Expose current git commit 2018-04-09 10:08:54 +10:00
Shivaram Lingamneni 8fb5a38851 Updates to channel persistence
1. Implement persistent channel keys (#208)
2. Persist changes to registered channel modes
3. Backend changes for persisting operator status (partial #198)
2018-04-03 21:49:40 -04:00
Daniel Oaks b6a997f68c Unify translations 2018-04-01 23:22:21 +10:00
Daniel Oaks a95c77bb86 Remove old command line that's no longer valid 2018-04-01 23:07:49 +10:00
Daniel Oaks 3394700def Fix translation notes 2018-04-01 18:31:30 +10:00
Daniel Oaks ab6cd599b2 Fix name of ISUPPORT token (REGCOMMANDS -> ACCCOMMANDS) 2018-04-01 12:04:25 +10:00
Daniel Oaks 5cbd4d1de2 Force help entries for every ChanServ command as well 2018-04-01 11:54:49 +10:00
Daniel Oaks 1c636aaec6 nickserv.go: Fix comment 2018-04-01 11:52:37 +10:00
Daniel Oaks 6fb4284e32 Refactor chanserv.go to match nickserv.go, unify the two 2018-04-01 11:51:34 +10:00
Daniel Oaks 9af74d367a nickserv.go: Move comment to right place 2018-04-01 11:29:13 +10:00
Daniel Oaks 7b8c4e7e91 Refactor nickserv.go to better support NS HELP and translations 2018-04-01 11:22:06 +10:00
Daniel Oaks a39c46d470 Fix registered-only modes in docs (it's +R, not +r) 2018-04-01 09:50:22 +10:00
Daniel Oaks 46c98c2cf5 Fix CHANSERV OP 2018-04-01 09:33:58 +10:00
Daniel Oaks a67dfe37ca Add CHANSERV OP (thanks benharri for making the request!) 2018-04-01 01:26:31 +10:00
Shivaram Lingamneni 7cfa75a59e
Merge pull request #218 from slingamn/socketwriter.1
refactor irc.Socket
2018-03-28 13:26:03 -04:00
Shivaram Lingamneni 65f2e95d2b
Merge pull request #222 from slingamn/fakelag.3
implement fakelag (#189)
2018-03-28 13:25:49 -04:00
Shivaram Lingamneni 36018174b0 default fakelag to off, add explicit cooldown config 2018-03-28 13:18:08 -04:00
Shivaram Lingamneni 1bf5e2a7c8 implement fakelag (#189) 2018-03-22 11:04:21 -04:00
Shivaram Lingamneni a8b952da77 store maxSendQBytes in a uint32 to avoid alignment problems
The sync.atomic documentation says:

"On both ARM and x86-32, it is the caller's responsibility to arrange
for 64-bit alignment of 64-bit words accessed atomically."
2018-03-19 00:24:20 -04:00
Shivaram Lingamneni 2885b37768 partial fix for #217
See discussion on issue; this might not be a complete fix but it's
definitely better than the current behavior.
2018-03-18 00:12:50 -04:00
Shivaram Lingamneni d1f5c59eef fix #190 2018-03-17 23:26:07 -04:00
Shivaram Lingamneni 8fd1446627 tweak: clean up Socket.Close() 2018-03-16 18:16:04 -04:00
Shivaram Lingamneni 0a432c9d99 do an actual nonblocking send instead of the len() trick 2018-03-16 12:39:11 -04:00
Shivaram Lingamneni fa5d4be718 refactor irc.Socket 2018-03-15 19:11:29 -04:00
Shivaram Lingamneni f5f6b95662 fix #214 2018-03-14 12:51:53 -04:00
Shivaram Lingamneni b0f262bc0c
Merge pull request #206 from slingamn/ghost.2
nickserv: implement GHOST, GROUP, DROP, and INFO
2018-03-14 09:42:20 -04: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 fd34c78d6b add sadrop command 2018-03-14 06:50:26 -04:00
Shivaram Lingamneni 211ed6af99 add an option to expose a pprof http endpoint 2018-03-13 16:55:30 -04:00
Shivaram Lingamneni 679f25491c can't reserve a nick that's the name of an unverified account 2018-03-11 14:40:36 -04:00
Shivaram Lingamneni 47b9fe50be can't register an account with the same name as a registered nick 2018-03-11 13:59:02 -04:00
Shivaram Lingamneni a022befffe nickserv: implement GHOST, GROUP, DROP, and INFO 2018-03-02 17:05:47 -05:00
Shivaram Lingamneni ef99bc48d1 fix #204
Empty channels were only cleaned up on PART, not QUIT.
2018-03-01 11:10:46 -05: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 a5897baa2b clean up redundant error handling 2018-02-28 17:29:18 -05:00
Daniel Oaks 1023f7e20e
Merge pull request #200 from slingamn/issue199.2
implement #199
2018-02-27 19:50:09 -08:00
Shivaram Lingamneni 784a3bbf52 Don't send error messages for bad channels in NAMES
"There is no error reply for bad channel names."
<https://tools.ietf.org/html/rfc2812#section-3.2.5>
2018-02-27 15:37:58 -05:00
Shivaram Lingamneni 54123ef9a2 clear failed nick assignments to avoid confusion 2018-02-27 05:22:01 -05:00
Shivaram Lingamneni 62581962a6 fix confusing ips-per-subnet name 2018-02-26 23:52:15 -05:00
Shivaram Lingamneni be86684e96 implement #199 2018-02-26 22:48:52 -05:00
Daniel Oaks 0ea210c28c
Merge pull request #196 from slingamn/smtp.1
implement mailto callbacks
2018-02-23 07:53:36 -08:00
Daniel Oaks 04d7792ed2
Merge pull request #195 from slingamn/stopevent
clean up stopEvent (requires go v1.10)
2018-02-23 07:49:22 -08:00
Shivaram Lingamneni 878f9ca94c fix: store the uncasefolded account name correctly 2018-02-20 04:50:46 -05:00
Shivaram Lingamneni df41f9b3b0 don't send ACC numerics in response to NickServ commands 2018-02-20 04:44:44 -05:00
Shivaram Lingamneni 89ae261739 implement mailto callbacks 2018-02-20 04:20:30 -05:00
Daniel Oaks 25f8b15232
Merge pull request #194 from slingamn/issue192.1
fix #192
2018-02-19 14:54:03 +10:00
Shivaram Lingamneni 02161184cf clean up stopEvent (requires go v1.10) 2018-02-18 23:18:32 -05:00
Shivaram Lingamneni 5b636371a9 fix SASL enable-disable logic 2018-02-18 22:15:43 -05:00
Shivaram Lingamneni ced3a17cd3 fix #192 2018-02-18 21:52:39 -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 73391f11a6 replace ACC UNREGISTER with nickserv unregister 2018-02-12 01:09:30 -05:00
Shivaram Lingamneni af256fccd3 remove redundant oper check from DEBUG 2018-02-11 23:58:54 -05:00
Shivaram Lingamneni b139386391 fix account tags 2018-02-11 06:31:23 -05:00
Shivaram Lingamneni ad73d68807 refactor account registration, add nick enforcement 2018-02-11 05:30:40 -05:00
Daniel Oaks a70cc6713c (hopefully) fix labeled-response behaviour 2018-02-11 08:57:15 +10:00
Daniel Oaks e0fa97d344 Get labeled-reply working just fine 2018-02-06 00:21:08 +10:00
Daniel Oaks 470109461b responsebuffer: Handle sending early properly 2018-02-04 21:34:44 +10:00
Daniel Oaks 3680a3fe9a Merge 2018-02-04 21:32:48 +10:00
Daniel Oaks 3561046bec Make ERR_CANNOT_RESUME use RPL_NONE numeric 2018-02-04 21:25:08 +10:00
Daniel Oaks ca6a162696 handlers: Make sure all functions have appropriate comments 2018-02-04 05:48:44 +10:00
Daniel Oaks 52e3dde77a Move mkcerts package under lib/ 2018-02-04 05:34:26 +10:00
Daniel Oaks 2419f69879 Move all errors into errors.go 2018-02-03 22:03:36 +10:00
Daniel Oaks 3ef4c5f799 Split NS/CS commands into separate functions 2018-02-03 21:38:28 +10:00
Daniel Oaks 2ecec25d28 Misc refactoring 2018-02-03 21:15:07 +10:00
Daniel Oaks d854bac78e Fix broken modes tests 2018-02-03 20:28:02 +10:00
Daniel Oaks 3634d0601e Split modes into a subpackage (this is painful, but will force us to simplify and improve the API for interacting with modes) 2018-02-03 20:21:32 +10:00
Daniel Oaks 9f71d9ce12 Add right copyright to handlers.go 2018-02-03 19:48:30 +10:00