summaryrefslogtreecommitdiff
path: root/network_io
diff options
context:
space:
mode:
authorcovener <covener@13f79535-47bb-0310-9956-ffa450edef68>2014-10-27 17:50:14 +0000
committercovener <covener@13f79535-47bb-0310-9956-ffa450edef68>2014-10-27 17:50:14 +0000
commit71fd3cb1b170537e29160cdb481c332508e2d0b3 (patch)
tree680c974160e51003f00e09b4c9717a7bc0b25f4b /network_io
parent5d9ca6e2ba2b5d3eb0a1fb4523255219be914a80 (diff)
downloadlibapr-71fd3cb1b170537e29160cdb481c332508e2d0b3.tar.gz
merge r1634615 from trunk:
*) On z/OS, apr_sockaddr_info_get() with family == APR_UNSPEC was not returning IPv4 addresses if any IPv6 addresses were returned. git-svn-id: http://svn.apache.org/repos/asf/apr/apr/branches/1.6.x@1634618 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'network_io')
-rw-r--r--network_io/unix/sockaddr.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/network_io/unix/sockaddr.c b/network_io/unix/sockaddr.c
index 5b7859729..1500861af 100644
--- a/network_io/unix/sockaddr.c
+++ b/network_io/unix/sockaddr.c
@@ -333,6 +333,16 @@ static apr_status_t call_resolver(apr_sockaddr_t **sa,
hints.ai_flags = AI_ADDRCONFIG;
}
#endif
+
+#ifdef __MVS__
+ /* z/OS will not return IPv4 address under AF_UNSPEC if any IPv6 results
+ * are returned, w/o AI_ALL.
+ */
+ if (family == APR_UNSPEC) {
+ hints.ai_flags |= AI_ALL;
+ }
+#endif
+
if(hostname == NULL) {
#ifdef AI_PASSIVE
/* If hostname is NULL, assume we are trying to bind to all