summaryrefslogtreecommitdiff
path: root/network_io/unix/sockaddr.c
diff options
context:
space:
mode:
authordreid <dreid@13f79535-47bb-0310-9956-ffa450edef68>2000-11-08 14:47:05 +0000
committerdreid <dreid@13f79535-47bb-0310-9956-ffa450edef68>2000-11-08 14:47:05 +0000
commit6046593ae0dcb7adcdf2faf88ec5f49627fb11fe (patch)
tree7515ccc793873fa60e6bb1b77e396ff8ce6732cd /network_io/unix/sockaddr.c
parentf0b6226385e07230d9d2c06717a002e5ab2c80a7 (diff)
downloadlibapr-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.c47
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;
}