From 3ff7f9249074ffb9eba4cdf347185007574675fe Mon Sep 17 00:00:00 2001 From: HanzZ Date: Sat, 22 Sep 2012 13:40:28 +0200 Subject: [PATCH] Send status code 332 when spectrum goes down --- backends/twitter/userdb.cpp | 80 ------------------------------- backends/twitter/userdb.h | 48 ------------------- src/conversation.cpp | 4 ++ src/tests/conversationmanager.cpp | 1 + 4 files changed, 5 insertions(+), 128 deletions(-) delete mode 100644 backends/twitter/userdb.cpp delete mode 100644 backends/twitter/userdb.h diff --git a/backends/twitter/userdb.cpp b/backends/twitter/userdb.cpp deleted file mode 100644 index 12719019..00000000 --- a/backends/twitter/userdb.cpp +++ /dev/null @@ -1,80 +0,0 @@ -#include "userdb.h" - -#if 0 - -DEFINE_LOGGER(logger, "Twitter Backend Database"); - -UserDB::UserDB(std::string database): errMsg(0), rc(0), dbOpen(false) -{ - rc = sqlite3_open(database.c_str(), &db); - if( rc ) { - LOG4CXX_ERROR(logger, "Failed to open database" << database); - sqlite3_close(db); - exit(0); - } - - LOG4CXX_INFO(logger, "Checking if table users is present") - if(exe(std::string("select * from users limit 1;")) != SQLITE_OK) { - exe("create table users (user text primarykey, key text, secret text);"); - LOG4CXX_INFO(logger, "Created table users in the database"); - } - dbOpen = true; -} - -int UserDB::exe(std::string s_exe) -{ - data.clear(); - - //LOG4CXX_INFO(logger, "Executing: " << s_exe) - rc = sqlite3_get_table(db, s_exe.c_str(), &result, &nRow, &nCol, &errMsg); - if( rc == SQLITE_OK ) { - int col = nCol; //Skip past the headers - for(int i = 0; i < nRow; ++i) { - std::vector row; - for(int j = 0 ; j < nCol ; j++) row.push_back(result[col++]); - data.push_back(row); - } - } - sqlite3_free_table(result); - return rc; -} - -void UserDB::insert(UserData info) -{ - std::string q = "insert into users (user,key,secret) values ('" + info.user + "','" + info.accessTokenKey + "','" + info.accessTokenSecret + "');"; - if(exe(q) != SQLITE_OK) { - LOG4CXX_ERROR(logger, "Failed to insert into database!"); - exit(0); - } -} - -void UserDB::fetch(std::string user, std::vector &row) -{ - std::string q = "select key,secret from users where user='" + user + "'"; - if(exe(q) != SQLITE_OK) { - LOG4CXX_ERROR(logger, "Failed to fetch data from database!"); - exit(0); - } - row = data[0]; -} - -std::set UserDB::getRegisteredUsers() -{ - std::string q = "select user from users"; - if(exe(q) != SQLITE_OK) { - LOG4CXX_ERROR(logger, "Failed to registered users from database!"); - exit(0); - } - - std::set users; - for(int i=0 ; i -#include -#include -#include -#include "transport/logging.h" - -struct UserData -{ - std::string user; - std::string accessTokenKey; - std::string accessTokenSecret; - UserData(){} - UserData(std::string _user, std::string key, std::string secret) { - user = _user; - accessTokenKey = key; - accessTokenSecret = secret; - } -}; - -class UserDB { - private: - sqlite3 *db; - char *errMsg; - char **result; - int rc; - int nRow,nCol; - bool dbOpen; - std::vector< std::vector > data; - - public: - - UserDB (std::string database); - int exe(std::string s_exe); - void insert(UserData info); - void fetch(std::string user, std::vector &row); - std::set getRegisteredUsers(); - ~UserDB(); -}; - -#endif - - -#endif \ No newline at end of file diff --git a/src/conversation.cpp b/src/conversation.cpp index 22799776..1578d40d 100644 --- a/src/conversation.cpp +++ b/src/conversation.cpp @@ -55,6 +55,10 @@ void Conversation::destroyRoom() { Swift::MUCUserPayload *p = new Swift::MUCUserPayload (); p->addItem(item); + Swift::MUCUserPayload::StatusCode c; + c.code = 332; + p->addStatusCode(c); + presence->addPayload(boost::shared_ptr(p)); m_conversationManager->getComponent()->getStanzaChannel()->sendPresence(presence); } diff --git a/src/tests/conversationmanager.cpp b/src/tests/conversationmanager.cpp index 5d517f7c..6fd5ad44 100644 --- a/src/tests/conversationmanager.cpp +++ b/src/tests/conversationmanager.cpp @@ -293,6 +293,7 @@ class ConversationManagerTest : public CPPUNIT_NS :: TestFixture, public BasicTe CPPUNIT_ASSERT_EQUAL(Swift::StatusShow::None, dynamic_cast(getStanza(received[0]))->getShow()); CPPUNIT_ASSERT_EQUAL(std::string("user@localhost/resource"), dynamic_cast(getStanza(received[0]))->getTo().toString()); CPPUNIT_ASSERT_EQUAL(std::string("#room@localhost/nickname"), dynamic_cast(getStanza(received[0]))->getFrom().toString()); + CPPUNIT_ASSERT_EQUAL(332, getStanza(received[0])->getPayload()->getStatusCodes()[0].code); } };