From 9103fe6ecd41cf61eef362a0786f2d70def322cd Mon Sep 17 00:00:00 2001 From: Chteufleur Date: Sat, 16 Apr 2016 11:39:36 +0200 Subject: [PATCH] Fix received auth code Fix XMPP comp out when user registrered Send offline presence when program exit --- gateway/gateway.go | 3 +-- gateway/steam.go | 11 +++-------- gateway/xmpp.go | 1 + main.go | 2 +- servers.addr | 2 +- xmpp/commands.go | 5 ++--- xmpp/xmpp.go | 6 +++++- 7 files changed, 14 insertions(+), 16 deletions(-) diff --git a/gateway/gateway.go b/gateway/gateway.go index 44393a9..9047ac6 100644 --- a/gateway/gateway.go +++ b/gateway/gateway.go @@ -16,7 +16,6 @@ type GatewayInfo struct { // Steam SteamLogin string SteamPassword string - SteamAuthCode string SteamLoginInfo *steam.LogOnDetails SteamClient *steam.Client SentryFile string @@ -33,5 +32,5 @@ func (g *GatewayInfo) Run() { } func (g *GatewayInfo) SetSteamAuthCode(authCode string) { - g.SteamAuthCode = authCode + g.SteamLoginInfo.AuthCode = authCode } diff --git a/gateway/steam.go b/gateway/steam.go index 26e6227..fbe8b88 100644 --- a/gateway/steam.go +++ b/gateway/steam.go @@ -9,7 +9,7 @@ import ( "io/ioutil" "log" "strconv" - // "time" + "time" ) const ( @@ -34,7 +34,7 @@ func (g *GatewayInfo) SteamRun() { g.setLoginInfos() g.SteamClient = steam.NewClient() g.SteamConnecting = false - // g.SteamClient.ConnectionTimeout = 10 * time.Second + g.SteamClient.ConnectionTimeout = 10 * time.Second g.mainSteam() @@ -131,13 +131,8 @@ func (g *GatewayInfo) setLoginInfos() { if err == nil { g.SteamLoginInfo.SentryFileHash = sentryHash - log.Printf("%sAuthentification by SentryFileHash", LogSteamDebug) - } else if g.SteamAuthCode != "" { - g.SteamLoginInfo.AuthCode = g.SteamAuthCode - log.Printf("%sAuthentification by AuthCode (%s, %s, %s)", LogSteamDebug, g.SteamLoginInfo.Username, g.SteamLoginInfo.Password, g.SteamAuthCode) - } else { - log.Printf("%sFirst authentification (%s, %s)", LogSteamDebug, g.SteamLoginInfo.Username, g.SteamLoginInfo.Password) } + log.Printf("%sAuthentification of (%s, %s)", LogSteamDebug, g.XMPP_JID_Client, g.SteamLoginInfo.Username) } func (g *GatewayInfo) IsSteamConnected() bool { diff --git a/gateway/xmpp.go b/gateway/xmpp.go index a56e9ea..20b5c6a 100644 --- a/gateway/xmpp.go +++ b/gateway/xmpp.go @@ -132,6 +132,7 @@ func (g *GatewayInfo) SendXmppPresence(status, tpye, from, message, nick string) p.Nick = nick } if from == "" { + // TODO add an option to allow message comming directly from the gateway p.From = XmppJidComponent } else { p.From = from diff --git a/main.go b/main.go index 84c6ba3..23b4f77 100644 --- a/main.go +++ b/main.go @@ -15,7 +15,7 @@ import ( ) const ( - Version = "go-xmpp4steam v0.3.1" + Version = "go-xmpp4steam v0.3.2" configurationFilePath = "xmpp4steam.cfg" ) diff --git a/servers.addr b/servers.addr index 0446750..3b57b64 100644 --- a/servers.addr +++ b/servers.addr @@ -1 +1 @@ -{"Addresses":[{"IP":"146.66.152.11","Port":27017},{"IP":"146.66.152.11","Port":27018},{"IP":"146.66.152.11","Port":27019},{"IP":"146.66.152.10","Port":27020},{"IP":"146.66.152.11","Port":27020},{"IP":"162.254.197.41","Port":27018},{"IP":"146.66.152.10","Port":27019},{"IP":"146.66.152.10","Port":27017},{"IP":"162.254.197.42","Port":27021},{"IP":"162.254.197.40","Port":27019},{"IP":"146.66.152.10","Port":27018},{"IP":"162.254.197.41","Port":27021},{"IP":"162.254.197.40","Port":27018},{"IP":"162.254.197.40","Port":27021},{"IP":"162.254.197.42","Port":27018},{"IP":"162.254.197.41","Port":27017},{"IP":"162.254.197.42","Port":27017},{"IP":"162.254.197.41","Port":27019},{"IP":"162.254.197.42","Port":27019},{"IP":"162.254.197.40","Port":27020},{"IP":"162.254.197.41","Port":27020},{"IP":"162.254.197.40","Port":27017},{"IP":"162.254.197.42","Port":27020},{"IP":"162.254.196.40","Port":27021},{"IP":"162.254.196.42","Port":27017},{"IP":"162.254.196.41","Port":27021},{"IP":"162.254.196.43","Port":27021},{"IP":"162.254.196.41","Port":27017},{"IP":"162.254.196.42","Port":27019},{"IP":"162.254.196.41","Port":27019},{"IP":"162.254.196.40","Port":27018},{"IP":"162.254.196.43","Port":27019},{"IP":"162.254.196.43","Port":27017},{"IP":"162.254.196.40","Port":27019},{"IP":"162.254.196.43","Port":27018},{"IP":"162.254.196.42","Port":27018},{"IP":"162.254.196.43","Port":27020},{"IP":"162.254.196.41","Port":27020},{"IP":"162.254.196.42","Port":27021},{"IP":"162.254.196.40","Port":27020},{"IP":"162.254.196.40","Port":27017},{"IP":"162.254.196.41","Port":27018},{"IP":"162.254.196.42","Port":27020},{"IP":"146.66.155.8","Port":27018},{"IP":"146.66.155.8","Port":27017},{"IP":"146.66.155.8","Port":27020},{"IP":"185.25.182.10","Port":27018},{"IP":"185.25.182.10","Port":27019},{"IP":"185.25.182.10","Port":27017},{"IP":"185.25.182.10","Port":27020},{"IP":"155.133.242.8","Port":27017},{"IP":"185.25.180.15","Port":27020},{"IP":"155.133.242.8","Port":27018},{"IP":"155.133.242.8","Port":27020},{"IP":"185.25.180.14","Port":27019},{"IP":"185.25.180.14","Port":27017},{"IP":"185.25.180.14","Port":27018},{"IP":"185.25.180.15","Port":27019},{"IP":"155.133.242.9","Port":27020},{"IP":"185.25.180.14","Port":27020},{"IP":"185.25.180.15","Port":27018},{"IP":"155.133.242.9","Port":27017},{"IP":"155.133.242.9","Port":27019},{"IP":"146.66.155.8","Port":27019},{"IP":"155.133.242.9","Port":27018},{"IP":"155.133.242.8","Port":27019},{"IP":"185.25.180.15","Port":27017},{"IP":"208.78.164.11","Port":27019},{"IP":"208.78.164.14","Port":27018},{"IP":"208.78.164.9","Port":27017},{"IP":"208.78.164.13","Port":27019},{"IP":"208.78.164.13","Port":27018},{"IP":"208.78.164.10","Port":27019},{"IP":"208.78.164.10","Port":27018},{"IP":"208.78.164.12","Port":27019},{"IP":"208.78.164.9","Port":27019},{"IP":"208.78.164.10","Port":27017},{"IP":"208.78.164.14","Port":27019},{"IP":"208.78.164.11","Port":27018},{"IP":"208.78.164.12","Port":27018}]} \ No newline at end of file +{"Addresses":[{"IP":"162.254.197.42","Port":27020},{"IP":"146.66.152.10","Port":27020},{"IP":"146.66.152.11","Port":27020},{"IP":"162.254.197.40","Port":27019},{"IP":"162.254.197.42","Port":27019},{"IP":"146.66.152.10","Port":27018},{"IP":"162.254.197.40","Port":27021},{"IP":"162.254.197.42","Port":27017},{"IP":"146.66.152.10","Port":27019},{"IP":"146.66.152.10","Port":27017},{"IP":"146.66.152.11","Port":27019},{"IP":"162.254.197.41","Port":27018},{"IP":"162.254.197.40","Port":27020},{"IP":"162.254.197.41","Port":27019},{"IP":"162.254.197.40","Port":27017},{"IP":"162.254.197.41","Port":27017},{"IP":"146.66.152.11","Port":27018},{"IP":"146.66.152.11","Port":27017},{"IP":"162.254.197.40","Port":27018},{"IP":"162.254.197.42","Port":27021},{"IP":"162.254.197.42","Port":27018},{"IP":"162.254.197.41","Port":27020},{"IP":"162.254.197.41","Port":27021},{"IP":"162.254.196.41","Port":27019},{"IP":"162.254.196.41","Port":27021},{"IP":"162.254.196.41","Port":27017},{"IP":"162.254.196.40","Port":27017},{"IP":"162.254.196.43","Port":27018},{"IP":"162.254.196.43","Port":27017},{"IP":"162.254.196.42","Port":27018},{"IP":"162.254.196.42","Port":27021},{"IP":"162.254.196.42","Port":27020},{"IP":"162.254.196.43","Port":27020},{"IP":"162.254.196.41","Port":27020},{"IP":"162.254.196.41","Port":27018},{"IP":"162.254.196.43","Port":27021},{"IP":"162.254.196.42","Port":27019},{"IP":"162.254.196.43","Port":27019},{"IP":"162.254.196.42","Port":27017},{"IP":"162.254.196.40","Port":27018},{"IP":"162.254.196.40","Port":27019},{"IP":"146.66.155.8","Port":27018},{"IP":"185.25.182.10","Port":27018},{"IP":"146.66.155.8","Port":27019},{"IP":"185.25.182.10","Port":27017},{"IP":"146.66.155.8","Port":27017},{"IP":"185.25.182.10","Port":27020},{"IP":"185.25.182.10","Port":27019},{"IP":"146.66.155.8","Port":27020},{"IP":"155.133.242.9","Port":27020},{"IP":"185.25.180.14","Port":27019},{"IP":"155.133.242.8","Port":27020},{"IP":"155.133.242.9","Port":27018},{"IP":"185.25.180.15","Port":27018},{"IP":"185.25.180.14","Port":27017},{"IP":"185.25.180.15","Port":27017},{"IP":"185.25.180.14","Port":27020},{"IP":"185.25.180.15","Port":27019},{"IP":"162.254.196.40","Port":27021},{"IP":"185.25.180.15","Port":27020},{"IP":"185.25.180.14","Port":27018},{"IP":"155.133.242.9","Port":27017},{"IP":"155.133.242.9","Port":27019},{"IP":"162.254.196.40","Port":27020},{"IP":"155.133.242.8","Port":27017},{"IP":"155.133.242.8","Port":27019},{"IP":"155.133.242.8","Port":27018},{"IP":"208.78.164.10","Port":27018},{"IP":"208.78.164.11","Port":27019},{"IP":"208.78.164.14","Port":27018},{"IP":"208.78.164.11","Port":27018},{"IP":"208.78.164.14","Port":27017},{"IP":"208.78.164.12","Port":27018},{"IP":"208.78.164.13","Port":27019},{"IP":"208.78.164.13","Port":27017},{"IP":"208.78.164.13","Port":27018},{"IP":"208.78.164.10","Port":27017},{"IP":"208.78.164.14","Port":27019},{"IP":"208.78.164.11","Port":27017},{"IP":"208.78.164.10","Port":27019}]} \ No newline at end of file diff --git a/xmpp/commands.go b/xmpp/commands.go index f57f2a1..f946b25 100644 --- a/xmpp/commands.go +++ b/xmpp/commands.go @@ -53,6 +53,7 @@ func execCommandAdHoc(iq *xmpp.Iq) { } else if adHoc.Node == CommandGetIdentifiants { // Command Auth Code cmdXForm := &xmpp.AdHocXForm{Type: xmpp.TypeAdHocForm, Title: "Steam Account Info", Instructions: "Please provide your Steam login and password."} + // TODO Warn that the given info is stored in database in clear field := &xmpp.AdHocField{Var: "login", Label: "Steam Login", Type: xmpp.TypeAdHocFieldTextSingle} cmdXForm.Fields = append(cmdXForm.Fields, *field) @@ -131,9 +132,7 @@ func execCommandAdHoc(iq *xmpp.Iq) { isSqlSuccess = dbUser.AddLine() } if isSqlSuccess { - if !isUserRegistred { - AddNewUser(dbUser.Jid, dbUser.SteamLogin, dbUser.SteamPwd) - } + AddNewUser(dbUser.Jid, dbUser.SteamLogin, dbUser.SteamPwd) note.Value = "Command succeded !" } else { note.Value = "Error append while executing command" diff --git a/xmpp/xmpp.go b/xmpp/xmpp.go index 52aa676..143f065 100644 --- a/xmpp/xmpp.go +++ b/xmpp/xmpp.go @@ -102,7 +102,9 @@ func must(v interface{}, err error) interface{} { func Disconnect() { log.Printf("%sXMPP disconnect", LogInfo) - SendPresence(gateway.Status_offline, gateway.Type_unavailable, "", "", "", "") + for _, u := range MapGatewayInfo { + u.SteamDisconnect() + } } func SendPresence(status, tpye, from, to, message, nick string) { @@ -154,6 +156,8 @@ func AddNewUser(jid, steamLogin, steamPwd string) { g.SentryFile = gateway.SentryDirectory + jid g.FriendSteamId = make(map[string]struct{}) + g.XMPP_Out = comp.Out + MapGatewayInfo[jid] = g go g.Run() }