Blob Blame History Raw
diff -ur gsoap-2.8.17.orig/gsoap/samples/calc_vs2005/calc_vs2005/stdsoap2.cpp gsoap-2.8.17/gsoap/samples/calc_vs2005/calc_vs2005/stdsoap2.cpp
--- gsoap-2.8.17.orig/gsoap/samples/calc_vs2005/calc_vs2005/stdsoap2.cpp	2013-12-18 20:58:36.000000000 +0100
+++ gsoap-2.8.17/gsoap/samples/calc_vs2005/calc_vs2005/stdsoap2.cpp	2014-08-25 09:52:17.739045215 +0200
@@ -4089,6 +4089,13 @@
     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)
+      { soap->fclosesocket(soap, sk);
+	res = res->ai_next;
+	goto again;
+      }
+#endif
 #ifndef WITH_LEAN
       if (err == SOAP_EADDRINUSE)
       { soap->fclosesocket(soap, sk);
diff -ur gsoap-2.8.17.orig/gsoap/samples/calc_vs2005/calc_vs2005/stdsoap2.h gsoap-2.8.17/gsoap/samples/calc_vs2005/calc_vs2005/stdsoap2.h
--- gsoap-2.8.17.orig/gsoap/samples/calc_vs2005/calc_vs2005/stdsoap2.h	2013-12-18 20:58:36.000000000 +0100
+++ gsoap-2.8.17/gsoap/samples/calc_vs2005/calc_vs2005/stdsoap2.h	2014-08-25 09:53:42.186056125 +0200
@@ -972,11 +972,13 @@
 # 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
diff -ur gsoap-2.8.17.orig/gsoap/stdsoap2.c gsoap-2.8.17/gsoap/stdsoap2.c
--- gsoap-2.8.17.orig/gsoap/stdsoap2.c	2013-12-18 20:58:38.000000000 +0100
+++ gsoap-2.8.17/gsoap/stdsoap2.c	2014-08-25 09:52:17.739045215 +0200
@@ -4089,6 +4089,13 @@
     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)
+      { soap->fclosesocket(soap, sk);
+	res = res->ai_next;
+	goto again;
+      }
+#endif
 #ifndef WITH_LEAN
       if (err == SOAP_EADDRINUSE)
       { soap->fclosesocket(soap, sk);
diff -ur gsoap-2.8.17.orig/gsoap/stdsoap2.cpp gsoap-2.8.17/gsoap/stdsoap2.cpp
--- gsoap-2.8.17.orig/gsoap/stdsoap2.cpp	2013-12-18 20:58:38.000000000 +0100
+++ gsoap-2.8.17/gsoap/stdsoap2.cpp	2014-08-25 09:52:17.739045215 +0200
@@ -4089,6 +4089,13 @@
     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)
+      { soap->fclosesocket(soap, sk);
+	res = res->ai_next;
+	goto again;
+      }
+#endif
 #ifndef WITH_LEAN
       if (err == SOAP_EADDRINUSE)
       { soap->fclosesocket(soap, sk);
diff -ur gsoap-2.8.17.orig/gsoap/stdsoap2.h gsoap-2.8.17/gsoap/stdsoap2.h
--- gsoap-2.8.17.orig/gsoap/stdsoap2.h	2013-12-18 20:58:38.000000000 +0100
+++ gsoap-2.8.17/gsoap/stdsoap2.h	2014-08-25 09:53:42.186056125 +0200
@@ -972,11 +972,13 @@
 # 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
diff -ur gsoap-2.8.17.orig/gsoap/VisualStudio2005/wsdl2h/wsdl2h/stdsoap2.cpp gsoap-2.8.17/gsoap/VisualStudio2005/wsdl2h/wsdl2h/stdsoap2.cpp
--- gsoap-2.8.17.orig/gsoap/VisualStudio2005/wsdl2h/wsdl2h/stdsoap2.cpp	2013-12-18 20:58:38.000000000 +0100
+++ gsoap-2.8.17/gsoap/VisualStudio2005/wsdl2h/wsdl2h/stdsoap2.cpp	2014-08-25 09:52:17.739045215 +0200
@@ -4089,6 +4089,13 @@
     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)
+      { soap->fclosesocket(soap, sk);
+	res = res->ai_next;
+	goto again;
+      }
+#endif
 #ifndef WITH_LEAN
       if (err == SOAP_EADDRINUSE)
       { soap->fclosesocket(soap, sk);
diff -ur gsoap-2.8.17.orig/gsoap/VisualStudio2005/wsdl2h/wsdl2h/stdsoap2.h gsoap-2.8.17/gsoap/VisualStudio2005/wsdl2h/wsdl2h/stdsoap2.h
--- gsoap-2.8.17.orig/gsoap/VisualStudio2005/wsdl2h/wsdl2h/stdsoap2.h	2013-12-18 20:58:38.000000000 +0100
+++ gsoap-2.8.17/gsoap/VisualStudio2005/wsdl2h/wsdl2h/stdsoap2.h	2014-08-25 09:53:42.186056125 +0200
@@ -972,11 +972,13 @@
 # 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