[gsoap/epel7] Try next interface also in case of EINPROGRESS

Mattias Ellert ellert at fedoraproject.org
Thu Sep 11 14:37:30 UTC 2014


commit 2a5356b26a6f9cbd8026d9cd832788672b9a15dc
Author: Mattias Ellert <mattias.ellert at fysast.uu.se>
Date:   Thu Sep 11 16:23:03 2014 +0200

    Try next interface also in case of EINPROGRESS

 gsoap-einprogress.patch |  156 +++++++++++++++++++++++++++++++++++++++++++++++
 gsoap.spec              |   10 +++-
 2 files changed, 164 insertions(+), 2 deletions(-)
---
diff --git a/gsoap-einprogress.patch b/gsoap-einprogress.patch
new file mode 100644
index 0000000..0e7a7ac
--- /dev/null
+++ b/gsoap-einprogress.patch
@@ -0,0 +1,156 @@
+diff -ur gsoap-2.8.orig/gsoap/samples/calc_vs2005/calc_vs2005/stdsoap2.cpp gsoap-2.8/gsoap/samples/calc_vs2005/calc_vs2005/stdsoap2.cpp
+--- gsoap-2.8.orig/gsoap/samples/calc_vs2005/calc_vs2005/stdsoap2.cpp	2014-08-24 18:38:54.000000000 +0200
++++ gsoap-2.8/gsoap/samples/calc_vs2005/calc_vs2005/stdsoap2.cpp	2014-09-11 15:37:46.494978203 +0200
+@@ -4122,6 +4122,11 @@
+             soap_set_sender_error(soap, "Timeout", "connect failed in tcp_connect()", SOAP_TCP_ERROR);
+             soap->fclosesocket(soap, sk);
+ #ifdef WITH_IPV6
++            if (res->ai_next)
++            {
++              res = res->ai_next;
++              goto again;
++            }
+             freeaddrinfo(ressave);
+ #endif
+             return SOAP_INVALID_SOCKET;
+@@ -4132,6 +4137,11 @@
+             soap_set_sender_error(soap, tcp_error(soap), "connect failed in tcp_connect()", SOAP_TCP_ERROR);
+             soap->fclosesocket(soap, sk);
+ #ifdef WITH_IPV6
++            if (res->ai_next)
++            {
++              res = res->ai_next;
++              goto again;
++            }
+             freeaddrinfo(ressave);
+ #endif
+             return SOAP_INVALID_SOCKET;
+@@ -4146,6 +4156,11 @@
+         soap_set_sender_error(soap, tcp_error(soap), "connect failed in tcp_connect()", SOAP_TCP_ERROR);
+         soap->fclosesocket(soap, sk);
+ #ifdef WITH_IPV6
++        if (res->ai_next)
++        {
++          res = res->ai_next;
++          goto again;
++        }
+         freeaddrinfo(ressave);
+ #endif
+         return SOAP_INVALID_SOCKET;
+diff -ur gsoap-2.8.orig/gsoap/stdsoap2.c gsoap-2.8/gsoap/stdsoap2.c
+--- gsoap-2.8.orig/gsoap/stdsoap2.c	2014-08-24 18:38:55.000000000 +0200
++++ gsoap-2.8/gsoap/stdsoap2.c	2014-09-11 15:37:46.497978168 +0200
+@@ -4122,6 +4122,11 @@
+             soap_set_sender_error(soap, "Timeout", "connect failed in tcp_connect()", SOAP_TCP_ERROR);
+             soap->fclosesocket(soap, sk);
+ #ifdef WITH_IPV6
++            if (res->ai_next)
++            {
++              res = res->ai_next;
++              goto again;
++            }
+             freeaddrinfo(ressave);
+ #endif
+             return SOAP_INVALID_SOCKET;
+@@ -4132,6 +4137,11 @@
+             soap_set_sender_error(soap, tcp_error(soap), "connect failed in tcp_connect()", SOAP_TCP_ERROR);
+             soap->fclosesocket(soap, sk);
+ #ifdef WITH_IPV6
++            if (res->ai_next)
++            {
++              res = res->ai_next;
++              goto again;
++            }
+             freeaddrinfo(ressave);
+ #endif
+             return SOAP_INVALID_SOCKET;
+@@ -4146,6 +4156,11 @@
+         soap_set_sender_error(soap, tcp_error(soap), "connect failed in tcp_connect()", SOAP_TCP_ERROR);
+         soap->fclosesocket(soap, sk);
+ #ifdef WITH_IPV6
++        if (res->ai_next)
++        {
++          res = res->ai_next;
++          goto again;
++        }
+         freeaddrinfo(ressave);
+ #endif
+         return SOAP_INVALID_SOCKET;
+diff -ur gsoap-2.8.orig/gsoap/stdsoap2.cpp gsoap-2.8/gsoap/stdsoap2.cpp
+--- gsoap-2.8.orig/gsoap/stdsoap2.cpp	2014-08-24 18:38:55.000000000 +0200
++++ gsoap-2.8/gsoap/stdsoap2.cpp	2014-09-11 15:37:46.499978145 +0200
+@@ -4122,6 +4122,11 @@
+             soap_set_sender_error(soap, "Timeout", "connect failed in tcp_connect()", SOAP_TCP_ERROR);
+             soap->fclosesocket(soap, sk);
+ #ifdef WITH_IPV6
++            if (res->ai_next)
++            {
++              res = res->ai_next;
++              goto again;
++            }
+             freeaddrinfo(ressave);
+ #endif
+             return SOAP_INVALID_SOCKET;
+@@ -4132,6 +4137,11 @@
+             soap_set_sender_error(soap, tcp_error(soap), "connect failed in tcp_connect()", SOAP_TCP_ERROR);
+             soap->fclosesocket(soap, sk);
+ #ifdef WITH_IPV6
++            if (res->ai_next)
++            {
++              res = res->ai_next;
++              goto again;
++            }
+             freeaddrinfo(ressave);
+ #endif
+             return SOAP_INVALID_SOCKET;
+@@ -4146,6 +4156,11 @@
+         soap_set_sender_error(soap, tcp_error(soap), "connect failed in tcp_connect()", SOAP_TCP_ERROR);
+         soap->fclosesocket(soap, sk);
+ #ifdef WITH_IPV6
++        if (res->ai_next)
++        {
++          res = res->ai_next;
++          goto again;
++        }
+         freeaddrinfo(ressave);
+ #endif
+         return SOAP_INVALID_SOCKET;
+diff -ur gsoap-2.8.orig/gsoap/VisualStudio2005/wsdl2h/wsdl2h/stdsoap2.cpp gsoap-2.8/gsoap/VisualStudio2005/wsdl2h/wsdl2h/stdsoap2.cpp
+--- gsoap-2.8.orig/gsoap/VisualStudio2005/wsdl2h/wsdl2h/stdsoap2.cpp	2014-08-24 18:38:55.000000000 +0200
++++ gsoap-2.8/gsoap/VisualStudio2005/wsdl2h/wsdl2h/stdsoap2.cpp	2014-09-11 15:37:46.502978110 +0200
+@@ -4122,6 +4122,11 @@
+             soap_set_sender_error(soap, "Timeout", "connect failed in tcp_connect()", SOAP_TCP_ERROR);
+             soap->fclosesocket(soap, sk);
+ #ifdef WITH_IPV6
++            if (res->ai_next)
++            {
++              res = res->ai_next;
++              goto again;
++            }
+             freeaddrinfo(ressave);
+ #endif
+             return SOAP_INVALID_SOCKET;
+@@ -4132,6 +4137,11 @@
+             soap_set_sender_error(soap, tcp_error(soap), "connect failed in tcp_connect()", SOAP_TCP_ERROR);
+             soap->fclosesocket(soap, sk);
+ #ifdef WITH_IPV6
++            if (res->ai_next)
++            {
++              res = res->ai_next;
++              goto again;
++            }
+             freeaddrinfo(ressave);
+ #endif
+             return SOAP_INVALID_SOCKET;
+@@ -4146,6 +4156,11 @@
+         soap_set_sender_error(soap, tcp_error(soap), "connect failed in tcp_connect()", SOAP_TCP_ERROR);
+         soap->fclosesocket(soap, sk);
+ #ifdef WITH_IPV6
++        if (res->ai_next)
++        {
++          res = res->ai_next;
++          goto again;
++        }
+         freeaddrinfo(ressave);
+ #endif
+         return SOAP_INVALID_SOCKET;
diff --git a/gsoap.spec b/gsoap.spec
index 17e6817..0ed1897 100644
--- a/gsoap.spec
+++ b/gsoap.spec
@@ -1,7 +1,7 @@
 Summary: Generator Tools for Coding SOAP/XML Web Services in C and C++
 Name: gsoap
 Version: 2.8.16
-Release: 7%{?dist}
+Release: 8%{?dist}
 # Bump the soversion when the new version is not backward compatiple
 %global soversion 4
 
@@ -38,6 +38,8 @@ Patch4: %{name}-default-paths.patch
 Patch5: %{name}-cleanfiles.patch
 # https://sourceforge.net/p/gsoap2/bugs/959/
 Patch6: %{name}-ai-next.patch
+# https://sourceforge.net/p/gsoap2/patches/120/
+Patch7: %{name}-einprogress.patch
 BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
 
 BuildRequires: flex
@@ -85,12 +87,13 @@ gSOAP documentation in html
 %patch4 -p1
 %patch5 -p1
 %patch6 -p1
+%patch7 -p1
 
 # XML files non-executable
 find . -name "*.xml" -exec chmod a-x {} ';'
 
 # we want all txt files to have unix end-of-line encoding
-dos2unix README.txt LICENSE.txt NOTES.txt
+dos2unix -k README.txt LICENSE.txt NOTES.txt
 
 # remove .DS_Stores
 find . -name .DS_Store -exec rm {} ';'
@@ -311,6 +314,9 @@ make check
 %postun -p /sbin/ldconfig
 
 %changelog
+* Thu Sep 11 2014 Mattias Ellert <mattias.ellert at fysast.uu.se> - 2.8.16-8
+- Try next interface also in case of EINPROGRESS
+
 * Mon Aug 25 2014 Mattias Ellert <mattias.ellert at fysast.uu.se> - 2.8.16-7
 - Try next interface on connect failure (backport)
 


More information about the scm-commits mailing list