[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