jwoolley 01/08/07 22:48:58
Modified: network_io/unix sockets.c
Log:
Clean up two warnings:
Warning #1 may or may not have ever existed (my mind is a blur), but this
change seems to be the most sensible way to go anyhow. The len parameter
to getsockopt() seems to most want to be an apr_socklen_t in order to get
along with all platforms.
Warning #2 I definitely saw on Solaris 2.6, which was that parm 4 to
getsockopt() was an incompatible pointer type. That's funky, because we
were passing in an int* to a function that generally expects a void*. Right?
Wrong, not in this case. Solaris 2.6 ifndef _XPG4_2 (and possibly Win32
as well according to msdn.microsoft.com) expect a char*! That's wacky.
Anyway, casting the int* to a char* makes these platforms happy (ugly though
it is), and the sane platforms that just take a void* could care less
either way.
Revision Changes Path
1.87 +2 -2 apr/network_io/unix/sockets.c
Index: sockets.c
===================================================================
RCS file: /home/cvs/apr/network_io/unix/sockets.c,v
retrieving revision 1.86
retrieving revision 1.87
diff -u -d -u -r1.86 -r1.87
--- sockets.c 2001/08/08 00:30:17 1.86
+++ sockets.c 2001/08/08 05:48:58 1.87
@@ -274,13 +274,13 @@
*/
if (rc == -1 && (errno == EINPROGRESS || errno == EALREADY) &&
sock->timeout != 0) {
int error;
- apr_size_t len = sizeof(error);
+ apr_socklen_t len = sizeof(error);
rc = apr_wait_for_io_or_timeout(sock, 0);
if (rc != APR_SUCCESS) {
return rc;
}
- if ((rc = getsockopt(sock->socketdes, SOL_SOCKET, SO_ERROR, &error,
&len)) < 0) {
+ if ((rc = getsockopt(sock->socketdes, SOL_SOCKET, SO_ERROR, (char
*)&error, &len)) < 0) {
return errno;
}
if (error) {