Hello community, here is the log from the commit of package libmsn for openSUSE:11.3 checked in at Thu Nov 17 17:30:29 CET 2011.
-------- --- old-versions/11.3/all/libmsn/libmsn.changes 2010-04-18 19:47:46.000000000 +0200 +++ 11.3/libmsn/libmsn.changes 2011-11-16 16:00:31.000000000 +0100 @@ -1,0 +2,11 @@ +Wed Nov 16 14:58:23 UTC 2011 - idon...@suse.com + +- Add soap-redirect.patch to fix connection issues to new MSN + servers (bnc#729478) + +------------------------------------------------------------------- +Sun Aug 7 14:44:44 UTC 2011 - toddrme2...@gmail.com + +- Added BuildRequires: pkg-config (fix for RPMLINT warning) + +------------------------------------------------------------------- Package does not exist at destination yet. Using Fallback old-versions/11.3/all/libmsn Destination is old-versions/11.3/UPDATES/all/libmsn calling whatdependson for 11.3-i586 New: ---- soap-redirect.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libmsn.spec ++++++ --- /var/tmp/diff_new_pack.qqffX7/_old 2011-11-17 17:29:44.000000000 +0100 +++ /var/tmp/diff_new_pack.qqffX7/_new 2011-11-17 17:29:44.000000000 +0100 @@ -1,7 +1,7 @@ # -# spec file for package libmsn (Version 4.1) +# spec file for package libmsn # -# Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2011 SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -19,19 +19,20 @@ Name: libmsn -BuildRequires: cmake gcc-c++ kde4-filesystem libopenssl-devel +BuildRequires: cmake gcc-c++ kde4-filesystem libopenssl-devel pkg-config License: BSD3c(or similar) ; GPLv2 or later with linking exception for openssl Group: Development/Libraries/C and C++ Summary: Reusable, open-source library for MSN Messenger BuildRoot: %{_tmppath}/%{name}-%{version}-build Url: http://sourceforge.net/projects/libmsn Version: 4.1 -Release: 2 +Release: 3.<RELEASE2> %define tar_version 4.1 Source: http://surfnet.dl.sourceforge.net/sourceforge/libmsn/libmsn-%{tar_version}.tar.bz2 Patch1: gcc-warnings.diff Patch2: literal-string-compare.diff Patch3: openssl1.patch +Patch4: soap-redirect.patch Source99: COPYING.LGPL %define debug_package_requires libmsn0_1 = %{version}-%{release} @@ -70,6 +71,7 @@ %patch1 %patch2 %patch3 -p1 +%patch4 cp %{S:99} . %build ++++++ soap-redirect.patch ++++++ Index: msn/soap.h =================================================================== --- msn/soap.h (revision 120) +++ msn/soap.h (revision 121) @@ -35,6 +35,8 @@ #include <vector> #include <map> +#include "xmlParser.h" + #include "libmsn_export.h" namespace MSN @@ -205,6 +207,8 @@ void changeDisplayName(std::string newDisplayName); void parseChangeDisplayNameResponse(std::string); + + Soap* manageSoapRedirect(XMLNode response1, soapAction action); virtual void dispatchCommand(std::vector<std::string> &) {}; virtual void connect(const std::string &, unsigned int) {}; Index: msn/soap.cpp =================================================================== --- msn/soap.cpp (revision 120) +++ msn/soap.cpp (revision 121) @@ -314,25 +314,17 @@ void Soap::parseGetTicketsResponse(std::string response) { - XMLNode domTree = XMLNode::parseString( response.c_str() ); - if(http_response_code == "301" ) + XMLNode response1 = XMLNode::parseString( response.c_str() ); + if(http_response_code == "301") { - const char *preferredHostName = domTree.getChildNode("soap:Envelope").getChildNode("soap:Header").getChildNode("ServiceHeader").getChildNode("PreferredHostName").getText(); - if(preferredHostName) - { - Soap *soapConnection = new Soap(notificationServer, sitesToAuthList); - - std::string newdomain(preferredHostName); - soapConnection->actionDomains[AUTH] = newdomain; - soapConnection->setMBI(mbi); - soapConnection->getTickets(this->passport, this->password, this->policy); - } + Soap *soapConnection = manageSoapRedirect(response1, AUTH); + soapConnection->getTickets(this->passport, this->password, this->policy); return; } // get the header information from the DOM - XMLNode tokens = domTree.getChildNode("S:Envelope").getChildNode("S:Body").getChildNode("wst:RequestSecurityTokenResponseCollection"); - const char *reason = domTree.getChildNode("S:Envelope").getChildNode("S:Fault").getChildNode("faultcode").getText(); + XMLNode tokens = response1.getChildNode("S:Envelope").getChildNode("S:Body").getChildNode("wst:RequestSecurityTokenResponseCollection"); + const char *reason = response1.getChildNode("S:Envelope").getChildNode("S:Fault").getChildNode("faultcode").getText(); if(reason) { std::string reason1(reason); @@ -345,7 +337,7 @@ } if(reason1 == "psf:Redirect") { - const char *newurl = domTree.getChildNode("S:Envelope").getChildNode("S:Fault").getChildNode("psf:redirectUrl").getText(); + const char *newurl = response1.getChildNode("S:Envelope").getChildNode("S:Fault").getChildNode("psf:redirectUrl").getText(); Soap *soapConnection = new Soap(notificationServer); std::string newurl1(newurl); @@ -480,22 +472,14 @@ void Soap::parseEnableContactOnAddressBookResponse(std::string response) { XMLNode response1 = XMLNode::parseString(response.c_str()); + if(http_response_code == "301" ) { - const char *preferredHostName = response1.getChildNode("soap:Envelope").getChildNode("soap:Header").getChildNode("ServiceHeader").getChildNode("PreferredHostName").getText(); - if(preferredHostName) - { - Soap *soapConnection = new Soap(notificationServer, sitesToAuthList); - - std::string newdomain(preferredHostName); - soapConnection->actionDomains[ENABLE_CONTACT_ON_ADDRESSBOOK] = newdomain; - soapConnection->setMBI(mbi); - soapConnection->enableContactOnAddressBook(this->contactId, this->tempPassport, this->myDisplayName); - } + Soap *soapConnection = manageSoapRedirect(response1, ENABLE_CONTACT_ON_ADDRESSBOOK); + soapConnection->enableContactOnAddressBook(this->contactId, this->tempPassport, this->myDisplayName); return; } - XMLNode version = response1.getChildNode("soap:Envelope").getChildNode("soap:Header").getChildNode("ServiceHeader").getChildNode("Version"); const char *ver = version.getText(); if(ver) @@ -576,22 +560,14 @@ void Soap::parseDelContactFromAddressBookResponse(std::string response) { XMLNode response1 = XMLNode::parseString(response.c_str()); + if(http_response_code == "301" ) { - const char *preferredHostName = response1.getChildNode("soap:Envelope").getChildNode("soap:Header").getChildNode("ServiceHeader").getChildNode("PreferredHostName").getText(); - if(preferredHostName) - { - Soap *soapConnection = new Soap(notificationServer, sitesToAuthList); - - std::string newdomain(preferredHostName); - soapConnection->actionDomains[DEL_CONTACT_FROM_ADDRESSBOOK] = newdomain; - soapConnection->setMBI(mbi); - soapConnection->delContactFromAddressBook(this->contactId, this->tempPassport); - } + Soap *soapConnection = manageSoapRedirect(response1, DEL_CONTACT_FROM_ADDRESSBOOK); + soapConnection->delContactFromAddressBook(this->contactId, this->tempPassport); return; } - XMLNode version = response1.getChildNode("soap:Envelope").getChildNode("soap:Header").getChildNode("ServiceHeader").getChildNode("Version"); const char *ver = version.getText(); if(ver) @@ -683,22 +659,14 @@ void Soap::parseDisableContactFromAddressBookResponse(std::string response) { XMLNode response1 = XMLNode::parseString(response.c_str()); + if(http_response_code == "301" ) { - const char *preferredHostName = response1.getChildNode("soap:Envelope").getChildNode("soap:Header").getChildNode("ServiceHeader").getChildNode("PreferredHostName").getText(); - if(preferredHostName) - { - Soap *soapConnection = new Soap(notificationServer, sitesToAuthList); - - std::string newdomain(preferredHostName); - soapConnection->actionDomains[DISABLE_CONTACT_ON_ADDRESSBOOK] = newdomain; - soapConnection->setMBI(mbi); - soapConnection->disableContactFromAddressBook(this->contactId, this->tempPassport); - } + Soap *soapConnection = manageSoapRedirect(response1, DISABLE_CONTACT_ON_ADDRESSBOOK); + soapConnection->disableContactFromAddressBook(this->contactId, this->tempPassport); return; } - XMLNode version = response1.getChildNode("soap:Envelope").getChildNode("soap:Header").getChildNode("ServiceHeader").getChildNode("Version"); const char *ver = version.getText(); if(ver) @@ -797,18 +765,11 @@ void Soap::parseAddContactToAddressBookResponse(std::string response) { XMLNode response1 = XMLNode::parseString(response.c_str()); + if(http_response_code == "301" ) { - const char *preferredHostName = response1.getChildNode("soap:Envelope").getChildNode("soap:Header").getChildNode("ServiceHeader").getChildNode("PreferredHostName").getText(); - if(preferredHostName) - { - Soap *soapConnection = new Soap(notificationServer, sitesToAuthList); - - std::string newdomain(preferredHostName); - soapConnection->actionDomains[ADD_CONTACT_TO_ADDRESSBOOK] = newdomain; - soapConnection->setMBI(mbi); - soapConnection->addContactToAddressBook(this->tempPassport, this->tempDisplayName); - } + Soap *soapConnection = manageSoapRedirect(response1, ADD_CONTACT_TO_ADDRESSBOOK); + soapConnection->addContactToAddressBook(this->tempPassport, this->tempDisplayName); return; } @@ -902,22 +863,14 @@ void Soap::parseAddContactToGroupResponse(std::string response) { XMLNode response1 = XMLNode::parseString(response.c_str()); + if(http_response_code == "301" ) { - const char *preferredHostName = response1.getChildNode("soap:Envelope").getChildNode("soap:Header").getChildNode("ServiceHeader").getChildNode("PreferredHostName").getText(); - if(preferredHostName) - { - Soap *soapConnection = new Soap(notificationServer, sitesToAuthList); - - std::string newdomain(preferredHostName); - soapConnection->actionDomains[ADD_CONTACT_TO_GROUP] = newdomain; - soapConnection->setMBI(mbi); - soapConnection->addContactToGroup(this->groupId, this->contactId); - } + Soap *soapConnection = manageSoapRedirect(response1, ADD_CONTACT_TO_GROUP); + soapConnection->addContactToGroup(this->groupId, this->contactId); return; } - XMLNode version = response1.getChildNode("soap:Envelope").getChildNode("soap:Header").getChildNode("ServiceHeader").getChildNode("Version"); const char *ver = version.getText(); if(ver) @@ -1017,22 +970,14 @@ void Soap::parseAddGroupResponse(std::string response) { XMLNode response1 = XMLNode::parseString(response.c_str()); + if(http_response_code == "301" ) { - const char *preferredHostName = response1.getChildNode("soap:Envelope").getChildNode("soap:Header").getChildNode("ServiceHeader").getChildNode("PreferredHostName").getText(); - if(preferredHostName) - { - Soap *soapConnection = new Soap(notificationServer, sitesToAuthList); - - std::string newdomain(preferredHostName); - soapConnection->actionDomains[ADD_GROUP] = newdomain; - soapConnection->setMBI(mbi); - soapConnection->addGroup(this->groupName); - } + Soap *soapConnection = manageSoapRedirect(response1, ADD_GROUP); + soapConnection->addGroup(this->groupName); return; } - XMLNode version = response1.getChildNode("soap:Envelope").getChildNode("soap:Header").getChildNode("ServiceHeader").getChildNode("Version"); const char *ver = version.getText(); if(ver) @@ -1116,22 +1061,14 @@ void Soap::parseDelGroupResponse(std::string response) { XMLNode response1 = XMLNode::parseString(response.c_str()); + if(http_response_code == "301" ) { - const char *preferredHostName = response1.getChildNode("soap:Envelope").getChildNode("soap:Header").getChildNode("ServiceHeader").getChildNode("PreferredHostName").getText(); - if(preferredHostName) - { - Soap *soapConnection = new Soap(notificationServer, sitesToAuthList); - - std::string newdomain(preferredHostName); - soapConnection->actionDomains[DEL_GROUP] = newdomain; - soapConnection->setMBI(mbi); - soapConnection->delGroup(this->groupId); - } + Soap *soapConnection = manageSoapRedirect(response1, DEL_GROUP); + soapConnection->delGroup(this->groupId); return; } - XMLNode version = response1.getChildNode("soap:Envelope").getChildNode("soap:Header").getChildNode("ServiceHeader").getChildNode("Version"); const char *ver = version.getText(); if(ver) @@ -1220,22 +1157,14 @@ void Soap::parseRenameGroupResponse(std::string response) { XMLNode response1 = XMLNode::parseString(response.c_str()); + if(http_response_code == "301" ) { - const char *preferredHostName = response1.getChildNode("soap:Envelope").getChildNode("soap:Header").getChildNode("ServiceHeader").getChildNode("PreferredHostName").getText(); - if(preferredHostName) - { - Soap *soapConnection = new Soap(notificationServer, sitesToAuthList); - - std::string newdomain(preferredHostName); - soapConnection->actionDomains[RENAME_GROUP] = newdomain; - soapConnection->setMBI(mbi); - soapConnection->renameGroup(this->groupId, this->groupName); - } + Soap *soapConnection = manageSoapRedirect(response1, RENAME_GROUP); + soapConnection->renameGroup(this->groupId, this->groupName); return; } - XMLNode version = response1.getChildNode("soap:Envelope").getChildNode("soap:Header").getChildNode("ServiceHeader").getChildNode("Version"); const char *ver = version.getText(); if(ver) @@ -1323,22 +1252,14 @@ void Soap::parseDelContactFromGroupResponse(std::string response) { XMLNode response1 = XMLNode::parseString(response.c_str()); + if(http_response_code == "301" ) { - const char *preferredHostName = response1.getChildNode("soap:Envelope").getChildNode("soap:Header").getChildNode("ServiceHeader").getChildNode("PreferredHostName").getText(); - if(preferredHostName) - { - Soap *soapConnection = new Soap(notificationServer, sitesToAuthList); - - std::string newdomain(preferredHostName); - soapConnection->actionDomains[DEL_CONTACT_FROM_GROUP] = newdomain; - soapConnection->setMBI(mbi); - soapConnection->delContactFromGroup(this->groupId, this->contactId); - } + Soap *soapConnection = manageSoapRedirect(response1, DEL_CONTACT_FROM_GROUP); + soapConnection->delContactFromGroup(this->groupId, this->contactId); return; } - XMLNode version = response1.getChildNode("soap:Envelope").getChildNode("soap:Header").getChildNode("ServiceHeader").getChildNode("Version"); const char *ver = version.getText(); if(ver) @@ -1454,18 +1375,11 @@ void Soap::parseAddContactToListResponse(std::string response) { XMLNode response1 = XMLNode::parseString(response.c_str()); - if(http_response_code == "301" ) + + if(http_response_code == "301") { - const char *preferredHostName = response1.getChildNode("soap:Envelope").getChildNode("soap:Header").getChildNode("ServiceHeader").getChildNode("PreferredHostName").getText(); - if(preferredHostName) - { - Soap *soapConnection = new Soap(notificationServer, sitesToAuthList); - - std::string newdomain(preferredHostName); - soapConnection->actionDomains[ADD_CONTACT_TO_LIST] = newdomain; - soapConnection->setMBI(mbi); - soapConnection->addContactToList(this->tempPassport, this->tempList); - } + Soap *soapConnection = manageSoapRedirect(response1, ADD_CONTACT_TO_LIST); + soapConnection->addContactToList(this->tempPassport, this->tempList); return; } @@ -1585,22 +1499,14 @@ void Soap::parseRemoveContactFromListResponse(std::string response) { XMLNode response1 = XMLNode::parseString(response.c_str()); - if(http_response_code == "301" ) + + if(http_response_code == "301") { - const char *preferredHostName = response1.getChildNode("soap:Envelope").getChildNode("soap:Header").getChildNode("ServiceHeader").getChildNode("PreferredHostName").getText(); - if(preferredHostName) - { - Soap *soapConnection = new Soap(notificationServer, sitesToAuthList); - - std::string newdomain(preferredHostName); - soapConnection->actionDomains[DEL_CONTACT_FROM_LIST] = newdomain; - soapConnection->setMBI(mbi); - soapConnection->removeContactFromList(this->tempPassport, this->tempList); - } + Soap *soapConnection = manageSoapRedirect(response1, DEL_CONTACT_FROM_LIST); + soapConnection->removeContactFromList(this->tempPassport, this->tempList); return; } - XMLNode version = response1.getChildNode("soap:Envelope").getChildNode("soap:Header").getChildNode("ServiceHeader").getChildNode("Version"); const char *ver = version.getText(); if(ver) @@ -1709,20 +1615,11 @@ XMLNode response1 = XMLNode::parseString(response.c_str()); if(http_response_code == "301" ) { - const char *preferredHostName = response1.getChildNode("soap:Envelope").getChildNode("soap:Header").getChildNode("ServiceHeader").getChildNode("PreferredHostName").getText(); - if(preferredHostName) - { - Soap *soapConnection = new Soap(notificationServer, sitesToAuthList); - - std::string newdomain(preferredHostName); - soapConnection->actionDomains[GET_LISTS] = newdomain; - soapConnection->setMBI(mbi); - soapConnection->getLists(this->listInfo); - } + Soap *soapConnection = manageSoapRedirect(response1, GET_LISTS); + soapConnection->getLists(this->listInfo); return; } - XMLNode Services = response1.getChildNode("soap:Envelope").getChildNode("soap:Body").getChildNode("FindMembershipResponse").getChildNode("FindMembershipResult").getChildNode("Services"); int nServices = Services.nChildNode("Service"); @@ -1869,16 +1766,8 @@ XMLNode response1 = XMLNode::parseString(response.c_str()); if(http_response_code == "301" ) { - const char *preferredHostName = response1.getChildNode("soap:Envelope").getChildNode("soap:Header").getChildNode("ServiceHeader").getChildNode("PreferredHostName").getText(); - if(preferredHostName) - { - Soap *soapConnection = new Soap(notificationServer, sitesToAuthList); - - std::string newdomain(preferredHostName); - soapConnection->actionDomains[GET_ADDRESS_BOOK] = newdomain; - soapConnection->setMBI(mbi); - soapConnection->getAddressBook(this->listInfo); - } + Soap *soapConnection = manageSoapRedirect(response1, GET_ADDRESS_BOOK); + soapConnection->getAddressBook(this->listInfo); return; } @@ -2075,20 +1964,11 @@ XMLNode response1 = XMLNode::parseString(response.c_str()); if(http_response_code == "301" ) { - const char *preferredHostName = response1.getChildNode("soap:Envelope").getChildNode("soap:Header").getChildNode("ServiceHeader").getChildNode("PreferredHostName").getText(); - if(preferredHostName) - { - Soap *soapConnection = new Soap(notificationServer, sitesToAuthList); - - std::string newdomain(preferredHostName); - soapConnection->actionDomains[RETRIEVE_OIM] = newdomain; - soapConnection->setMBI(mbi); - soapConnection->getOIM(this->oim_id, this->markAsRead); - } + Soap *soapConnection = manageSoapRedirect(response1, RETRIEVE_OIM); + soapConnection->getOIM(this->oim_id, this->markAsRead); return; } - const char* msg = response1.getChildNode("soap:Envelope").getChildNode("soap:Body").getChildNode("GetMessageResponse").getChildNode("GetMessageResult").getText(); if(msg) { @@ -2160,18 +2040,11 @@ void Soap::parseDeleteOIMResponse(std::string response) { XMLNode response1 = XMLNode::parseString(response.c_str()); + if(http_response_code == "301" ) { - const char *preferredHostName = response1.getChildNode("soap:Envelope").getChildNode("soap:Header").getChildNode("ServiceHeader").getChildNode("PreferredHostName").getText(); - if(preferredHostName) - { - Soap *soapConnection = new Soap(notificationServer, sitesToAuthList); - - std::string newdomain(preferredHostName); - soapConnection->actionDomains[DELETE_OIM] = newdomain; - soapConnection->setMBI(mbi); - soapConnection->deleteOIM(this->oim_id); - } + Soap *soapConnection = manageSoapRedirect(response1, DELETE_OIM); + soapConnection->deleteOIM(this->oim_id); return; } @@ -2225,23 +2098,15 @@ void Soap::parseGetMailDataResponse(std::string response) { XMLNode response1 = XMLNode::parseString(response.c_str()); - if(http_response_code == "301" ) + + if(http_response_code == "301") { - const char *preferredHostName = response1.getChildNode("soap:Envelope").getChildNode("soap:Header").getChildNode("ServiceHeader").getChildNode("PreferredHostName").getText(); - if(preferredHostName) - { - Soap *soapConnection = new Soap(notificationServer, sitesToAuthList); - - std::string newdomain(preferredHostName); - soapConnection->actionDomains[RETRIEVE_OIM_MAIL_DATA] = newdomain; - soapConnection->setMBI(mbi); - soapConnection->getMailData(); - } + Soap *soapConnection = manageSoapRedirect(response1, RETRIEVE_OIM_MAIL_DATA); + soapConnection->getMailData(); return; } - - // oh my god! xml text as a field of a xml node! I cant believe it! + // oh my god! xml text as a field of a xml node! I cant believe it! std::string maildata = response1.getChildNode("soap:Envelope").getChildNode("soap:Body").getChildNode("GetMetadataResponse").getChildNode("MD").createXMLString(false); if(maildata.empty()) return; // TODO - raise an error @@ -2349,18 +2214,11 @@ OIM oim = this->oim; // probably we need to generate a new lockkey XMLNode response1 = XMLNode::parseString(response.c_str()); - if(http_response_code == "301" ) + + if(http_response_code == "301") { - const char *preferredHostName = response1.getChildNode("soap:Envelope").getChildNode("soap:Header").getChildNode("ServiceHeader").getChildNode("PreferredHostName").getText(); - if(preferredHostName) - { - Soap *soapConnection = new Soap(notificationServer, sitesToAuthList); - - std::string newdomain(preferredHostName); - soapConnection->actionDomains[GENERATE_LOCKKEY] = newdomain; - soapConnection->setMBI(mbi); - soapConnection->generateLockkey(this->oim); - } + Soap *soapConnection = manageSoapRedirect(response1, GENERATE_LOCKKEY); + soapConnection->generateLockkey(this->oim); return; } @@ -2478,18 +2336,11 @@ { OIM oim = this->oim; XMLNode response1 = XMLNode::parseString(response.c_str()); - if(http_response_code == "301" ) + + if(http_response_code == "301") { - const char *preferredHostName = response1.getChildNode("soap:Envelope").getChildNode("soap:Header").getChildNode("ServiceHeader").getChildNode("PreferredHostName").getText(); - if(preferredHostName) - { - Soap *soapConnection = new Soap(notificationServer, sitesToAuthList); - - std::string newdomain(preferredHostName); - soapConnection->actionDomains[SEND_OIM] = newdomain; - soapConnection->setMBI(mbi); - soapConnection->sendOIM(this->oim, this->lockkey); - } + Soap *soapConnection = manageSoapRedirect(response1, SEND_OIM); + soapConnection->sendOIM(this->oim, this->lockkey); return; } @@ -2576,16 +2427,8 @@ XMLNode response1 = XMLNode::parseString(response.c_str()); if(http_response_code == "301" ) { - const char *preferredHostName = response1.getChildNode("soap:Envelope").getChildNode("soap:Header").getChildNode("ServiceHeader").getChildNode("PreferredHostName").getText(); - if(preferredHostName) - { - Soap *soapConnection = new Soap(notificationServer, sitesToAuthList); - - std::string newdomain(preferredHostName); - soapConnection->actionDomains[CHANGE_DISPLAYNAME] = newdomain; - soapConnection->setMBI(mbi); - soapConnection->changeDisplayName(this->tempDisplayName); - } + Soap *soapConnection = manageSoapRedirect(response1, CHANGE_DISPLAYNAME); + soapConnection->changeDisplayName(this->tempDisplayName); return; } @@ -2613,7 +2456,7 @@ return; http_header_response = this->readBuffer.substr(0,this->readBuffer.find("\r\n\r\n") + 4); - Message::Headers headers = Message::Headers(http_header_response); + Message::Headers headers = Message::Headers(http_header_response); this->response_length = decimalFromString(headers["Content-Length"]); this->http_response_code = splitString(http_header_response.substr(0,http_header_response.find("\r\n"))," ")[1]; @@ -2698,6 +2541,34 @@ delete this; } + Soap* Soap::manageSoapRedirect(XMLNode response1, soapAction action) + { + Soap *soapConnection = new Soap(notificationServer, sitesToAuthList); + Message::Headers headers = Message::Headers(http_header_response); + std::string newdomain; + std::string location = headers["Location"]; + + const char *preferredHostName = response1.getChildNode("soap:Envelope").getChildNode("soap:Header").getChildNode("ServiceHeader").getChildNode("PreferredHostName").getText(); + if(preferredHostName) + { + std::string newdomain(preferredHostName); + soapConnection->actionDomains[action] = newdomain; + } + + if (location.size()) + { + std::string newurl1(location); + std::vector<std::string> a = splitString(newurl1, "/"); + std::string newdomain = splitString(a[1], "/")[0]; + soapConnection->actionDomains[action] = newdomain; + std::vector<std::string> postpath = splitString(newurl1, newdomain); + soapConnection->actionPOSTURLs[action] = postpath[1]; + } + soapConnection->setMBI(mbi); + + return soapConnection; + } + void Soap::disconnect() { } continue with "q"... Remember to have fun... -- To unsubscribe, e-mail: opensuse-commit+unsubscr...@opensuse.org For additional commands, e-mail: opensuse-commit+h...@opensuse.org