diamondburned
aa6432f48e
{,Voice}Gateway: Refactored Closing
...
This commit refactors both wsutil, the normal Gateway and the Voice
Gateway to have better closing behavior, which should assume less and
cover edge cases completely.
2020-10-30 11:08:29 -07:00
diamondburned
6c332ac145
{Voice,}Gateway: Fixed various race conditions
...
This commit fixes race conditions in both package voice, package
voicegateway and package gateway.
Originally, several race conditions exist when both the user's and the
pacemaker's goroutines both want to do several things to the websocket
connection. For example, the user's goroutine could be writing, and the
pacemaker's goroutine could trigger a reconnection. This is racey.
This issue is partially fixed by removing the pacer loop from package
heart and combining the ticker into the event (pacemaker) loop itself.
Technically, a race condition could still be triggered with care, but
the API itself never guaranteed any of those. As events are handled
using an internal loop into a channel, a race condition will not be
triggered just by handling events and writing to the websocket.
2020-10-22 10:47:27 -07:00
diamondburned
de61fd912d
wsutil: Made PacemakerLoop valid as zero-value
2020-08-19 21:30:57 -07:00
Maximilian von Lindern
1585797b52
*: Linting and typo fixes ( #134 )
...
* Linting and typo fixes
* Linting and typo fixes
* revert comma fix
2020-07-29 16:58:33 -07:00
diamondburned
24f7ed0499
Gateway: ReconnectCtx now returns error; fixed test
2020-07-18 18:33:07 -07:00
diamondburned
a1038cb8bb
Gateway: Fixed wrong usage of Context in Gateway reconnection
2020-07-15 16:32:53 -07:00
diamondburned
edb8a46ef2
Gateway: Added intent helpers and more context API support
2020-07-11 12:50:32 -07:00
mavolin
41ce1f389e
make all error messages lowercase
2020-05-16 23:14:49 +02:00
diamondburned (Forefront)
51e88a47b2
Gateway/Voice: Improved the event loop, fixed race conditions
2020-04-25 00:13:07 -07:00
diamondburned (Forefront)
95624292f7
Gateway: Deprecated OP chan API, use PacerLoop.Extras instead
2020-04-24 15:32:14 -07:00
diamondburned (Forefront)
54ac0a6951
Gateway: Migrated to wsutil.PacemakerLoop
2020-04-24 15:30:15 -07:00
diamondburned (Forefront)
443ec791af
Heart: Moved PacemakerLoop to wsutil, changed Gateway abstractions to generic ones
2020-04-24 15:09:05 -07:00
diamondburned (Forefront)
2f076c041e
Gateway: Migrated functions and variables to other packages, added JSON default codecs
2020-04-23 23:34:08 -07:00
diamondburned (Forefront)
748ad5641c
API: Added AllowedMentions and more tests
2020-04-19 16:35:37 -07:00
diamondburned (Forefront)
2afe683b7d
Utils: Added HTTP drivers
2020-04-19 14:53:53 -07:00
diamondburned (Forefront)
bf93a9cee9
Changed endpoint constants to variables
2020-04-19 09:30:12 -07:00
diamondburned (Forefront)
b9384042bb
Gateway: Added GatewayBot
2020-04-19 09:17:04 -07:00
diamondburned (Forefront)
813be25713
Gateway: Fixed infinite InvalidSession loop
2020-04-13 18:23:38 -07:00
diamondburned (Forefront)
4e4ebde93a
Gateway: Deprecated Wait(), fixed ReconnectOP bug
2020-04-12 11:06:43 -07:00
diamondburned (Forefront)
01e52334c6
Gateway: Possible bug fix, added more verbose debugging
2020-04-11 17:47:09 -07:00
diamondburned (Forefront)
cc530ce7a2
Bot: Allow func(T), added more documentation, minor fixes
2020-04-09 13:49:12 -07:00
diamondburned (Forefront)
be12849668
Changed internal/ to utils/, allowing external imports
2020-04-08 19:28:40 -07:00
diamondburned (Forefront)
2f597ebc0b
Session: Added an AfterClose handler as a *session.Close event
2020-04-06 19:36:06 -07:00
diamondburned (Forefront)
33061e916f
Gateway: Now waits for either READY or RESUMED before finishing Open()
2020-04-06 13:27:33 -07:00
diamondburned (Forefront)
9f5c2ac958
Gateway: Switched to gorilla/websocket, fixes #11
2020-04-06 13:27:29 -07:00
diamondburned (Forefront)
743a8a8fd9
API: Fixed FormatEmojiAPI
2020-03-22 15:23:29 -07:00
diamondburned (Forefront)
8899462ff0
Gateway: Added undocumented GuildMemberListUpdate event
2020-03-15 22:55:45 -07:00
diamondburned (Forefront)
22ef50c499
Gateway: Fixed bug where WS errors block forever
2020-03-07 11:50:30 -08:00
diamondburned (Forefront)
403e4970f7
Gateway: Fixed a deadlocking mutex
2020-03-02 19:18:33 -08:00
diamondburned (Forefront)
0aebea60bd
Gateway: Minor bug fixes
2020-03-01 16:39:40 -08:00
diamondburned (Forefront)
f0102d765f
Gateway: Added a retry limit
...
State: Event handlers now handle all of Ready's Guilds field
Session: Added Wait, which blocks until SIGINT or Gateway error
2020-02-29 18:13:58 -08:00
diamondburned (Forefront)
220eb5ff42
Gateway: Fixed OP chan not having a concrete type
2020-02-25 22:37:26 -08:00
diamondburned (Forefront)
587d36fd6c
Gateway: Open now fails at once, only Reconnect retries forever.
2020-02-19 19:36:00 -08:00
diamondburned
76c7760c24
Gateway: Removed redundant context
2020-02-11 09:29:30 -08:00
diamondburned
3288f2d19c
Gateway: Fix race conditions and fatal reconnecting ( #7 )
2020-02-07 22:17:27 -08:00
diamondburned (Forefront)
85b793a1a7
Fixed some race conditions
2020-02-02 14:12:54 -08:00
diamondburned (Forefront)
b62ba3ecc0
More race condition fixes
2020-01-28 19:54:22 -08:00
diamondburned (Forefront)
3770927a48
Bot: trivial fixes
2020-01-28 16:01:39 -08:00
diamondburned (Forefront)
3ca1d352c9
Fixed a ridiculous race condition in the gateway
2020-01-20 03:06:20 -08:00
diamondburned (Forefront)
aa4154e73c
Minor fixes that doesn't really fix anything
2020-01-20 01:32:28 -08:00
diamondburned (Forefront)
ac685b0df4
Minor fixes, undocumented things, and editorconfig
2020-01-19 13:54:16 -08:00
diamondburned (Forefront)
6b6f9f96aa
When in doubt, use brute force.
2020-01-18 22:46:45 -08:00
diamondburned (Forefront)
841128dc88
Fixed gateway integration test
2020-01-18 22:34:52 -08:00
diamondburned (Forefront)
9651de81c6
Heartbeat can now resume, bot will fatal (die) if it can't reconnect
2020-01-18 22:14:46 -08:00
diamondburned (Forefront)
971c162d33
Fixed bug where reconnect would fail
2020-01-17 23:40:44 -08:00
diamondburned
2dc983d243
Added simple example
2020-01-17 14:29:13 -08:00
diamondburned
d1341b61b3
Gateway integration test + Bug fixes
2020-01-15 19:28:21 -08:00
diamondburned
127c636310
Moved misc packages to internal
2020-01-15 10:32:54 -08:00
diamondburned (Forefront)
03d226e23d
WIP integration test
2020-01-14 23:34:18 -08:00
diamondburned (Forefront)
9f643fee7a
Minor fixes, package synopsis
2020-01-14 21:00:24 -08:00