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 - [email protected]
+
+- 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 <[email protected]>
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: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to