diff --git a/src/MySQLBackend.cpp b/src/MySQLBackend.cpp index 590305cbb939ed03a048bc0440dafbb78a5d2ce2..da20d8922cf79e6316531cf8f82cbb518a1ae964 100644 --- a/src/MySQLBackend.cpp +++ b/src/MySQLBackend.cpp @@ -301,6 +301,7 @@ void MySQLBackend::disconnect() { delete m_getBuddySetting; delete m_setUserOnline; delete m_getOnlineUsers; + delete m_getUsers; mysql_close(&m_conn); } @@ -348,6 +349,7 @@ bool MySQLBackend::connect() { m_setUserOnline = new Statement(&m_conn, "bi", "UPDATE " + m_prefix + "users SET online=?, last_login=NOW() WHERE id=?"); m_getOnlineUsers = new Statement(&m_conn, "|s", "SELECT jid FROM " + m_prefix + "users WHERE online=1"); + m_getUsers = new Statement(&m_conn, "|s", "SELECT jid FROM " + m_prefix + "users"); return true; } @@ -482,6 +484,20 @@ bool MySQLBackend::getOnlineUsers(std::vector &users) { return true; } +bool MySQLBackend::getUsers(std::vector &users) { + EXEC(m_getUsers, getUsers(users)); + if (!exec_ok) + return false; + + std::string jid; + while (m_getUsers->fetch() == 0) { + *m_getUsers >> jid; + users.push_back(jid); + } + + return true; +} + long MySQLBackend::addBuddy(long userId, const BuddyInfo &buddyInfo) { // "INSERT INTO " + m_prefix + "buddies (user_id, uin, subscription, groups, nickname, flags) VALUES (?, ?, ?, ?, ?, ?)" std::string groups = StorageBackend::serializeGroups(buddyInfo.groups);