src/windows/native/java/net/NetworkInterface_winXP.c

Print this page

        

*** 434,444 **** jint bind_index; /* * Create a NetworkInterface object and populate it */ ! netifObj = (*env)->NewObject(env, ni_class, ni_ctor); name = (*env)->NewStringUTF(env, ifs->name); if (ifs->dNameIsUnicode) { displayName = (*env)->NewString(env, (PWCHAR)ifs->displayName, wcslen ((PWCHAR)ifs->displayName)); } else { displayName = (*env)->NewStringUTF(env, ifs->displayName); --- 434,444 ---- jint bind_index; /* * Create a NetworkInterface object and populate it */ ! netifObj = (*env)->NewObject(env, ni_class, ni_ctrID); name = (*env)->NewStringUTF(env, ifs->name); if (ifs->dNameIsUnicode) { displayName = (*env)->NewString(env, (PWCHAR)ifs->displayName, wcslen ((PWCHAR)ifs->displayName)); } else { displayName = (*env)->NewStringUTF(env, ifs->displayName);
*** 460,470 **** free_netaddr(netaddrP); return NULL; } } ! addrArr = (*env)->NewObjectArray(env, netaddrCount, ni_iacls, NULL); if (addrArr == NULL) { return NULL; } bindsArr = (*env)->NewObjectArray(env, netaddrCount, ni_ibcls, NULL); --- 460,470 ---- free_netaddr(netaddrP); return NULL; } } ! addrArr = (*env)->NewObjectArray(env, netaddrCount, ia_class, NULL); if (addrArr == NULL) { return NULL; } bindsArr = (*env)->NewObjectArray(env, netaddrCount, ni_ibcls, NULL);
*** 478,514 **** bind_index = 0; while (addrs != NULL) { jobject iaObj, ia2Obj; jobject ibObj = NULL; if (addrs->addr.him.sa_family == AF_INET) { ! iaObj = (*env)->NewObject(env, ni_ia4cls, ni_ia4Ctor); if (iaObj == NULL) { return NULL; } /* default ctor will set family to AF_INET */ ! (*env)->SetIntField(env, iaObj, ni_iaAddr, ntohl(addrs->addr.him4.sin_addr.s_addr)); ibObj = (*env)->NewObject(env, ni_ibcls, ni_ibctrID); if (ibObj == NULL) { free_netaddr(netaddrP); return NULL; } (*env)->SetObjectField(env, ibObj, ni_ibaddressID, iaObj); ! ia2Obj = (*env)->NewObject(env, ni_ia4cls, ni_ia4Ctor); if (ia2Obj == NULL) { free_netaddr(netaddrP); return NULL; } ! (*env)->SetIntField(env, ia2Obj, ni_iaAddr, ntohl(addrs->brdcast.him4.sin_addr.s_addr)); (*env)->SetObjectField(env, ibObj, ni_ibbroadcastID, ia2Obj); (*env)->SetShortField(env, ibObj, ni_ibmaskID, addrs->mask); (*env)->SetObjectArrayElement(env, bindsArr, bind_index++, ibObj); } else /* AF_INET6 */ { int scope; ! iaObj = (*env)->NewObject(env, ni_ia6cls, ni_ia6ctrID); if (iaObj) { jbyteArray ipaddress = (*env)->NewByteArray(env, 16); if (ipaddress == NULL) { return NULL; } --- 478,514 ---- bind_index = 0; while (addrs != NULL) { jobject iaObj, ia2Obj; jobject ibObj = NULL; if (addrs->addr.him.sa_family == AF_INET) { ! iaObj = (*env)->NewObject(env, ia4_class, ia4_ctrID); if (iaObj == NULL) { return NULL; } /* default ctor will set family to AF_INET */ ! (*env)->SetIntField(env, iaObj, ia_addressID, ntohl(addrs->addr.him4.sin_addr.s_addr)); ibObj = (*env)->NewObject(env, ni_ibcls, ni_ibctrID); if (ibObj == NULL) { free_netaddr(netaddrP); return NULL; } (*env)->SetObjectField(env, ibObj, ni_ibaddressID, iaObj); ! ia2Obj = (*env)->NewObject(env, ia4_class, ia4_ctrID); if (ia2Obj == NULL) { free_netaddr(netaddrP); return NULL; } ! (*env)->SetIntField(env, ia2Obj, ia_addressID, ntohl(addrs->brdcast.him4.sin_addr.s_addr)); (*env)->SetObjectField(env, ibObj, ni_ibbroadcastID, ia2Obj); (*env)->SetShortField(env, ibObj, ni_ibmaskID, addrs->mask); (*env)->SetObjectArrayElement(env, bindsArr, bind_index++, ibObj); } else /* AF_INET6 */ { int scope; ! iaObj = (*env)->NewObject(env, ia6_class, ia6_ctrID); if (iaObj) { jbyteArray ipaddress = (*env)->NewByteArray(env, 16); if (ipaddress == NULL) { return NULL; }
*** 518,528 **** if (scope != 0) { /* zero is default value, no need to set */ (*env)->SetIntField(env, iaObj, ia6_scopeidID, scope); (*env)->SetBooleanField(env, iaObj, ia6_scopeidsetID, JNI_TRUE); (*env)->SetObjectField(env, iaObj, ia6_scopeifnameID, netifObj); } ! (*env)->SetObjectField(env, iaObj, ni_ia6ipaddressID, ipaddress); ibObj = (*env)->NewObject(env, ni_ibcls, ni_ibctrID); if (ibObj == NULL) { free_netaddr(netaddrP); return NULL; } --- 518,528 ---- if (scope != 0) { /* zero is default value, no need to set */ (*env)->SetIntField(env, iaObj, ia6_scopeidID, scope); (*env)->SetBooleanField(env, iaObj, ia6_scopeidsetID, JNI_TRUE); (*env)->SetObjectField(env, iaObj, ia6_scopeifnameID, netifObj); } ! (*env)->SetObjectField(env, iaObj, ia6_ipaddressID, ipaddress); ibObj = (*env)->NewObject(env, ni_ibcls, ni_ibctrID); if (ibObj == NULL) { free_netaddr(netaddrP); return NULL; }