diff options
author | Robert Schuster <theBohemian@gmx.net> | 2006-10-09 11:10:41 +0000 |
---|---|---|
committer | Robert Schuster <theBohemian@gmx.net> | 2006-10-09 11:10:41 +0000 |
commit | e2cea4eadf819ca93ddf99cc91e9be6586c7cbe6 (patch) | |
tree | 38a08cf7356994f79a01da166d8bec229965adbc /native | |
parent | 3aa471f271018e5a6e9012e432e62c8d2976448b (diff) | |
download | classpath-e2cea4eadf819ca93ddf99cc91e9be6586c7cbe6.tar.gz |
2006-10-09 Robert Schuster <robertschuster@fsfe.org>
* native/jni/java-net/gnu_java_net/VMPlainSocketImpl.c:
(Java_gnu_java_net_VMPlainSocketImpl_joinGroup): Properly
convert jstring into char *.
(Java_gnu_java_net_VMPlainSocketImpl_joinGroup6): Dito.
(Java_gnu_java_net_VMPlainSocketImpl_leaveGroup): Dito.
(Java_gnu_java_net_VMPlainSocketImpl_leaveGroup6): Dito.
(getif_address): Added const modifier to second argument.
(getif_index): Dito.
Diffstat (limited to 'native')
-rw-r--r-- | native/jni/java-net/gnu_java_net_VMPlainSocketImpl.c | 33 |
1 files changed, 25 insertions, 8 deletions
diff --git a/native/jni/java-net/gnu_java_net_VMPlainSocketImpl.c b/native/jni/java-net/gnu_java_net_VMPlainSocketImpl.c index 6ebb64fa5..82267f77d 100644 --- a/native/jni/java-net/gnu_java_net_VMPlainSocketImpl.c +++ b/native/jni/java-net/gnu_java_net_VMPlainSocketImpl.c @@ -555,8 +555,8 @@ Java_gnu_java_net_VMPlainSocketImpl_leave6 (JNIEnv *env, #endif /* HAVE_SETSOCKOPT */ } -static uint32_t getif_address (JNIEnv *env, char *ifname); -static int getif_index (JNIEnv *env, char *ifname); +static uint32_t getif_address (JNIEnv *env, const char *ifname); +static int getif_index (JNIEnv *env, const char *ifname); /* * Class: gnu_java_net_VMPlainSocketImpl @@ -572,10 +572,14 @@ Java_gnu_java_net_VMPlainSocketImpl_joinGroup (JNIEnv *env, #ifdef HAVE_SETSOCKOPT struct ip_mreq maddr; jbyte *addr_elems; + const char *str_ifname; if (ifname != NULL) { - maddr.imr_interface.s_addr = getif_address (env, ifname); + str_ifname = JCL_jstring_to_cstring(env, ifname); + maddr.imr_interface.s_addr = getif_address (env, str_ifname); + JCL_free_cstring(env, ifname, str_ifname); + if ((*env)->ExceptionCheck (env)) return; } @@ -593,6 +597,7 @@ Java_gnu_java_net_VMPlainSocketImpl_joinGroup (JNIEnv *env, if (-1 == setsockopt (fd, IPPROTO_IP, IP_ADD_MEMBERSHIP, &maddr, sizeof (struct ip_mreq))) JCL_ThrowException (env, SOCKET_EXCEPTION, strerror (errno)); + #else (void) fd; (void) addr; @@ -617,10 +622,14 @@ Java_gnu_java_net_VMPlainSocketImpl_joinGroup6 (JNIEnv *env, #ifdef HAVE_INET6 struct ipv6_mreq maddr; jbyte *addr_elems; + const char *str_ifname; if (ifname == NULL) { - maddr.ipv6mr_interface = getif_index (env, ifname); + str_ifname = JCL_jstring_to_cstring(env, ifname); + maddr.ipv6mr_interface = getif_index (env, str_ifname); + JCL_free_cstring(env, ifname, str_ifname); + if ((*env)->ExceptionCheck (env)) return; } @@ -666,10 +675,14 @@ Java_gnu_java_net_VMPlainSocketImpl_leaveGroup (JNIEnv *env, #ifdef HAVE_SETSOCKOPT struct ip_mreq maddr; jbyte *addr_elems; + const char *str_ifname; if (ifname != NULL) { - maddr.imr_interface.s_addr = getif_address (env, ifname); + str_ifname = JCL_jstring_to_cstring(env, ifname); + maddr.imr_interface.s_addr = getif_address (env, str_ifname); + JCL_free_cstring(env, ifname, str_ifname); + if ((*env)->ExceptionCheck (env)) return; } @@ -711,10 +724,14 @@ Java_gnu_java_net_VMPlainSocketImpl_leaveGroup6 (JNIEnv *env, #ifdef HAVE_INET6 struct ipv6_mreq maddr; jbyte *addr_elems; + const char *str_ifname; if (ifname == NULL) { - maddr.ipv6mr_interface = getif_index (env, ifname); + str_ifname = JCL_jstring_to_cstring(env, ifname); + maddr.ipv6mr_interface = getif_index (env, str_ifname); + JCL_free_cstring(env, ifname, str_ifname); + if ((*env)->ExceptionCheck (env)) return; } @@ -747,7 +764,7 @@ Java_gnu_java_net_VMPlainSocketImpl_leaveGroup6 (JNIEnv *env, } static uint32_t -getif_address (JNIEnv *env, char *ifname) +getif_address (JNIEnv *env, const char *ifname) { #ifdef HAVE_GETIFADDRS struct ifaddrs *ifaddrs, *i; @@ -789,7 +806,7 @@ getif_address (JNIEnv *env, char *ifname) } static int -getif_index (JNIEnv *env, char *ifname) +getif_index (JNIEnv *env, const char *ifname) { #ifdef HAVE_GETIFADDRS struct ifaddrs *ifaddrs, *i; |