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]
