# HG changeset patch # User chegar # Date 1331738092 0 # Node ID 68ba84718a1804456c55a4460f7ae7b42b51af0d # Parent 529bdd70a10a7bebaa96dc0a7a72e55a2dacfbcc 7152948: DatagramDispatcher.c should memset msghdr to make it portable to other platforms Reviewed-by: alanb, chegar Contributed-by: Shi Jun Zhang diff -r 529bdd70a10a -r 68ba84718a18 jdk/src/solaris/native/sun/nio/ch/DatagramDispatcher.c --- a/jdk/src/solaris/native/sun/nio/ch/DatagramDispatcher.c Tue Mar 13 15:44:26 2012 -0700 +++ b/jdk/src/solaris/native/sun/nio/ch/DatagramDispatcher.c Wed Mar 14 15:14:52 2012 +0000 @@ -36,6 +36,7 @@ #include #include "nio_util.h" +#include JNIEXPORT jint JNICALL Java_sun_nio_ch_DatagramDispatcher_read0(JNIEnv *env, jclass clazz, @@ -60,23 +61,14 @@ ssize_t result = 0; struct iovec *iov = (struct iovec *)jlong_to_ptr(address); struct msghdr m; - if (len > 16) { - len = 16; + if (len > IOV_MAX) { + len = IOV_MAX; } - m.msg_name = NULL; - m.msg_namelen = 0; + // initialize the message + memset(&m, 0, sizeof(m)); m.msg_iov = iov; m.msg_iovlen = len; -#ifdef __solaris__ - m.msg_accrights = NULL; - m.msg_accrightslen = 0; -#endif - -#if defined(__linux__) || defined(_ALLBSD_SOURCE) - m.msg_control = NULL; - m.msg_controllen = 0; -#endif result = recvmsg(fd, &m, 0); if (result < 0 && errno == ECONNREFUSED) { @@ -108,23 +100,14 @@ struct iovec *iov = (struct iovec *)jlong_to_ptr(address); struct msghdr m; ssize_t result = 0; - if (len > 16) { - len = 16; + if (len > IOV_MAX) { + len = IOV_MAX; } - m.msg_name = NULL; - m.msg_namelen = 0; + // initialize the message + memset(&m, 0, sizeof(m)); m.msg_iov = iov; m.msg_iovlen = len; -#ifdef __solaris__ - m.msg_accrights = NULL; - m.msg_accrightslen = 0; -#endif - -#if defined(__linux__) || defined(_ALLBSD_SOURCE) - m.msg_control = NULL; - m.msg_controllen = 0; -#endif result = sendmsg(fd, &m, 0); if (result < 0 && errno == ECONNREFUSED) {