diff --git a/database/database.go b/database/database.go index 2265992..b75e50d 100644 --- a/database/database.go +++ b/database/database.go @@ -13,6 +13,7 @@ const ( insertDatabaseStmt = "insert into users (jid, steamLogin, steamPwd) values(?, ?, ?)" deleteDatabaseStmt = "delete from users where jid = ?" selectDatabaseStmt = "select jid, steamLogin, steamPwd from users where jid = ?" + updateDatabaseStmt = "update users set steamLogin=?, steamPwd=? where jid=?" LogInfo = "\t[SQLITE INFO]\t" LogError = "\t[SQLITE ERROR]\t" @@ -63,6 +64,23 @@ func (newLine *DatabaseLine) AddLine() bool { return true } +func (newLine *DatabaseLine) UpdateLine() bool { + log.Printf("%sUpdate line %s", LogInfo, newLine.Jid) + stmt, err := db.Prepare(updateDatabaseStmt) + if err != nil { + log.Printf("%sError on update ", LogError, err) + return false + } + defer stmt.Close() + _, err = stmt.Exec(newLine.SteamLogin, newLine.SteamPwd, newLine.Jid) + if err != nil { + log.Printf("%sError on updating SQL statement", LogError, err) + return false + } + + return true +} + func RemoveLine(jid string) bool { // FIXME not working log.Printf("%sRemove line %s", LogInfo, jid) @@ -105,6 +123,7 @@ func GetLine(jid string) *DatabaseLine { err = stmt.QueryRow(jid).Scan(&ret.Jid, &ret.SteamLogin, &ret.SteamPwd) if err != nil { log.Printf("%sError on select scan", LogError, err) + return nil } return ret diff --git a/servers.addr b/servers.addr index b35277d..0446750 100644 --- a/servers.addr +++ b/servers.addr @@ -1 +1 @@ -{"Addresses":[{"IP":"146.66.152.11","Port":27019},{"IP":"146.66.152.11","Port":27017},{"IP":"146.66.152.10","Port":27019},{"IP":"162.254.197.42","Port":27017},{"IP":"146.66.152.10","Port":27020},{"IP":"162.254.197.42","Port":27019},{"IP":"146.66.152.10","Port":27018},{"IP":"146.66.152.10","Port":27017},{"IP":"162.254.197.41","Port":27021},{"IP":"162.254.197.41","Port":27017},{"IP":"162.254.197.40","Port":27019},{"IP":"162.254.197.40","Port":27020},{"IP":"162.254.197.40","Port":27021},{"IP":"146.66.152.11","Port":27020},{"IP":"162.254.197.40","Port":27018},{"IP":"162.254.197.41","Port":27020},{"IP":"162.254.197.40","Port":27017},{"IP":"162.254.197.41","Port":27018},{"IP":"162.254.197.42","Port":27020},{"IP":"146.66.152.11","Port":27018},{"IP":"162.254.197.42","Port":27021},{"IP":"162.254.197.41","Port":27019},{"IP":"162.254.197.42","Port":27018},{"IP":"162.254.196.43","Port":27017},{"IP":"162.254.196.40","Port":27018},{"IP":"162.254.196.43","Port":27018},{"IP":"162.254.196.42","Port":27020},{"IP":"162.254.196.41","Port":27020},{"IP":"162.254.196.43","Port":27019},{"IP":"162.254.196.41","Port":27021},{"IP":"162.254.196.42","Port":27018},{"IP":"162.254.196.40","Port":27020},{"IP":"162.254.196.41","Port":27017},{"IP":"162.254.196.41","Port":27018},{"IP":"162.254.196.40","Port":27017},{"IP":"162.254.196.41","Port":27019},{"IP":"162.254.196.42","Port":27021},{"IP":"162.254.196.40","Port":27021},{"IP":"162.254.196.43","Port":27021},{"IP":"162.254.196.42","Port":27017},{"IP":"162.254.196.40","Port":27019},{"IP":"162.254.196.42","Port":27019},{"IP":"162.254.196.43","Port":27020},{"IP":"146.66.155.8","Port":27017},{"IP":"146.66.155.8","Port":27019},{"IP":"185.25.182.10","Port":27020},{"IP":"146.66.155.8","Port":27020},{"IP":"185.25.182.10","Port":27017},{"IP":"185.25.180.15","Port":27019},{"IP":"185.25.180.15","Port":27018},{"IP":"155.133.242.8","Port":27019},{"IP":"155.133.242.8","Port":27020},{"IP":"185.25.180.15","Port":27020},{"IP":"155.133.242.9","Port":27019},{"IP":"155.133.242.8","Port":27018},{"IP":"146.66.155.8","Port":27018},{"IP":"185.25.182.10","Port":27019},{"IP":"185.25.180.14","Port":27018},{"IP":"155.133.242.9","Port":27020},{"IP":"185.25.180.14","Port":27020},{"IP":"185.25.180.15","Port":27017},{"IP":"185.25.180.14","Port":27017},{"IP":"185.25.180.14","Port":27019},{"IP":"155.133.242.8","Port":27017},{"IP":"155.133.242.9","Port":27017},{"IP":"185.25.182.10","Port":27018},{"IP":"155.133.242.9","Port":27018},{"IP":"208.78.164.10","Port":27019},{"IP":"208.78.164.14","Port":27017},{"IP":"208.78.164.11","Port":27018},{"IP":"208.78.164.10","Port":27018},{"IP":"208.78.164.11","Port":27019},{"IP":"208.78.164.12","Port":27019},{"IP":"208.78.164.13","Port":27019},{"IP":"208.78.164.10","Port":27017},{"IP":"208.78.164.9","Port":27017},{"IP":"208.78.164.14","Port":27019},{"IP":"208.78.164.11","Port":27017},{"IP":"208.78.164.9","Port":27018},{"IP":"208.78.164.9","Port":27019}]} \ No newline at end of file +{"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 diff --git a/xmpp/commands.go b/xmpp/commands.go index 30c5a81..2fefef4 100644 --- a/xmpp/commands.go +++ b/xmpp/commands.go @@ -124,8 +124,17 @@ func execCommandAdHoc(iq *xmpp.Iq) { dbUser.SteamPwd = steamPwd // TODO update - if dbUser.AddLine() { - AddNewUser(dbUser.Jid, dbUser.SteamLogin, dbUser.SteamPwd) + isUserRegistred := database.GetLine(dbUser.Jid) != nil + var isSqlSuccess bool + if isUserRegistred { + isSqlSuccess = dbUser.UpdateLine() + } else { + isSqlSuccess = dbUser.AddLine() + } + if isSqlSuccess { + if !isUserRegistred { + AddNewUser(dbUser.Jid, dbUser.SteamLogin, dbUser.SteamPwd) + } note.Value = "Command succeded !" } else { note.Value = "Error append while executing command"