1 /* class: java/net/InetAddressImpl */
3 #include <netinet/in.h>
9 * Class: java/net/InetAddressImpl
10 * Method: getHostByAddr
11 * Signature: (I)Ljava/lang/String;
13 JNIEXPORT struct java_lang_String* JNICALL Java_java_net_InetAddressImpl_getHostByAddr (JNIEnv *env , struct java_net_InetAddressImpl* this , s4 addr)
18 log_text("Java_java_net_InetAddressImpl_getHostByAddr called");
21 ent = gethostbyaddr((char*)&addr, sizeof(s4), AF_INET);
23 exceptionptr = native_new_and_init (class_java_net_UnknownHostException);
27 return (java_lang_String*)javastring_new_char((char*)ent->h_name);
31 * Class: java/net/InetAddressImpl
32 * Method: getInetFamily
35 JNIEXPORT s4 JNICALL Java_java_net_InetAddressImpl_getInetFamily (JNIEnv *env , struct java_net_InetAddressImpl* this )
38 log_text("Java_java_net_InetAddressImpl_getInetFamily called");
44 * Class: java/net/InetAddressImpl
45 * Method: getLocalHostName
46 * Signature: ()Ljava/lang/String;
48 JNIEXPORT struct java_lang_String* JNICALL Java_java_net_InetAddressImpl_getLocalHostName (JNIEnv *env , struct java_net_InetAddressImpl* this )
50 char hostname[HOSTNMSZ];
53 log_text("Java_java_net_InetAddressImpl_getLocalHostName called");
55 if (gethostname(hostname, HOSTNMSZ-1) < 0) {
56 return (java_lang_String*)javastring_new_char("localhost");
58 return (java_lang_String*)javastring_new_char(hostname);
62 * Class: java/net/InetAddressImpl
63 * Method: lookupAllHostAddr
64 * Signature: (Ljava/lang/String;)[[B
66 JNIEXPORT java_arrayarray* JNICALL Java_java_net_InetAddressImpl_lookupAllHostAddr (JNIEnv *env , struct java_net_InetAddressImpl* this , struct java_lang_String* str)
70 java_arrayarray *array;
73 constant_arraydescriptor arraydesc;
76 log_text("Java_java_net_InetAddressImpl_lookupAllHostAddr called");
78 name = javastring_tochar((java_objectheader*)str);
80 ent = gethostbyname(name);
82 exceptionptr = native_new_and_init (class_java_net_UnknownHostException);
86 for (alength = 0; ent->h_addr_list[alength]; alength++)
89 arraydesc.arraytype = ARRAYTYPE_BYTE;
90 array = builtin_newarray_array(alength, &arraydesc);
93 for (i = 0; i < alength; i++) {
96 /* Copy in the network address */
97 obj = builtin_newarray_byte(sizeof(s4));
99 *(s4*)obj->data = *(s4*)ent->h_addr_list[i];
100 array->data[i] = (java_arrayheader*)obj;
107 * Class: java/net/InetAddressImpl
108 * Method: makeAnyLocalAddress
109 * Signature: (Ljava/net/InetAddress;)V
111 JNIEXPORT void JNICALL Java_java_net_InetAddressImpl_makeAnyLocalAddress (JNIEnv *env , struct java_net_InetAddressImpl* this , struct java_net_InetAddress* par1)
114 log_text("Java_java_net_InetAddressImpl_makeAnyLocalAddress called");
116 /* par1->hostName = 0; */
117 par1->address = htonl(INADDR_ANY);
118 par1->family = AF_INET;