From: <da...@us...> - 2009-09-25 17:26:40
|
Revision: 5496 http://kmess.svn.sourceforge.net/kmess/?rev=5496&view=rev Author: dazjorz Date: 2009-09-25 17:26:34 +0000 (Fri, 25 Sep 2009) Log Message: ----------- Moved the MSN_LIST_ constants to NetworkGlobals from contact.h. Moved extractNonce from MsnAlgorithms (private) to Utils (public). Modified Paths: -------------- trunk/kmess/src/contact/contact.cpp trunk/kmess/src/contact/contact.h trunk/kmess/src/dialogs/networkwindow.cpp trunk/kmess/src/network/connections/msnnotificationconnection.cpp trunk/kmess/src/network/connections/msnswitchboardconnection.cpp trunk/kmess/src/network/networkglobals.h trunk/kmess/src/network/soap/addressbookservice.cpp trunk/kmess/src/network/utils/msnalgorithms.cpp trunk/kmess/src/network/utils/msnalgorithms.h trunk/kmess/src/network/utils/utils.cpp trunk/kmess/src/network/utils/utils.h Modified: trunk/kmess/src/contact/contact.cpp =================================================================== --- trunk/kmess/src/contact/contact.cpp 2009-09-25 17:25:59 UTC (rev 5495) +++ trunk/kmess/src/contact/contact.cpp 2009-09-25 17:26:34 UTC (rev 5496) @@ -17,6 +17,8 @@ #include "contact.h" +#include "../network/networkglobals.h" + #include "../contact/msnobject.h" #include "../kmessdebug.h" #include "../account.h" @@ -44,11 +46,11 @@ KMESS_ASSERT( lists != 0 ); #endif - friend_ = (lists & MSN_LIST_FRIEND ); - allowed_ = (lists & MSN_LIST_ALLOWED); - blocked_ = (lists & MSN_LIST_BLOCKED); - reverse_ = (lists & MSN_LIST_REVERSE); - pending_ = (lists & MSN_LIST_PENDING); + friend_ = (lists & KMess::MSN_LIST_FRIEND ); + allowed_ = (lists & KMess::MSN_LIST_ALLOWED); + blocked_ = (lists & KMess::MSN_LIST_BLOCKED); + reverse_ = (lists & KMess::MSN_LIST_REVERSE); + pending_ = (lists & KMess::MSN_LIST_PENDING); // The extension stores additional properties not found in // the official client/protocol, but only found in KMess. Modified: trunk/kmess/src/contact/contact.h =================================================================== --- trunk/kmess/src/contact/contact.h 2009-09-25 17:25:59 UTC (rev 5495) +++ trunk/kmess/src/contact/contact.h 2009-09-25 17:26:34 UTC (rev 5496) @@ -65,17 +65,6 @@ public: // Public constants - // Contact list constants - enum MsnContactLists - { - MSN_LIST_FRIEND = 1, // The contact is visible in the contact list (was added to FL list) - MSN_LIST_ALLOWED = 2, // The contact is only allowed (was added to AL list) - MSN_LIST_BLOCKED = 4, // The contact is blocked (was added to BL list) - MSN_LIST_REVERSE = 8, // The contact has you on his/hers list (added by server to RL list) - MSN_LIST_PENDING = 16 // The contact is on a pending list, should be added to AL/FL or BL - }; - - public: // Public methods // The constructor Contact( const QString& handle, const QString& friendlyName, int lists, Modified: trunk/kmess/src/dialogs/networkwindow.cpp =================================================================== --- trunk/kmess/src/dialogs/networkwindow.cpp 2009-09-25 17:25:59 UTC (rev 5495) +++ trunk/kmess/src/dialogs/networkwindow.cpp 2009-09-25 17:26:34 UTC (rev 5496) @@ -20,7 +20,7 @@ #include "networkwindow.h" -#include "../network/utils/msnalgorithms.h" // MsnAlgorithms::extractNonce() +#include "../network/utils/utils.h" // KMess::Utils::extractNonce() #include "../utils/kmessconfig.h" #include <QFile> @@ -893,7 +893,7 @@ if( flags == 0x100 ) { // For the handshake message, the last three fields are replaced with the nonce. - logMessage += "\n<br>nonce: " + KMess::MsnAlgorithms::extractNonce( message.data(), headerStart + 32 ); + logMessage += "\n<br>nonce: " + KMess::Utils::extractNonce( message.data(), headerStart + 32 ); } else { Modified: trunk/kmess/src/network/connections/msnnotificationconnection.cpp =================================================================== --- trunk/kmess/src/network/connections/msnnotificationconnection.cpp 2009-09-25 17:25:59 UTC (rev 5495) +++ trunk/kmess/src/network/connections/msnnotificationconnection.cpp 2009-09-25 17:26:34 UTC (rev 5496) @@ -229,7 +229,7 @@ kDebug() << "Allowing contact " << handle; #endif - putAdl( handle, Contact::MSN_LIST_ALLOWED ); + putAdl( handle, MSN_LIST_ALLOWED ); AddressBookService *addressBook = createAddressBookService(); addressBook->unblockContact( handle ); @@ -277,8 +277,8 @@ kDebug() << "Blocking contact " << handle; #endif - putRml( handle, Contact::MSN_LIST_ALLOWED ); - putAdl( handle, Contact::MSN_LIST_BLOCKED ); + putRml( handle, MSN_LIST_ALLOWED ); + putAdl( handle, MSN_LIST_BLOCKED ); AddressBookService *addressBook = createAddressBookService(); addressBook->blockContact( handle ); @@ -808,11 +808,11 @@ Contact *contact = contactList_->getContact( handle ); if( contact != 0 ) { - if( lists & Contact::MSN_LIST_FRIEND ) contact->setFriend ( true ); - if( lists & Contact::MSN_LIST_ALLOWED ) contact->setAllowed( true ); - if( lists & Contact::MSN_LIST_BLOCKED ) contact->setBlocked( true ); - if( lists & Contact::MSN_LIST_REVERSE ) contact->setReverse( true ); - if( lists & Contact::MSN_LIST_PENDING ) contact->setPending( true ); + if( lists & MSN_LIST_FRIEND ) contact->setFriend ( true ); + if( lists & MSN_LIST_ALLOWED ) contact->setAllowed( true ); + if( lists & MSN_LIST_BLOCKED ) contact->setBlocked( true ); + if( lists & MSN_LIST_REVERSE ) contact->setReverse( true ); + if( lists & MSN_LIST_PENDING ) contact->setPending( true ); } else { @@ -1655,17 +1655,17 @@ list = 0; if( currentContact->isFriend() ) { - list |= Contact::MSN_LIST_FRIEND; + list |= MSN_LIST_FRIEND; } // The contact may be or blocked or allowed, if it is both the ADL command fails if( currentContact->isBlocked() ) { - list |= Contact::MSN_LIST_BLOCKED; + list |= MSN_LIST_BLOCKED; } else if( currentContact->isAllowed() ) { - list |= Contact::MSN_LIST_ALLOWED; + list |= MSN_LIST_ALLOWED; } // Add to ADL command only user in at least one list @@ -2503,7 +2503,7 @@ // Contact added, notify it to contactlist void MsnNotificationConnection::slotContactAdded( const QString &handle, const QString &contactId, const QStringList &groupsId ) { - int lists = Contact::MSN_LIST_ALLOWED | Contact::MSN_LIST_FRIEND; + int lists = MSN_LIST_ALLOWED | MSN_LIST_FRIEND; // If the contact already exists, the user requested re-adding to FL list. Contact *contact = contactList_->getContact( handle ); @@ -2515,7 +2515,7 @@ // Ensure to block the contact if "already blocked" if( contact->isBlocked() ) { - lists ^= Contact::MSN_LIST_ALLOWED; + lists ^= MSN_LIST_ALLOWED; } } else @@ -2523,7 +2523,7 @@ // The contact is added to the reverse list: when the user adds a contact who has added the user, // the user must appear to be present in the contact's list (this avoids seeing the newly added // contact as not having the user in his/her list). - contactList_->addContact( handle, handle, lists | Contact::MSN_LIST_REVERSE, QStringList(), contactId ); + contactList_->addContact( handle, handle, lists | MSN_LIST_REVERSE, QStringList(), contactId ); } // Check if the user has requested that contact is putted into groups @@ -2586,7 +2586,7 @@ contact->setFriend( false ); // Remove it from our FL. - putRml( handle, Contact::MSN_LIST_FRIEND ); + putRml( handle, MSN_LIST_FRIEND ); } @@ -2645,7 +2645,7 @@ // thus increasing the chance of getting bug reports kWarning() << "Contact" << handle << "not found, creating new..."; - contact = contactList_->addContact( handle, friendlyName, Contact::MSN_LIST_FRIEND, guidList, contactId ); + contact = contactList_->addContact( handle, friendlyName, MSN_LIST_FRIEND, guidList, contactId ); } // If we have the contact in the AB then it is our friend. @@ -2736,8 +2736,8 @@ // Unblock the given contact void MsnNotificationConnection::contactUnblock( const QString &handle ) { - putRml( handle, Contact::MSN_LIST_BLOCKED ); - putAdl( handle, Contact::MSN_LIST_ALLOWED ); + putRml( handle, MSN_LIST_BLOCKED ); + putAdl( handle, MSN_LIST_ALLOWED ); AddressBookService *addressBook = createAddressBookService(); addressBook->unblockContact( handle ); Modified: trunk/kmess/src/network/connections/msnswitchboardconnection.cpp =================================================================== --- trunk/kmess/src/network/connections/msnswitchboardconnection.cpp 2009-09-25 17:25:59 UTC (rev 5495) +++ trunk/kmess/src/network/connections/msnswitchboardconnection.cpp 2009-09-25 17:26:34 UTC (rev 5496) @@ -17,8 +17,6 @@ #include "msnswitchboardconnection.h" -#include "../../contact/contact.h" -#include "../../contact/invitedcontact.h" // for cast #include "../../contact/msnobject.h" #include "../libkmessdebug.h" Modified: trunk/kmess/src/network/networkglobals.h =================================================================== --- trunk/kmess/src/network/networkglobals.h 2009-09-25 17:25:59 UTC (rev 5495) +++ trunk/kmess/src/network/networkglobals.h 2009-09-25 17:26:34 UTC (rev 5496) @@ -128,6 +128,20 @@ /** + * @brief Membership lists + */ +enum MsnContactLists +{ + MSN_LIST_FRIEND = 1, /// The contact is visible in the contact list (was added to FL list) + MSN_LIST_ALLOWED = 2, /// The contact is only allowed (was added to AL list) + MSN_LIST_BLOCKED = 4, /// The contact is blocked (was added to BL list) + MSN_LIST_REVERSE = 8, /// The contact has you on his/hers list (added by server to RL list) + MSN_LIST_PENDING = 16 /// The contact is on a pending list, should be added to AL/FL or BL +}; + + + +/** * Types of status messages which can be output. */ enum StatusMessageType Modified: trunk/kmess/src/network/soap/addressbookservice.cpp =================================================================== --- trunk/kmess/src/network/soap/addressbookservice.cpp 2009-09-25 17:25:59 UTC (rev 5495) +++ trunk/kmess/src/network/soap/addressbookservice.cpp 2009-09-25 17:26:34 UTC (rev 5496) @@ -17,8 +17,7 @@ #include "addressbookservice.h" -#include "../../contact/contact.h" - +#include "../networkglobals.h" #include "../libkmessdebug.h" #include "../msnsession.h" #include "../utils/utils.h" @@ -695,10 +694,10 @@ role = XmlFunctions::getNodeValue( membership, "MemberRole" ); roleId = 0; - if( role == "Allow" ) roleId = Contact::MSN_LIST_ALLOWED; - else if( role == "Block" ) roleId = Contact::MSN_LIST_BLOCKED; - else if( role == "Reverse" ) roleId = Contact::MSN_LIST_REVERSE; - else if( role == "Pending" ) roleId = Contact::MSN_LIST_PENDING; + if( role == "Allow" ) roleId = MSN_LIST_ALLOWED; + else if( role == "Block" ) roleId = MSN_LIST_BLOCKED; + else if( role == "Reverse" ) roleId = MSN_LIST_REVERSE; + else if( role == "Pending" ) roleId = MSN_LIST_PENDING; else { kWarning() << "Unknown membership role" << role << "in service" << serviceType << "!"; Modified: trunk/kmess/src/network/utils/msnalgorithms.cpp =================================================================== --- trunk/kmess/src/network/utils/msnalgorithms.cpp 2009-09-25 17:25:59 UTC (rev 5495) +++ trunk/kmess/src/network/utils/msnalgorithms.cpp 2009-09-25 17:26:34 UTC (rev 5496) @@ -471,36 +471,6 @@ -QString MsnAlgorithms::extractNonce(const QByteArray &data, const int offset) -{ - KMESS_ASSERT( data.size() >= offset + 15 ); - - const int noncePos[] = { 3,2,1,0 // Field 1 reversed - , 5,4 // Field 2 reversed - , 7,6 // Field 3 reversed - , 8,9 // field 4 - , 10,11,12,13,14,15 // field 5 - }; - - const char hexMap[] = "0123456789ABCDEF"; - QString hex; - for(int i = 0; i < 16; i++) - { - if( i == 4 || i == 6 || i == 8 || i == 10 ) - { - hex += "-"; - } - int upper = (data[offset + noncePos[i]] & 0xf0) >> 4; - int lower = (data[offset + noncePos[i]] & 0x0f); - hex += hexMap[upper]; - hex += hexMap[lower]; - } - - return "{" + hex + "}"; -} - - - QString MsnAlgorithms::extractUtf16String( const QByteArray &data, const int offset, int size ) { KMESS_ASSERT( data.size() >= offset + size ); Modified: trunk/kmess/src/network/utils/msnalgorithms.h =================================================================== --- trunk/kmess/src/network/utils/msnalgorithms.h 2009-09-25 17:25:59 UTC (rev 5495) +++ trunk/kmess/src/network/utils/msnalgorithms.h 2009-09-25 17:26:34 UTC (rev 5496) @@ -51,7 +51,6 @@ // Extract bytes from a QByteArray static unsigned int extractBytes( const QByteArray &buffer, const int offset ); static quint32 extractLongBytes( const QByteArray &buffer, const int offset ); - static QString extractNonce( const QByteArray &buffer, const int offset = 32 ); static QString extractUtf16String( const QByteArray &buffer, const int offset, const int size ); private: // Private methods Modified: trunk/kmess/src/network/utils/utils.cpp =================================================================== --- trunk/kmess/src/network/utils/utils.cpp 2009-09-25 17:25:59 UTC (rev 5495) +++ trunk/kmess/src/network/utils/utils.cpp 2009-09-25 17:26:34 UTC (rev 5496) @@ -19,11 +19,12 @@ #include "utils.h" -#include "../../contact/contact.h" +#include "../networkglobals.h" #include "../libkmessdebug.h" +#include <QByteArray> +#include <QString> #include <QUuid> -#include <QString> #include <QFile> #include <QCryptographicHash> @@ -36,6 +37,40 @@ +/** + * Extract a nonce from a QByteArray of data. + * @todo documentation + */ +QString Utils::extractNonce(const QByteArray &data, const int offset) +{ + KMESS_ASSERT( data.size() >= offset + 15 ); + + const int noncePos[] = { 3,2,1,0 // Field 1 reversed + , 5,4 // Field 2 reversed + , 7,6 // Field 3 reversed + , 8,9 // field 4 + , 10,11,12,13,14,15 // field 5 + }; + + const char hexMap[] = "0123456789ABCDEF"; + QString hex; + for(int i = 0; i < 16; i++) + { + if( i == 4 || i == 6 || i == 8 || i == 10 ) + { + hex += "-"; + } + int upper = (data[offset + noncePos[i]] & 0xf0) >> 4; + int lower = (data[offset + noncePos[i]] & 0x0f); + hex += hexMap[upper]; + hex += hexMap[lower]; + } + + return "{" + hex + "}"; +} + + + // Return the hash of a file name using the SHA1 algorithm QByteArray Utils::generateFileHash( const QString &fileName ) { Modified: trunk/kmess/src/network/utils/utils.h =================================================================== --- trunk/kmess/src/network/utils/utils.h 2009-09-25 17:25:59 UTC (rev 5495) +++ trunk/kmess/src/network/utils/utils.h 2009-09-25 17:26:34 UTC (rev 5496) @@ -45,6 +45,8 @@ static QString &htmlUnescape( QString &string ); // Converts a string constant with escaped entities to one with HTML static QString htmlUnescape( const QString &string ); + // Extract the nonce from a QByteArray + static QString extractNonce( const QByteArray &buffer, const int offset = 32 ); }; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |