forked from chteufleur/go-xmpp4steam
Fix disconection presence bug
This commit is contained in:
parent
d66c78055a
commit
c88585fc5a
18
main.go
18
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() {
|
||||
|
|
|
|||
|
|
@ -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}]}
|
||||
12
xmpp/xmpp.go
12
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) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue