about summary refs log tree commit diff
path: root/pkg/discord
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/discord')
-rw-r--r--pkg/discord/discord.go8
1 files changed, 7 insertions, 1 deletions
diff --git a/pkg/discord/discord.go b/pkg/discord/discord.go
index b0b6f7d..49ddc3b 100644
--- a/pkg/discord/discord.go
+++ b/pkg/discord/discord.go
@@ -16,6 +16,8 @@ type Discord struct {
 	gateway      gateway.Gateway
 	eventHandler events.EventHandler
 	rest         rest.REST
+
+	cancel context.CancelFunc
 }
 
 func New(token string, logger *zerolog.Logger) *Discord {
@@ -34,7 +36,10 @@ func New(token string, logger *zerolog.Logger) *Discord {
 	}
 }
 
-func (d *Discord) Connect(ctx context.Context) error {
+func (d *Discord) Connect() error {
+	ctx, cancel := context.WithCancel(context.Background())
+	d.cancel = cancel
+
 	gatewayURL, err := d.rest.Gateway()
 	if err != nil {
 		return err
@@ -52,6 +57,7 @@ func (d *Discord) Connect(ctx context.Context) error {
 }
 
 func (d *Discord) Disconnect() error {
+	d.cancel()
 	return d.gateway.Close()
 }