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 "LZWang@suse.com"
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 - idonmez@suse.com
+
+- 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 zaitor@opensuse.org -- Use pkgconfig for PTLib, taken from upstream svn, fixes build.
Patch4: opal-use-pkgconfig-for-PTLib.patch
+# PATCH-FIX-UPSTREAM opal-server-flood.patch idoenmez@suse.de -- 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::listGetHostAddress() == 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: opensuse-commit+unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-commit+help@opensuse.org