summaryrefslogtreecommitdiff
path: root/network_io
diff options
context:
space:
mode:
authorwrowe <wrowe@13f79535-47bb-0310-9956-ffa450edef68>2006-11-28 21:31:34 +0000
committerwrowe <wrowe@13f79535-47bb-0310-9956-ffa450edef68>2006-11-28 21:31:34 +0000
commitf99b4562734620e8396a0d8822a03bf5273dc660 (patch)
tree475f7ae02cb2d880c962af07e479a45989e1f040 /network_io
parenta69664bccc79cfbd05c54a7bed208046534490a1 (diff)
downloadlibapr-f99b4562734620e8396a0d8822a03bf5273dc660.tar.gz
Sync OS2 unknown local_port flags to unix src.
Reviewed by wrowe and jorton Partial backport of 480212 git-svn-id: http://svn.apache.org/repos/asf/apr/apr/branches/0.9.x@480216 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'network_io')
-rw-r--r--network_io/os2/sockets.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/network_io/os2/sockets.c b/network_io/os2/sockets.c
index 2c1b249ec..381966425 100644
--- a/network_io/os2/sockets.c
+++ b/network_io/os2/sockets.c
@@ -140,6 +140,10 @@ APR_DECLARE(apr_status_t) apr_socket_bind(apr_socket_t *sock,
return APR_OS2_STATUS(sock_errno());
else {
sock->local_addr = sa;
+ /* XXX IPv6 - this assumes sin_port and sin6_port at same offset */
+ if (sock->local_addr->sa.sin.sin_port == 0) { /* no need for ntohs() when comparing w/ 0 */
+ sock->local_port_unknown = 1; /* kernel got us an ephemeral port */
+ }
return APR_SUCCESS;
}
}