From 3ff65bc5d709b80ee6628b91b916b743ffcd3c5d Mon Sep 17 00:00:00 2001 From: Giovanni Harting <539@idlegandalf.com> Date: Wed, 13 Oct 2021 01:28:14 +0200 Subject: [PATCH] better handling of steam disconnect --- csgo/demo_loader.go | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/csgo/demo_loader.go b/csgo/demo_loader.go index 813f8d4..69bed1a 100644 --- a/csgo/demo_loader.go +++ b/csgo/demo_loader.go @@ -137,6 +137,10 @@ func (d *DemoMatchLoader) getRandomCM() *netutil.PortAddr { } func (d *DemoMatchLoader) connectToSteam() error { + if d.client.Connected() { + return nil + } + if d.cmList != nil { err := d.client.ConnectTo(d.getRandomCM()) if err != nil { @@ -221,8 +225,8 @@ func (d DemoMatchLoader) LoadDemo(demo *Demo) error { func (d DemoMatchLoader) connectLoop() { for d.connectToSteam() != nil { - log.Infof("Retrying connecting to steam") - time.Sleep(time.Second) + log.Infof("[DL] Retrying connecting to steam...") + time.Sleep(time.Second * 10) } } @@ -267,10 +271,7 @@ func (d *DemoMatchLoader) steamEventHandler() { } case *steam.DisconnectedEvent: log.Warningf("Steam disconnected, trying to reconnect...") - _, err := d.client.Connect() - if err != nil { - log.Errorf("[DL] Unable to reconnect to steam: %v", err) - } + go d.connectLoop() case *steam.LoginKeyEvent: log.Debug("Got login_key!") err := ioutil.WriteFile(d.loginKey, []byte(e.LoginKey), os.ModePerm)