1
0
Fork 0

Add debug command to allow/diallow debug messages

This commit is contained in:
Chteufleur 2016-06-19 14:14:19 +02:00
parent 659fcba63d
commit ec8ff5ee92
7 changed files with 63 additions and 18 deletions

View File

@ -9,11 +9,11 @@ import (
const ( const (
databaseFile = "go_xmpp4steam.db" databaseFile = "go_xmpp4steam.db"
createDatabaseStmt = "create table if not exists users (jid text not null primary key, steamLogin text, steamPwd text);" createDatabaseStmt = "create table if not exists users (jid text not null primary key, steamLogin text, steamPwd text, debug int);"
insertDatabaseStmt = "insert into users (jid, steamLogin, steamPwd) values(?, ?, ?)" insertDatabaseStmt = "insert into users (jid, steamLogin, steamPwd, debug) values(?, ?, ?, ?)"
deleteDatabaseStmt = "delete from users where jid=?" deleteDatabaseStmt = "delete from users where jid=?"
selectDatabaseStmt = "select jid, steamLogin, steamPwd from users where jid=?" selectDatabaseStmt = "select jid, steamLogin, steamPwd, debug from users where jid=?"
updateDatabaseStmt = "update users set steamLogin=?, steamPwd=? where jid=?" updateDatabaseStmt = "update users set steamLogin=?, steamPwd=?, debug=? where jid=?"
LogInfo = "\t[SQLITE INFO]\t" LogInfo = "\t[SQLITE INFO]\t"
LogError = "\t[SQLITE ERROR]\t" LogError = "\t[SQLITE ERROR]\t"
@ -24,6 +24,7 @@ type DatabaseLine struct {
Jid string Jid string
SteamLogin string SteamLogin string
SteamPwd string SteamPwd string
Debug bool
} }
var ( var (
@ -61,7 +62,11 @@ func (newLine *DatabaseLine) AddLine() bool {
return false return false
} }
defer stmt.Close() defer stmt.Close()
_, err = stmt.Exec(newLine.Jid, newLine.SteamLogin, newLine.SteamPwd) debug := 0
if newLine.Debug {
debug = 1
}
_, err = stmt.Exec(newLine.Jid, newLine.SteamLogin, newLine.SteamPwd, debug)
if err != nil { if err != nil {
log.Printf("%sError on creating SQL statement", LogError, err) log.Printf("%sError on creating SQL statement", LogError, err)
return false return false
@ -78,7 +83,11 @@ func (newLine *DatabaseLine) UpdateLine() bool {
return false return false
} }
defer stmt.Close() defer stmt.Close()
_, err = stmt.Exec(newLine.SteamLogin, newLine.SteamPwd, newLine.Jid) debug := 0
if newLine.Debug {
debug = 1
}
_, err = stmt.Exec(newLine.SteamLogin, newLine.SteamPwd, debug, newLine.Jid)
if err != nil { if err != nil {
log.Printf("%sError on updating SQL statement", LogError, err) log.Printf("%sError on updating SQL statement", LogError, err)
return false return false
@ -141,12 +150,17 @@ func getLine(jid string) *DatabaseLine {
return nil return nil
} }
defer stmt.Close() defer stmt.Close()
debug := 0
err = stmt.QueryRow(jid).Scan(&ret.Jid, &ret.SteamLogin, &ret.SteamPwd) err = stmt.QueryRow(jid).Scan(&ret.Jid, &ret.SteamLogin, &ret.SteamPwd, &debug)
if err != nil { if err != nil {
log.Printf("%sError on select scan", LogError, err) log.Printf("%sError on select scan", LogError, err)
return nil return nil
} }
if debug == 1 {
ret.Debug = true
} else {
ret.Debug = false
}
return ret return ret
} }

View File

@ -24,6 +24,7 @@ type GatewayInfo struct {
XMPP_JID_Client string XMPP_JID_Client string
XMPP_Out chan interface{} XMPP_Out chan interface{}
XMPP_Connected_Client map[string]bool XMPP_Connected_Client map[string]bool
DebugMessage bool
} }
type StatusSteamFriend struct { type StatusSteamFriend struct {

View File

@ -163,12 +163,14 @@ func (g *GatewayInfo) SendXmppPresence(status, tpye, to, from, message, nick str
} }
func (g *GatewayInfo) SendXmppMessage(from, subject, message string) { func (g *GatewayInfo) SendXmppMessage(from, subject, message string) {
m := xmpp.Message{To: g.XMPP_JID_Client, From: from, Body: message, Type: "chat"} if from != XmppJidComponent || from == XmppJidComponent && g.DebugMessage {
m := xmpp.Message{To: g.XMPP_JID_Client, From: from, Body: message, Type: "chat"}
if subject != "" { if subject != "" {
m.Subject = subject m.Subject = subject
}
log.Printf("%sSend message %v", LogXmppInfo, m)
g.XMPP_Out <- m
} }
log.Printf("%sSend message %v", LogXmppInfo, m)
g.XMPP_Out <- m
} }

View File

@ -41,7 +41,7 @@ func init() {
func main() { func main() {
allDbUsers := database.GetAllLines() allDbUsers := database.GetAllLines()
for _, dbUser := range allDbUsers { for _, dbUser := range allDbUsers {
xmpp.AddNewUser(dbUser.Jid, dbUser.SteamLogin, dbUser.SteamPwd) xmpp.AddNewUser(dbUser.Jid, dbUser.SteamLogin, dbUser.SteamPwd, dbUser.Debug)
} }
go xmpp.Run() go xmpp.Run()

View File

@ -1 +1 @@
{"Addresses":[{"IP":"146.66.152.11","Port":27020},{"IP":"162.254.197.41","Port":27020},{"IP":"162.254.197.40","Port":27019},{"IP":"162.254.197.41","Port":27017},{"IP":"146.66.152.10","Port":27020},{"IP":"146.66.152.11","Port":27017},{"IP":"146.66.152.11","Port":27019},{"IP":"146.66.152.10","Port":27018},{"IP":"162.254.197.42","Port":27021},{"IP":"162.254.197.42","Port":27020},{"IP":"162.254.197.42","Port":27018},{"IP":"162.254.197.41","Port":27019},{"IP":"162.254.197.40","Port":27020},{"IP":"146.66.152.10","Port":27017},{"IP":"162.254.197.42","Port":27017},{"IP":"162.254.197.41","Port":27021},{"IP":"162.254.197.40","Port":27021},{"IP":"162.254.197.41","Port":27018},{"IP":"146.66.152.11","Port":27018},{"IP":"146.66.152.10","Port":27019},{"IP":"162.254.197.40","Port":27018},{"IP":"162.254.197.40","Port":27017},{"IP":"162.254.197.42","Port":27019},{"IP":"162.254.196.42","Port":27021},{"IP":"162.254.196.42","Port":27019},{"IP":"162.254.196.43","Port":27018},{"IP":"162.254.196.41","Port":27018},{"IP":"162.254.196.43","Port":27020},{"IP":"162.254.196.42","Port":27020},{"IP":"162.254.196.41","Port":27017},{"IP":"162.254.196.42","Port":27018},{"IP":"162.254.196.41","Port":27019},{"IP":"162.254.196.41","Port":27020},{"IP":"162.254.196.42","Port":27017},{"IP":"162.254.196.40","Port":27021},{"IP":"162.254.196.43","Port":27021},{"IP":"162.254.196.40","Port":27020},{"IP":"162.254.196.40","Port":27017},{"IP":"162.254.196.41","Port":27021},{"IP":"162.254.196.40","Port":27018},{"IP":"162.254.196.40","Port":27019},{"IP":"162.254.196.43","Port":27019},{"IP":"162.254.196.43","Port":27017},{"IP":"146.66.155.8","Port":27019},{"IP":"155.133.242.9","Port":27019},{"IP":"185.25.180.14","Port":27020},{"IP":"185.25.182.10","Port":27020},{"IP":"185.25.180.14","Port":27019},{"IP":"146.66.155.8","Port":27020},{"IP":"146.66.155.8","Port":27018},{"IP":"185.25.180.15","Port":27020},{"IP":"155.133.242.9","Port":27018},{"IP":"155.133.242.9","Port":27020},{"IP":"146.66.155.8","Port":27017},{"IP":"185.25.182.10","Port":27017},{"IP":"185.25.182.10","Port":27018},{"IP":"185.25.180.14","Port":27018},{"IP":"185.25.180.14","Port":27017},{"IP":"155.133.242.9","Port":27017},{"IP":"155.133.242.8","Port":27017},{"IP":"185.25.180.15","Port":27018},{"IP":"185.25.182.10","Port":27019},{"IP":"185.25.180.15","Port":27017},{"IP":"155.133.242.8","Port":27019},{"IP":"185.25.180.15","Port":27019},{"IP":"155.133.242.8","Port":27018},{"IP":"155.133.242.8","Port":27020},{"IP":"208.78.164.12","Port":27018},{"IP":"208.78.164.9","Port":27017},{"IP":"208.78.164.9","Port":27019},{"IP":"208.78.164.13","Port":27019},{"IP":"208.78.164.12","Port":27019},{"IP":"208.78.164.10","Port":27018},{"IP":"208.78.164.14","Port":27017},{"IP":"208.78.164.11","Port":27019},{"IP":"208.78.164.13","Port":27018},{"IP":"208.78.164.12","Port":27017},{"IP":"208.78.164.11","Port":27018},{"IP":"208.78.164.10","Port":27017},{"IP":"208.78.164.9","Port":27018}]} {"Addresses":[{"IP":"146.66.152.10","Port":27019},{"IP":"146.66.152.11","Port":27017},{"IP":"146.66.152.10","Port":27017},{"IP":"146.66.152.11","Port":27020},{"IP":"146.66.152.10","Port":27018},{"IP":"146.66.152.10","Port":27020},{"IP":"162.254.197.42","Port":27020},{"IP":"162.254.197.40","Port":27018},{"IP":"162.254.197.42","Port":27021},{"IP":"146.66.152.11","Port":27018},{"IP":"162.254.197.42","Port":27018},{"IP":"162.254.197.41","Port":27018},{"IP":"162.254.197.41","Port":27017},{"IP":"162.254.197.42","Port":27019},{"IP":"162.254.197.40","Port":27019},{"IP":"162.254.197.40","Port":27017},{"IP":"162.254.197.41","Port":27021},{"IP":"162.254.197.40","Port":27020},{"IP":"162.254.197.40","Port":27021},{"IP":"162.254.197.42","Port":27017},{"IP":"146.66.152.11","Port":27019},{"IP":"162.254.197.41","Port":27020},{"IP":"162.254.196.42","Port":27018},{"IP":"162.254.196.41","Port":27017},{"IP":"162.254.196.43","Port":27020},{"IP":"162.254.197.41","Port":27019},{"IP":"162.254.196.42","Port":27017},{"IP":"162.254.196.40","Port":27017},{"IP":"162.254.196.43","Port":27018},{"IP":"162.254.196.42","Port":27019},{"IP":"162.254.196.40","Port":27018},{"IP":"162.254.196.40","Port":27019},{"IP":"162.254.196.41","Port":27019},{"IP":"162.254.196.42","Port":27020},{"IP":"162.254.196.41","Port":27021},{"IP":"162.254.196.40","Port":27020},{"IP":"162.254.196.43","Port":27019},{"IP":"162.254.196.42","Port":27021},{"IP":"162.254.196.41","Port":27018},{"IP":"162.254.196.41","Port":27020},{"IP":"162.254.196.43","Port":27017},{"IP":"162.254.196.40","Port":27021},{"IP":"162.254.196.43","Port":27021},{"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":27018},{"IP":"146.66.155.8","Port":27017},{"IP":"185.25.182.10","Port":27019},{"IP":"146.66.155.8","Port":27020},{"IP":"185.25.180.15","Port":27019},{"IP":"185.25.180.15","Port":27020},{"IP":"185.25.180.15","Port":27018},{"IP":"155.133.242.9","Port":27020},{"IP":"185.25.180.15","Port":27017},{"IP":"155.133.242.8","Port":27018},{"IP":"155.133.242.8","Port":27019},{"IP":"185.25.180.14","Port":27017},{"IP":"185.25.180.14","Port":27019},{"IP":"185.25.180.14","Port":27018},{"IP":"185.25.180.14","Port":27020},{"IP":"185.25.182.10","Port":27020},{"IP":"155.133.242.8","Port":27017},{"IP":"155.133.242.8","Port":27020},{"IP":"155.133.242.9","Port":27018},{"IP":"155.133.242.9","Port":27019},{"IP":"155.133.242.9","Port":27017},{"IP":"208.78.164.9","Port":27018},{"IP":"208.78.164.11","Port":27019},{"IP":"208.78.164.10","Port":27019},{"IP":"208.78.164.10","Port":27018},{"IP":"208.78.164.12","Port":27017},{"IP":"208.78.164.11","Port":27018},{"IP":"208.78.164.9","Port":27019},{"IP":"208.78.164.14","Port":27018},{"IP":"208.78.164.11","Port":27017},{"IP":"208.78.164.13","Port":27019},{"IP":"208.78.164.10","Port":27017},{"IP":"208.78.164.14","Port":27019},{"IP":"208.78.164.12","Port":27019}]}

View File

@ -13,6 +13,7 @@ const (
CommandGetIdentifiants = "steamGetIdentifiants" CommandGetIdentifiants = "steamGetIdentifiants"
CommandDisconnectSteam = "disconnectSteam" CommandDisconnectSteam = "disconnectSteam"
CommandRemoveRegistration = "removeRegistration" CommandRemoveRegistration = "removeRegistration"
CommandToggleDebugMode = "toggleDebugMode"
) )
var ( var (
@ -33,6 +34,8 @@ func execDiscoCommand(iq *xmpp.Iq) {
discoItem.Item = append(discoItem.Item, *discoI) discoItem.Item = append(discoItem.Item, *discoI)
discoI = &xmpp.DiscoItem{JID: jid.Domain, Node: CommandRemoveRegistration, Name: "Remove registration"} discoI = &xmpp.DiscoItem{JID: jid.Domain, Node: CommandRemoveRegistration, Name: "Remove registration"}
discoItem.Item = append(discoItem.Item, *discoI) discoItem.Item = append(discoItem.Item, *discoI)
discoI = &xmpp.DiscoItem{JID: jid.Domain, Node: CommandToggleDebugMode, Name: "Toggle debug mode"}
discoItem.Item = append(discoItem.Item, *discoI)
reply.PayloadEncode(discoItem) reply.PayloadEncode(discoItem)
comp.Out <- reply comp.Out <- reply
@ -96,6 +99,29 @@ func execCommandAdHoc(iq *xmpp.Iq) {
note.Value = "Failed to remove your registration." note.Value = "Failed to remove your registration."
} }
cmd.Note = *note
} else if adHoc.Node == CommandToggleDebugMode {
cmd.Status = xmpp.StatusAdHocCompleted
cmdXForm := &xmpp.AdHocXForm{Type: xmpp.TypeAdHocResult, Title: "Toggle debug mode"}
cmd.XForm = *cmdXForm
note := &xmpp.AdHocNote{Type: xmpp.TypeAdHocNoteInfo}
jidBare := strings.SplitN(iq.From, "/", 2)[0]
dbUser := database.GetLine(jidBare)
dbUser.Debug = !dbUser.Debug
g := MapGatewayInfo[jidBare]
ok := dbUser.UpdateLine()
if ok && g != nil {
g.DebugMessage = dbUser.Debug
if dbUser.Debug {
note.Value = "Debug activated."
} else {
note.Value = "Debug desactivated."
}
} else {
note.Value = "Failed to update your profile. :("
}
cmd.Note = *note cmd.Note = *note
} }
reply.PayloadEncode(cmd) reply.PayloadEncode(cmd)
@ -159,6 +185,7 @@ func execCommandAdHoc(iq *xmpp.Iq) {
dbUser.Jid = jidBare dbUser.Jid = jidBare
dbUser.SteamLogin = steamLogin dbUser.SteamLogin = steamLogin
dbUser.SteamPwd = steamPwd dbUser.SteamPwd = steamPwd
dbUser.Debug = false
isUserRegistred := database.GetLine(dbUser.Jid) != nil isUserRegistred := database.GetLine(dbUser.Jid) != nil
var isSqlSuccess bool var isSqlSuccess bool
@ -168,7 +195,7 @@ func execCommandAdHoc(iq *xmpp.Iq) {
isSqlSuccess = dbUser.AddLine() isSqlSuccess = dbUser.AddLine()
} }
if isSqlSuccess { if isSqlSuccess {
AddNewUser(dbUser.Jid, dbUser.SteamLogin, dbUser.SteamPwd) AddNewUser(dbUser.Jid, dbUser.SteamLogin, dbUser.SteamPwd, dbUser.Debug)
note.Value = "Command succeded !" note.Value = "Command succeded !"
} else { } else {
note.Value = "Error append while executing command" note.Value = "Error append while executing command"

View File

@ -187,7 +187,7 @@ func SendMessage(to, subject, message string) {
comp.Out <- m comp.Out <- m
} }
func AddNewUser(jid, steamLogin, steamPwd string) { func AddNewUser(jid, steamLogin, steamPwd string, debugMessage bool) {
log.Printf("%sAdd user %s to the map", LogInfo, jid) log.Printf("%sAdd user %s to the map", LogInfo, jid)
g := new(gateway.GatewayInfo) g := new(gateway.GatewayInfo)
@ -200,6 +200,7 @@ func AddNewUser(jid, steamLogin, steamPwd string) {
g.XMPP_Out = comp.Out g.XMPP_Out = comp.Out
g.XMPP_Connected_Client = make(map[string]bool) g.XMPP_Connected_Client = make(map[string]bool)
g.DebugMessage = debugMessage
MapGatewayInfo[jid] = g MapGatewayInfo[jid] = g
go g.Run() go g.Run()