1
0
Fork 0

Fix disconection presence bug

This commit is contained in:
Chteufleur 2015-10-22 21:17:59 +02:00
parent d66c78055a
commit c88585fc5a
3 changed files with 16 additions and 16 deletions

18
main.go
View File

@ -15,6 +15,7 @@ import (
) )
const ( const (
Version = "go-xmpp4steam v0.1.2"
configurationFilePath = "xmpp4steam.cfg" configurationFilePath = "xmpp4steam.cfg"
) )
@ -24,8 +25,6 @@ var (
) )
func init() { func init() {
xmpp.Version = "0.1.1"
err := cfg.Load(configurationFilePath, mapConfig) err := cfg.Load(configurationFilePath, mapConfig)
if err != nil { if err != nil {
log.Fatal("Failed to load configuration file.", err) log.Fatal("Failed to load configuration file.", err)
@ -124,16 +123,14 @@ func gatewaySteamXmppAction() {
action := <-steam.ChanAction action := <-steam.ChanAction
switch action { switch action {
case steam.ActionConnected: case steam.ActionConnected:
xmpp.SendPresence(xmpp.CurrentStatus, xmpp.Type_available) xmpp.SendPresence(xmpp.CurrentStatus, xmpp.Type_available, Version)
case steam.ActionDisconnected: case steam.ActionDisconnected:
xmpp.Disconnect() xmpp.Disconnect()
for sid, _ := range SetSteamId { disconnectAllSteamUser()
xmpp.SendPresenceFrom(xmpp.Status_offline, xmpp.Type_unavailable, sid+"@"+xmpp.JidStr, "")
delete(SetSteamId, sid)
}
case steam.ActionFatalError: case steam.ActionFatalError:
disconnectAllSteamUser()
time.Sleep(2 * time.Second) time.Sleep(2 * time.Second)
go steam.Run() 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 // /Steam -> XMPP gateways
func inputStop() { func inputStop() {

View File

@ -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}]} {"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}]}

View File

@ -43,8 +43,6 @@ var (
ChanAction = make(chan string) ChanAction = make(chan string)
CurrentStatus = Status_offline CurrentStatus = Status_offline
Version = ""
) )
func Run() { func Run() {
@ -54,8 +52,6 @@ func Run() {
stream = must(xmpp.NewStream(Addr, &xmpp.StreamConfig{LogStanzas: true})).(*xmpp.Stream) stream = must(xmpp.NewStream(Addr, &xmpp.StreamConfig{LogStanzas: true})).(*xmpp.Stream)
comp = must(xmpp.NewComponentXMPP(stream, jid, Secret)).(*xmpp.XMPP) comp = must(xmpp.NewComponentXMPP(stream, jid, Secret)).(*xmpp.XMPP)
// SendPresence(Status_online, Type_available)
mainXMPP() mainXMPP()
} }
@ -88,7 +84,7 @@ func mainXMPP() {
} }
// Send deconnexion // Send deconnexion
SendPresence(Status_offline, Type_unavailable) SendPresence(Status_offline, Type_unavailable, "")
} }
func must(v interface{}, err error) interface{} { func must(v interface{}, err error) interface{} {
@ -99,11 +95,11 @@ func must(v interface{}, err error) interface{} {
} }
func Disconnect() { func Disconnect() {
SendPresence(Status_offline, Type_unavailable) SendPresence(Status_offline, Type_unavailable, "")
} }
func SendPresence(status, tpye string) { func SendPresence(status, tpye, message string) {
comp.Out <- xmpp.Presence{To: PreferedJID, From: jid.Domain, Show: status, Type: tpye, Status: "go-xmpp4steam v" + Version} comp.Out <- xmpp.Presence{To: PreferedJID, From: jid.Domain, Show: status, Type: tpye, Status: message}
} }
func SendPresenceFrom(status, tpye, from, message string) { func SendPresenceFrom(status, tpye, from, message string) {