Hello community,
here is the log from the commit of package gsoap for openSUSE:Factory checked in at 2014-08-13 08:48:57
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gsoap (Old)
and /work/SRC/openSUSE:Factory/.gsoap.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gsoap"
Changes:
--------
--- /work/SRC/openSUSE:Factory/gsoap/gsoap.changes 2014-02-11 11:39:28.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.gsoap.new/gsoap.changes 2014-08-13 08:49:03.000000000 +0200
@@ -1,0 +2,5 @@
+Sun Aug 3 23:16:48 UTC 2014 - jengelh@inai.de
+
+- Add gsoap-06-ipv6retry.diff to try all getaddrinfo results
+
+-------------------------------------------------------------------
New:
----
gsoap-06-ipv6retry.diff
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ gsoap.spec ++++++
--- /var/tmp/diff_new_pack.gbvqGQ/_old 2014-08-13 08:49:05.000000000 +0200
+++ /var/tmp/diff_new_pack.gbvqGQ/_new 2014-08-13 08:49:05.000000000 +0200
@@ -28,10 +28,11 @@
#DL-URL: http://downloads.sf.net/gsoap2/gsoap_2.8.17.zip
Source: gsoap-%version.tar.xz
Source2: sanitize_source.sh
-Patch0: gsoap-automake1_13.diff
+Patch13: gsoap-automake1_13.diff
Patch1: gsoap-01-sharedlibs.diff
Patch2: gsoap-02-typepuns.diff
Patch5: gsoap-05-ipv6.diff
+Patch6: gsoap-06-ipv6retry.diff
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: autoconf
BuildRequires: automake
@@ -110,7 +111,9 @@
tar -xf "%{S:0}" --use=xz;
%setup -DTq
%endif
-%patch -P 0 -P 1 -P 2 -P 5 -p1
+cmp gsoap/stdsoap2.cpp gsoap/stdsoap2.c
+%patch -P 13 -P 1 -P 2 -P 5 -P 6 -p1
+cp gsoap/stdsoap2.cpp gsoap/stdsoap2.c
%build
# Rebuild configure - fix that utterly long mktime test.
++++++ gsoap-06-ipv6retry.diff ++++++
From: Jan Engelhardt
Date: 2014-02-04 17:33:39.018679884 +0100
When using getaddrinfo, *all* sockets must be tried.
Remove pointless casts to void *; this implicit even in C++.
(The code is horribly indented and sprinkled with ifdefs much like
Linux 2.4. That should be factored out into separate functions.)
---
gsoap/stdsoap2.cpp | 14 +++++++++++---
gsoap/stdsoap2.h | 2 ++
2 files changed, 13 insertions(+), 3 deletions(-)
Index: gsoap-2.8.17/gsoap/stdsoap2.cpp
===================================================================
--- gsoap-2.8.17.orig/gsoap/stdsoap2.cpp
+++ gsoap-2.8.17/gsoap/stdsoap2.cpp
@@ -3847,7 +3847,7 @@ tcp_connect(struct soap *soap, const cha
}
soap->errmode = 0;
#ifdef WITH_IPV6
- memset((void*)&hints, 0, sizeof(hints));
+ memset(&hints, 0, sizeof(hints));
hints.ai_family = PF_UNSPEC;
#ifndef WITH_LEAN
if ((soap->omode & SOAP_IO_UDP))
@@ -3868,7 +3868,7 @@ tcp_connect(struct soap *soap, const cha
again:
sk = socket(res->ai_family, res->ai_socktype, res->ai_protocol);
soap->errmode = 0;
-#else
+#else /* WITH_IPV6 */
#ifndef WITH_LEAN
again:
#endif
@@ -3878,7 +3878,7 @@ again:
else
#endif
sk = socket(AF_INET, SOCK_STREAM, 0);
-#endif
+#endif /* WITH_IPV6 */
if (!soap_valid_socket(sk))
{
#ifdef WITH_IPV6
@@ -4081,6 +4081,7 @@ again:
SOAP_SOCKBLOCK(sk)
retries = 10;
#endif
+
for (;;)
{
#ifdef WITH_IPV6
@@ -4089,6 +4090,13 @@ again:
if (connect(sk, (struct sockaddr*)&soap->peer, sizeof(soap->peer)))
#endif
{ err = soap_socket_errno(sk);
+#ifdef WITH_IPV6
+ if (err == SOAP_ECONNREFUSED && res->ai_next != NULL) {
+ soap->fclosesocket(soap, sk);
+ res = res->ai_next;
+ goto again;
+ }
+#endif
#ifndef WITH_LEAN
if (err == SOAP_EADDRINUSE)
{ soap->fclosesocket(soap, sk);
Index: gsoap-2.8.17/gsoap/stdsoap2.h
===================================================================
--- gsoap-2.8.17.orig/gsoap/stdsoap2.h
+++ gsoap-2.8.17/gsoap/stdsoap2.h
@@ -972,11 +972,13 @@ extern "C" {
# define SOAP_EWOULDBLOCK WSAEWOULDBLOCK
# define SOAP_EINPROGRESS WSAEINPROGRESS
# define SOAP_EADDRINUSE WSAEADDRINUSE
+# define SOAP_ECONNREFUSED WSAECONNREFUSED
#else
# define SOAP_ERANGE ERANGE
# define SOAP_EINTR EINTR
# define SOAP_EAGAIN EAGAIN
# define SOAP_EADDRINUSE EADDRINUSE
+# define SOAP_ECONNREFUSED ECONNREFUSED
# ifdef SYMBIAN
# define SOAP_EWOULDBLOCK 9898
# define SOAP_EINPROGRESS 9899
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-commit+help@opensuse.org