Hello community, here is the log from the commit of package opal for openSUSE:Factory checked in at 2012-12-19 11:15:38 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/opal (Old) and /work/SRC/openSUSE:Factory/.opal.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "opal", Maintainer is "[email protected]" Changes: -------- --- /work/SRC/openSUSE:Factory/opal/opal.changes 2012-12-10 12:19:59.000000000 +0100 +++ /work/SRC/openSUSE:Factory/.opal.new/opal.changes 2012-12-19 11:15:40.000000000 +0100 @@ -1,0 +2,6 @@ +Thu Dec 13 10:15:24 UTC 2012 - [email protected] + +- Add opal-server-flood.patch: Fix server flood in some configurations + Upstream r28644 and r28650 also bgo#690144 + +------------------------------------------------------------------- New: ---- opal-server-flood.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ opal.spec ++++++ --- /var/tmp/diff_new_pack.hQ29KR/_old 2012-12-19 11:15:42.000000000 +0100 +++ /var/tmp/diff_new_pack.hQ29KR/_new 2012-12-19 11:15:42.000000000 +0100 @@ -58,6 +58,8 @@ Patch2: opal-fix-ambiguous.patch # PATCH-FIX-UPSTREAM opal-use-pkgconfig-for-PTLib.patch [email protected] -- Use pkgconfig for PTLib, taken from upstream svn, fixes build. Patch4: opal-use-pkgconfig-for-PTLib.patch +# PATCH-FIX-UPSTREAM opal-server-flood.patch [email protected] -- Fix server flood, upstream r28644 and r28650, bgo#690144 +Patch5: opal-server-flood.patch BuildRoot: %{_tmppath}/%{name}-%{version}-build %description @@ -99,6 +101,7 @@ %patch1 -p1 %patch2 -p1 %patch4 -p1 +%patch5 -p1 # this subdir contains GPL - to avoid license issues delete it before build rm -rf plugins/LID/VPB ++++++ opal-server-flood.patch ++++++ Index: opal-3.10.9/include/sip/sippdu.h =================================================================== --- opal-3.10.9.orig/include/sip/sippdu.h +++ opal-3.10.9/include/sip/sippdu.h @@ -234,6 +234,7 @@ class SIPURLList : public std::list<SIPU bool reversed = false ); PString ToString() const; + friend ostream & operator<<(ostream & strm, const SIPURLList & urls); }; Index: opal-3.10.9/src/sip/handlers.cxx =================================================================== --- opal-3.10.9.orig/src/sip/handlers.cxx +++ opal-3.10.9/src/sip/handlers.cxx @@ -716,6 +716,7 @@ void SIPRegisterHandler::OnReceivedOK(SI for (SIPURLList::iterator reply = replyContacts.begin(); reply != replyContacts.end(); ) { if (reply->GetHostAddress() == externalAddress) { externalAddress.MakeEmpty(); // Clear this so no further action taken + m_externalAddress.MakeEmpty(); ++reply; } else if (std::find(requestedContacts.begin(), requestedContacts.end(), *reply) != requestedContacts.end()) @@ -749,27 +750,29 @@ void SIPRegisterHandler::OnReceivedOK(SI return; } - // Remember (possibly new) NAT address - m_externalAddress == externalAddress; - if (GetExpire() == 0) { // If we had discovered we are behind NAT and had unregistered, re-REGISTER with new addresses - PTRACE(2, "SIP\tRe-registering with NAT address " << externalAddress); + PTRACE(2, "SIP\tRe-registering NAT address change (" << m_contactAddresses << ") to " << externalAddress); for (SIPURLList::iterator contact = m_contactAddresses.begin(); contact != m_contactAddresses.end(); ++contact) contact->SetHostAddress(externalAddress); + m_contactAddresses.unique(); SetExpire(m_originalExpireTime); } else { /* If we got here then we have done a successful register, but registrar indicated that we are behind firewall. Unregister what we just registered */ - PTRACE(2, "SIP\tRemote indicated change of REGISTER Contact header required due to NAT"); for (SIPURLList::iterator contact = replyContacts.begin(); contact != replyContacts.end(); ++contact) contact->GetFieldParameters().Remove("expires"); + PTRACE(2, "SIP\tRemote indicated change of REGISTER Contact address(s) (" << replyContacts + << ") required due to NAT address " << externalAddress << ", previous=" << m_externalAddress); m_contactAddresses = replyContacts; SetExpire(0); } - SendRequest(previousState); + // Remember (possibly new) NAT address + m_externalAddress == externalAddress; + + SendRequest(Refreshing); SendStatus(SIP_PDU::Information_Trying, previousState); } Index: opal-3.10.9/src/sip/sippdu.cxx =================================================================== --- opal-3.10.9.orig/src/sip/sippdu.cxx +++ opal-3.10.9/src/sip/sippdu.cxx @@ -691,8 +691,15 @@ bool SIPURLList::FromString(const PStrin PString SIPURLList::ToString() const { PStringStream strm; + strm << *this; + return strm; +} + + +ostream & operator<<(ostream & strm, const SIPURLList & urls) +{ bool outputCommas = false; - for (const_iterator it = begin(); it != end(); ++it) { + for (SIPURLList::const_iterator it = urls.begin(); it != urls.end(); ++it) { if (it->IsEmpty()) continue; -- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
