On Win32, the third setsockopt parameter has type (char *) while on POSIX systems it is (void *). However, given that it is a no-op cast to go from a char pointer to a void pointer, we can cast to a char pointer (with a possible const modifier) on all platforms and satisfy the compiler.
Signed-off-by: Dan McGee <d...@archlinux.org> --- src/output/raop_output_plugin.c | 4 ++-- src/socket_util.c | 22 ++++------------------ 2 files changed, 6 insertions(+), 20 deletions(-) diff --git a/src/output/raop_output_plugin.c b/src/output/raop_output_plugin.c index dce7b5b..ac841e6 100644 --- a/src/output/raop_output_plugin.c +++ b/src/output/raop_output_plugin.c @@ -328,7 +328,7 @@ open_udp_socket(char *hostname, unsigned short *port, GError **error_r) { int sd; - int size = 30000; + const int size = 30000; /* socket creation */ sd = socket(PF_INET, SOCK_DGRAM, 0); @@ -338,7 +338,7 @@ open_udp_socket(char *hostname, unsigned short *port, g_strerror(errno)); return -1; } - if (setsockopt(sd, SOL_SOCKET, SO_SNDBUF, (void *) &size, sizeof(size)) < 0) { + if (setsockopt(sd, SOL_SOCKET, SO_SNDBUF, (const char *) &size, sizeof(size)) < 0) { g_set_error(error_r, raop_output_quark(), errno, "failed to set UDP buffer size: %s", g_strerror(errno)); diff --git a/src/socket_util.c b/src/socket_util.c index d64d0eb..6111af4 100644 --- a/src/socket_util.c +++ b/src/socket_util.c @@ -100,9 +100,6 @@ socket_bind_listen(int domain, int type, int protocol, { int fd, ret; const int reuse = 1; -#ifdef HAVE_STRUCT_UCRED - int passcred = 1; -#endif fd = socket_cloexec_nonblock(domain, type, protocol); if (fd < 0) { @@ -111,14 +108,8 @@ socket_bind_listen(int domain, int type, int protocol, return -1; } -#ifdef WIN32 - const char *optval = (const char *)&reuse; -#else - const void *optval = &reuse; -#endif - ret = setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, - optval, sizeof(reuse)); + (const char *) &reuse, sizeof(reuse)); if (ret < 0) { g_set_error(error, listen_quark(), errno, "setsockopt() failed: %s", g_strerror(errno)); @@ -143,7 +134,8 @@ socket_bind_listen(int domain, int type, int protocol, } #ifdef HAVE_STRUCT_UCRED - setsockopt(fd, SOL_SOCKET, SO_PASSCRED, &passcred, sizeof(passcred)); + setsockopt(fd, SOL_SOCKET, SO_PASSCRED, + (const char *) &reuse, sizeof(reuse)); #endif return fd; @@ -155,13 +147,7 @@ socket_keepalive(int fd) const int reuse = 1; int ret; -#ifdef WIN32 - const char *optval = (const char *)&reuse; -#else - const void *optval = &reuse; -#endif - ret = setsockopt(fd, SOL_SOCKET, SO_KEEPALIVE, - optval, sizeof(reuse)); + (const char *) &reuse, sizeof(reuse)); return ret == 0 ? true : false; } -- 1.7.6.1 ------------------------------------------------------------------------------ BlackBerry® DevCon Americas, Oct. 18-20, San Francisco, CA Learn about the latest advances in developing for the BlackBerry® mobile platform with sessions, labs & more. See new tools and technologies. Register for BlackBerry® DevCon today! http://p.sf.net/sfu/rim-devcon-copy1 _______________________________________________ Musicpd-dev-team mailing list Musicpd-dev-team@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/musicpd-dev-team