From c88585fc5a87ab08b2e9caa9b7d90bb6ade85170 Mon Sep 17 00:00:00 2001 From: Chteufleur Date: Thu, 22 Oct 2015 21:17:59 +0200 Subject: [PATCH] Fix disconection presence bug --- main.go | 18 +++++++++++------- servers.addr | 2 +- xmpp/xmpp.go | 12 ++++-------- 3 files changed, 16 insertions(+), 16 deletions(-) diff --git a/main.go b/main.go index 3944d5f..df303be 100644 --- a/main.go +++ b/main.go @@ -15,6 +15,7 @@ import ( ) const ( + Version = "go-xmpp4steam v0.1.2" configurationFilePath = "xmpp4steam.cfg" ) @@ -24,8 +25,6 @@ var ( ) func init() { - xmpp.Version = "0.1.1" - err := cfg.Load(configurationFilePath, mapConfig) if err != nil { log.Fatal("Failed to load configuration file.", err) @@ -124,16 +123,14 @@ func gatewaySteamXmppAction() { action := <-steam.ChanAction switch action { case steam.ActionConnected: - xmpp.SendPresence(xmpp.CurrentStatus, xmpp.Type_available) + xmpp.SendPresence(xmpp.CurrentStatus, xmpp.Type_available, Version) case steam.ActionDisconnected: xmpp.Disconnect() - for sid, _ := range SetSteamId { - xmpp.SendPresenceFrom(xmpp.Status_offline, xmpp.Type_unavailable, sid+"@"+xmpp.JidStr, "") - delete(SetSteamId, sid) - } + disconnectAllSteamUser() case steam.ActionFatalError: + disconnectAllSteamUser() time.Sleep(2 * time.Second) go steam.Run() } @@ -185,6 +182,13 @@ func gatewaySteamXmppPresence() { } } + +func disconnectAllSteamUser() { + for sid, _ := range SetSteamId { + xmpp.SendPresenceFrom(xmpp.Status_offline, xmpp.Type_unavailable, sid+"@"+xmpp.JidStr, "") + delete(SetSteamId, sid) + } +} // /Steam -> XMPP gateways func inputStop() { diff --git a/servers.addr b/servers.addr index 64bcd20..a9a6c3f 100644 --- a/servers.addr +++ b/servers.addr @@ -1 +1 @@ -{"Addresses":[{"IP":"162.254.196.43","Port":27018},{"IP":"162.254.196.43","Port":27017},{"IP":"162.254.196.43","Port":27020},{"IP":"162.254.196.41","Port":27019},{"IP":"162.254.196.43","Port":27021},{"IP":"162.254.196.42","Port":27017},{"IP":"162.254.196.42","Port":27018},{"IP":"162.254.196.42","Port":27020},{"IP":"162.254.196.40","Port":27017},{"IP":"162.254.196.42","Port":27019},{"IP":"162.254.196.43","Port":27019},{"IP":"162.254.196.40","Port":27020},{"IP":"162.254.196.40","Port":27021},{"IP":"146.66.152.11","Port":27020},{"IP":"146.66.152.11","Port":27019},{"IP":"162.254.196.40","Port":27018},{"IP":"162.254.196.41","Port":27021},{"IP":"162.254.196.40","Port":27019},{"IP":"162.254.196.41","Port":27020},{"IP":"162.254.197.42","Port":27021},{"IP":"162.254.197.42","Port":27018},{"IP":"162.254.197.40","Port":27017},{"IP":"146.66.152.11","Port":27018},{"IP":"162.254.196.41","Port":27018},{"IP":"162.254.197.40","Port":27021},{"IP":"162.254.196.42","Port":27021},{"IP":"162.254.197.41","Port":27018},{"IP":"162.254.197.41","Port":27019},{"IP":"162.254.197.42","Port":27019},{"IP":"162.254.197.41","Port":27021},{"IP":"162.254.197.41","Port":27017},{"IP":"162.254.196.41","Port":27017},{"IP":"162.254.197.42","Port":27020},{"IP":"146.66.152.10","Port":27017},{"IP":"162.254.197.42","Port":27017},{"IP":"146.66.152.10","Port":27020},{"IP":"162.254.197.41","Port":27020},{"IP":"162.254.197.40","Port":27018},{"IP":"162.254.197.40","Port":27019},{"IP":"146.66.152.10","Port":27019},{"IP":"146.66.152.10","Port":27018},{"IP":"146.66.152.11","Port":27017},{"IP":"162.254.197.40","Port":27020},{"IP":"185.25.180.14","Port":27020},{"IP":"185.25.182.10","Port":27017},{"IP":"185.25.182.10","Port":27018},{"IP":"155.133.242.8","Port":27017},{"IP":"155.133.242.9","Port":27019},{"IP":"155.133.242.8","Port":27018},{"IP":"155.133.242.9","Port":27018},{"IP":"185.25.180.15","Port":27020},{"IP":"146.66.155.8","Port":27020},{"IP":"185.25.182.10","Port":27019},{"IP":"146.66.155.8","Port":27018},{"IP":"185.25.180.15","Port":27018},{"IP":"185.25.180.14","Port":27018},{"IP":"185.25.180.14","Port":27019},{"IP":"185.25.180.14","Port":27017},{"IP":"155.133.242.8","Port":27019},{"IP":"185.25.180.15","Port":27019},{"IP":"185.25.180.15","Port":27017},{"IP":"155.133.242.9","Port":27017},{"IP":"155.133.242.9","Port":27020},{"IP":"185.25.182.10","Port":27020},{"IP":"155.133.242.8","Port":27020},{"IP":"146.66.155.8","Port":27019},{"IP":"146.66.155.8","Port":27017},{"IP":"208.78.164.12","Port":27018},{"IP":"208.78.164.14","Port":27017},{"IP":"208.78.164.9","Port":27019},{"IP":"208.78.164.13","Port":27018},{"IP":"208.78.164.14","Port":27019},{"IP":"208.78.164.14","Port":27018},{"IP":"208.78.164.11","Port":27019},{"IP":"208.78.164.11","Port":27018},{"IP":"208.78.164.13","Port":27017},{"IP":"208.78.164.10","Port":27019},{"IP":"208.78.164.13","Port":27019},{"IP":"208.78.164.9","Port":27017},{"IP":"208.78.164.10","Port":27017}]} \ No newline at end of file +{"Addresses":[{"IP":"162.254.196.42","Port":27020},{"IP":"162.254.196.42","Port":27021},{"IP":"162.254.196.43","Port":27019},{"IP":"162.254.196.43","Port":27018},{"IP":"162.254.196.41","Port":27017},{"IP":"162.254.196.43","Port":27020},{"IP":"162.254.196.42","Port":27018},{"IP":"162.254.196.42","Port":27017},{"IP":"162.254.196.40","Port":27018},{"IP":"162.254.196.41","Port":27021},{"IP":"162.254.196.42","Port":27019},{"IP":"146.66.152.11","Port":27017},{"IP":"162.254.196.41","Port":27018},{"IP":"162.254.196.41","Port":27019},{"IP":"162.254.196.40","Port":27017},{"IP":"162.254.196.40","Port":27019},{"IP":"162.254.196.43","Port":27021},{"IP":"162.254.196.40","Port":27021},{"IP":"162.254.196.41","Port":27020},{"IP":"146.66.152.10","Port":27019},{"IP":"146.66.152.11","Port":27019},{"IP":"162.254.197.40","Port":27019},{"IP":"162.254.197.41","Port":27019},{"IP":"162.254.197.41","Port":27020},{"IP":"146.66.152.10","Port":27017},{"IP":"162.254.196.43","Port":27017},{"IP":"162.254.197.41","Port":27018},{"IP":"146.66.152.10","Port":27020},{"IP":"146.66.152.10","Port":27018},{"IP":"162.254.197.40","Port":27020},{"IP":"162.254.197.42","Port":27020},{"IP":"146.66.152.11","Port":27018},{"IP":"162.254.197.42","Port":27019},{"IP":"162.254.197.41","Port":27017},{"IP":"162.254.196.40","Port":27020},{"IP":"162.254.197.41","Port":27021},{"IP":"162.254.197.42","Port":27021},{"IP":"162.254.197.42","Port":27018},{"IP":"162.254.197.40","Port":27021},{"IP":"162.254.197.40","Port":27017},{"IP":"146.66.152.11","Port":27020},{"IP":"162.254.197.40","Port":27018},{"IP":"162.254.197.42","Port":27017},{"IP":"185.25.180.15","Port":27019},{"IP":"146.66.155.8","Port":27020},{"IP":"185.25.182.10","Port":27018},{"IP":"155.133.242.9","Port":27019},{"IP":"155.133.242.9","Port":27017},{"IP":"185.25.180.15","Port":27020},{"IP":"185.25.180.14","Port":27017},{"IP":"185.25.182.10","Port":27019},{"IP":"185.25.182.10","Port":27020},{"IP":"146.66.155.8","Port":27017},{"IP":"155.133.242.9","Port":27020},{"IP":"185.25.180.15","Port":27018},{"IP":"155.133.242.9","Port":27018},{"IP":"185.25.182.10","Port":27017},{"IP":"185.25.180.14","Port":27019},{"IP":"185.25.180.14","Port":27020},{"IP":"155.133.242.8","Port":27018},{"IP":"155.133.242.8","Port":27017},{"IP":"155.133.242.8","Port":27019},{"IP":"146.66.155.8","Port":27019},{"IP":"146.66.155.8","Port":27018},{"IP":"185.25.180.15","Port":27017},{"IP":"155.133.242.8","Port":27020},{"IP":"185.25.180.14","Port":27018},{"IP":"208.78.164.14","Port":27019},{"IP":"208.78.164.14","Port":27018},{"IP":"208.78.164.14","Port":27017},{"IP":"208.78.164.11","Port":27018},{"IP":"208.78.164.9","Port":27018},{"IP":"208.78.164.12","Port":27019},{"IP":"208.78.164.9","Port":27019},{"IP":"208.78.164.11","Port":27017},{"IP":"208.78.164.9","Port":27017},{"IP":"208.78.164.13","Port":27017},{"IP":"208.78.164.12","Port":27017},{"IP":"208.78.164.10","Port":27017},{"IP":"208.78.164.10","Port":27018}]} \ No newline at end of file diff --git a/xmpp/xmpp.go b/xmpp/xmpp.go index 24f23d8..2fd9416 100644 --- a/xmpp/xmpp.go +++ b/xmpp/xmpp.go @@ -43,8 +43,6 @@ var ( ChanAction = make(chan string) CurrentStatus = Status_offline - - Version = "" ) func Run() { @@ -54,8 +52,6 @@ func Run() { stream = must(xmpp.NewStream(Addr, &xmpp.StreamConfig{LogStanzas: true})).(*xmpp.Stream) comp = must(xmpp.NewComponentXMPP(stream, jid, Secret)).(*xmpp.XMPP) - // SendPresence(Status_online, Type_available) - mainXMPP() } @@ -88,7 +84,7 @@ func mainXMPP() { } // Send deconnexion - SendPresence(Status_offline, Type_unavailable) + SendPresence(Status_offline, Type_unavailable, "") } func must(v interface{}, err error) interface{} { @@ -99,11 +95,11 @@ func must(v interface{}, err error) interface{} { } func Disconnect() { - SendPresence(Status_offline, Type_unavailable) + SendPresence(Status_offline, Type_unavailable, "") } -func SendPresence(status, tpye string) { - comp.Out <- xmpp.Presence{To: PreferedJID, From: jid.Domain, Show: status, Type: tpye, Status: "go-xmpp4steam v" + Version} +func SendPresence(status, tpye, message string) { + comp.Out <- xmpp.Presence{To: PreferedJID, From: jid.Domain, Show: status, Type: tpye, Status: message} } func SendPresenceFrom(status, tpye, from, message string) {