Path: blob/master/src/java.base/share/native/libnet/InetAddress.c
41152 views
/*1* Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved.2* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.3*4* This code is free software; you can redistribute it and/or modify it5* under the terms of the GNU General Public License version 2 only, as6* published by the Free Software Foundation. Oracle designates this7* particular file as subject to the "Classpath" exception as provided8* by Oracle in the LICENSE file that accompanied this code.9*10* This code is distributed in the hope that it will be useful, but WITHOUT11* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or12* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License13* version 2 for more details (a copy is included in the LICENSE file that14* accompanied this code).15*16* You should have received a copy of the GNU General Public License version17* 2 along with this work; if not, write to the Free Software Foundation,18* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.19*20* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA21* or visit www.oracle.com if you need additional information or have any22* questions.23*/2425#include <string.h>2627#include "java_net_InetAddress.h"28#include "net_util.h"2930/************************************************************************31* InetAddress32*/3334jclass ia_class;35jclass iac_class;36jfieldID ia_holderID;37jfieldID iac_addressID;38jfieldID iac_familyID;39jfieldID iac_hostNameID;40jfieldID iac_origHostNameID;41jfieldID ia_preferIPv6AddressID;4243static int ia_initialized = 0;4445/*46* Class: java_net_InetAddress47* Method: init48* Signature: ()V49*/50JNIEXPORT void JNICALL51Java_java_net_InetAddress_init(JNIEnv *env, jclass cls) {52if (!ia_initialized) {53jclass c = (*env)->FindClass(env,"java/net/InetAddress");54CHECK_NULL(c);55ia_class = (*env)->NewGlobalRef(env, c);56CHECK_NULL(ia_class);57c = (*env)->FindClass(env,"java/net/InetAddress$InetAddressHolder");58CHECK_NULL(c);59iac_class = (*env)->NewGlobalRef(env, c);60CHECK_NULL(iac_class);61ia_holderID = (*env)->GetFieldID(env, ia_class, "holder", "Ljava/net/InetAddress$InetAddressHolder;");62CHECK_NULL(ia_holderID);63ia_preferIPv6AddressID = (*env)->GetStaticFieldID(env, ia_class, "preferIPv6Address", "I");64CHECK_NULL(ia_preferIPv6AddressID);6566iac_addressID = (*env)->GetFieldID(env, iac_class, "address", "I");67CHECK_NULL(iac_addressID);68iac_familyID = (*env)->GetFieldID(env, iac_class, "family", "I");69CHECK_NULL(iac_familyID);70iac_hostNameID = (*env)->GetFieldID(env, iac_class, "hostName", "Ljava/lang/String;");71CHECK_NULL(iac_hostNameID);72iac_origHostNameID = (*env)->GetFieldID(env, iac_class, "originalHostName", "Ljava/lang/String;");73CHECK_NULL(iac_origHostNameID);74ia_initialized = 1;75}76}777879