94 extern jfieldID iac_addressID; |
94 extern jfieldID iac_addressID; |
95 extern jfieldID iac_familyID; |
95 extern jfieldID iac_familyID; |
96 |
96 |
97 void setInetAddress_addr(JNIEnv *env, jobject iaObj, int address) { |
97 void setInetAddress_addr(JNIEnv *env, jobject iaObj, int address) { |
98 jobject holder; |
98 jobject holder; |
99 init(env); |
99 initInetAddrs(env); |
100 holder = (*env)->GetObjectField(env, iaObj, ia_holderID); |
100 holder = (*env)->GetObjectField(env, iaObj, ia_holderID); |
101 (*env)->SetIntField(env, holder, iac_addressID, address); |
101 (*env)->SetIntField(env, holder, iac_addressID, address); |
102 } |
102 } |
103 |
103 |
104 void setInetAddress_family(JNIEnv *env, jobject iaObj, int family) { |
104 void setInetAddress_family(JNIEnv *env, jobject iaObj, int family) { |
105 jobject holder; |
105 jobject holder; |
106 init(env); |
106 initInetAddrs(env); |
107 holder = (*env)->GetObjectField(env, iaObj, ia_holderID); |
107 holder = (*env)->GetObjectField(env, iaObj, ia_holderID); |
108 (*env)->SetIntField(env, holder, iac_familyID, family); |
108 (*env)->SetIntField(env, holder, iac_familyID, family); |
109 } |
109 } |
110 |
110 |
111 void setInetAddress_hostName(JNIEnv *env, jobject iaObj, jobject host) { |
111 void setInetAddress_hostName(JNIEnv *env, jobject iaObj, jobject host) { |
112 jobject holder; |
112 jobject holder; |
113 init(env); |
113 initInetAddrs(env); |
114 holder = (*env)->GetObjectField(env, iaObj, ia_holderID); |
114 holder = (*env)->GetObjectField(env, iaObj, ia_holderID); |
115 (*env)->SetObjectField(env, holder, iac_hostNameID, host); |
115 (*env)->SetObjectField(env, holder, iac_hostNameID, host); |
116 } |
116 } |
117 |
117 |
118 int getInetAddress_addr(JNIEnv *env, jobject iaObj) { |
118 int getInetAddress_addr(JNIEnv *env, jobject iaObj) { |
119 jobject holder; |
119 jobject holder; |
120 init(env); |
120 initInetAddrs(env); |
121 holder = (*env)->GetObjectField(env, iaObj, ia_holderID); |
121 holder = (*env)->GetObjectField(env, iaObj, ia_holderID); |
122 return (*env)->GetIntField(env, holder, iac_addressID); |
122 return (*env)->GetIntField(env, holder, iac_addressID); |
123 } |
123 } |
124 |
124 |
125 int getInetAddress_family(JNIEnv *env, jobject iaObj) { |
125 int getInetAddress_family(JNIEnv *env, jobject iaObj) { |
126 jobject holder; |
126 jobject holder; |
127 init(env); |
127 |
|
128 initInetAddrs(env); |
128 holder = (*env)->GetObjectField(env, iaObj, ia_holderID); |
129 holder = (*env)->GetObjectField(env, iaObj, ia_holderID); |
129 return (*env)->GetIntField(env, holder, iac_familyID); |
130 return (*env)->GetIntField(env, holder, iac_familyID); |
130 } |
131 } |
131 |
132 |
132 jobject getInetAddress_hostName(JNIEnv *env, jobject iaObj) { |
133 jobject getInetAddress_hostName(JNIEnv *env, jobject iaObj) { |
133 jobject holder; |
134 jobject holder; |
134 init(env); |
135 initInetAddrs(env); |
135 holder = (*env)->GetObjectField(env, iaObj, ia_holderID); |
136 holder = (*env)->GetObjectField(env, iaObj, ia_holderID); |
136 return (*env)->GetObjectField(env, holder, iac_hostNameID); |
137 return (*env)->GetObjectField(env, holder, iac_hostNameID); |
137 } |
138 } |
138 |
139 |
139 JNIEXPORT jobject JNICALL |
140 JNIEXPORT jobject JNICALL |
140 NET_SockaddrToInetAddress(JNIEnv *env, struct sockaddr *him, int *port) { |
141 NET_SockaddrToInetAddress(JNIEnv *env, struct sockaddr *him, int *port) { |
141 jobject iaObj; |
142 jobject iaObj; |
142 init(env); |
143 initInetAddrs(env); |
143 #ifdef AF_INET6 |
144 #ifdef AF_INET6 |
144 if (him->sa_family == AF_INET6) { |
145 if (him->sa_family == AF_INET6) { |
145 jbyteArray ipaddress; |
146 jbyteArray ipaddress; |
146 #ifdef WIN32 |
147 #ifdef WIN32 |
147 struct SOCKADDR_IN6 *him6 = (struct SOCKADDR_IN6 *)him; |
148 struct SOCKADDR_IN6 *him6 = (struct SOCKADDR_IN6 *)him; |