diff options
author | dreid <dreid@13f79535-47bb-0310-9956-ffa450edef68> | 2000-11-08 14:47:05 +0000 |
---|---|---|
committer | dreid <dreid@13f79535-47bb-0310-9956-ffa450edef68> | 2000-11-08 14:47:05 +0000 |
commit | 6046593ae0dcb7adcdf2faf88ec5f49627fb11fe (patch) | |
tree | 7515ccc793873fa60e6bb1b77e396ff8ce6732cd /network_io/unix/sockaddr.c | |
parent | f0b6226385e07230d9d2c06717a002e5ab2c80a7 (diff) | |
download | libapr-6046593ae0dcb7adcdf2faf88ec5f49627fb11fe.tar.gz |
This adds the APR_LOCAL/APR_REMOTE to APR and changes the apr_get/set_port
functions to use it. This is onyl the start and I'll pause a while before
I continue in case people really hate this. The patch can be backed out and
all evidence will be removed, but I think this makes maintaining/developing
the code easier in the long term.
git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@60647 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'network_io/unix/sockaddr.c')
-rw-r--r-- | network_io/unix/sockaddr.c | 47 |
1 files changed, 20 insertions, 27 deletions
diff --git a/network_io/unix/sockaddr.c b/network_io/unix/sockaddr.c index 70c81c390..1b4275716 100644 --- a/network_io/unix/sockaddr.c +++ b/network_io/unix/sockaddr.c @@ -55,22 +55,18 @@ #include "networkio.h" #include "apr_strings.h" -apr_status_t apr_set_local_port(apr_socket_t *sock, apr_port_t port) +apr_status_t apr_set_port(apr_socket_t *sock, apr_interface_e which, + apr_port_t port) { - sock->local_addr->sin_port = htons(port); + if (which == APR_LOCAL) + sock->local_addr->sin_port = htons(port); + else if (which == APR_REMOTE) + sock->remote_addr->sin_port = htons(port); + else + return APR_EINVAL; return APR_SUCCESS; } - - -apr_status_t apr_set_remote_port(apr_socket_t *sock, apr_port_t port) -{ - sock->remote_addr->sin_port = htons(port); - return APR_SUCCESS; -} - - - static apr_status_t get_local_addr(apr_socket_t *sock) { apr_socklen_t namelen = sizeof(*sock->local_addr); @@ -87,25 +83,22 @@ static apr_status_t get_local_addr(apr_socket_t *sock) -apr_status_t apr_get_local_port(apr_port_t *port, apr_socket_t *sock) +apr_status_t apr_get_port(apr_port_t *port, apr_interface_e which, apr_socket_t *sock) { - if (sock->local_port_unknown) { - apr_status_t rv = get_local_addr(sock); + if (which == APR_LOCAL){ + if (sock->local_port_unknown) { + apr_status_t rv = get_local_addr(sock); - if (rv != APR_SUCCESS) { - return rv; + if (rv != APR_SUCCESS) { + return rv; + } } - } - *port = ntohs(sock->local_addr->sin_port); - return APR_SUCCESS; -} - - - -apr_status_t apr_get_remote_port(apr_port_t *port, apr_socket_t *sock) -{ - *port = ntohs(sock->remote_addr->sin_port); + *port = ntohs(sock->local_addr->sin_port); + } else if (which == APR_REMOTE) + *port = ntohs(sock->remote_addr->sin_port); + else + return APR_EINVAL; return APR_SUCCESS; } |