diff options
author | bnicholes <bnicholes@13f79535-47bb-0310-9956-ffa450edef68> | 2001-08-09 23:26:18 +0000 |
---|---|---|
committer | bnicholes <bnicholes@13f79535-47bb-0310-9956-ffa450edef68> | 2001-08-09 23:26:18 +0000 |
commit | 2b954aedc27284d39a9298620bd7f7cd9d4bbcd0 (patch) | |
tree | 934d21ccec13ac66f610967ce284786469af8856 /network_io | |
parent | aab117ad43db0374b474cceff9fad3b0a0e886d0 (diff) | |
download | libapr-2b954aedc27284d39a9298620bd7f7cd9d4bbcd0.tar.gz |
Implemented apr_getsocketopt() for NetWare
git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@62136 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'network_io')
-rw-r--r-- | network_io/win32/sockopt.c | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/network_io/win32/sockopt.c b/network_io/win32/sockopt.c index 40fab71a9..87000b260 100644 --- a/network_io/win32/sockopt.c +++ b/network_io/win32/sockopt.c @@ -173,6 +173,41 @@ APR_DECLARE(apr_status_t) apr_setsocketopt(apr_socket_t *sock, APR_DECLARE(apr_status_t) apr_getsocketopt(apr_socket_t *sock, apr_int32_t opt, apr_int32_t *on) { +#ifdef NETWARE + int sol_opt = 0; + + switch (opt) { + case APR_SO_TIMEOUT: + /* Convert from milliseconds (windows units) to microseconds + * (APR units) */ + *on = (apr_int32_t)(sock->timeout * 1000); + break; + case APR_SO_DISCONNECTED: + *on = sock->disconnected; + break; + case APR_SO_KEEPALIVE: + sol_opt = SO_KEEPALIVE; + break; + case APR_SO_DEBUG: + sol_opt = SO_DEBUG; + break; + case APR_SO_REUSEADDR: + sol_opt = SO_REUSEADDR; + break; + case APR_SO_NONBLOCK: + case APR_SO_LINGER: + default: + return APR_ENOTIMPL; + break; + } + if (sol_opt) { + int sz = sizeof(apr_int32_t); + + if (getsockopt(sock->sock, SOL_SOCKET, sol_opt, (char *)on, &sz) == -1) { + return apr_get_netos_error(); + } + } +#else switch (opt) { case APR_SO_TIMEOUT: /* Convert from milliseconds (windows units) to microseconds @@ -191,6 +226,7 @@ APR_DECLARE(apr_status_t) apr_getsocketopt(apr_socket_t *sock, return APR_ENOTIMPL; break; } +#endif return APR_SUCCESS; } |