home *** CD-ROM | disk | FTP | other *** search
- package sun.net;
-
- import java.security.AccessController;
- import sun.security.action.GetIntegerAction;
-
- public final class InetAddressCachePolicy {
- private static final String cachePolicyProp = "networkaddress.cache.ttl";
- private static final String cachePolicyPropFallback = "sun.net.inetaddr.ttl";
- private static final String negativeCachePolicyProp = "networkaddress.cache.negative.ttl";
- private static final String negativeCachePolicyPropFallback = "sun.net.inetaddr.negative.ttl";
- public static final int FOREVER = -1;
- public static final int NEVER = 0;
- public static final int DEFAULT_POSITIVE = 30;
- private static int cachePolicy;
- private static int negativeCachePolicy;
- private static boolean set = false;
- private static boolean negativeSet = false;
-
- public static synchronized int get() {
- return !set && System.getSecurityManager() == null ? 30 : cachePolicy;
- }
-
- public static synchronized int getNegative() {
- return negativeCachePolicy;
- }
-
- public static synchronized void setIfNotSet(int var0) {
- if (!set) {
- checkValue(var0, cachePolicy);
- cachePolicy = var0;
- }
-
- }
-
- public static synchronized void setNegativeIfNotSet(int var0) {
- if (!negativeSet) {
- negativeCachePolicy = var0;
- }
-
- }
-
- private static void checkValue(int var0, int var1) {
- if (var0 != -1) {
- if (var1 == -1 || var0 < var1 || var0 < -1) {
- throw new SecurityException("can't make InetAddress cache more lax");
- }
- }
- }
-
- static {
- set = false;
- negativeSet = false;
- cachePolicy = -1;
- negativeCachePolicy = 0;
- Integer var0 = null;
-
- try {
- var0 = new Integer((String)AccessController.doPrivileged(new 1()));
- } catch (NumberFormatException var3) {
- }
-
- if (var0 != null) {
- cachePolicy = var0;
- if (cachePolicy < 0) {
- cachePolicy = -1;
- }
-
- set = true;
- } else {
- var0 = (Integer)AccessController.doPrivileged(new GetIntegerAction("sun.net.inetaddr.ttl"));
- if (var0 != null) {
- cachePolicy = var0;
- if (cachePolicy < 0) {
- cachePolicy = -1;
- }
-
- set = true;
- }
- }
-
- try {
- var0 = new Integer((String)AccessController.doPrivileged(new 2()));
- } catch (NumberFormatException var2) {
- }
-
- if (var0 != null) {
- negativeCachePolicy = var0;
- if (negativeCachePolicy < 0) {
- negativeCachePolicy = -1;
- }
-
- negativeSet = true;
- } else {
- var0 = (Integer)AccessController.doPrivileged(new GetIntegerAction("sun.net.inetaddr.negative.ttl"));
- if (var0 != null) {
- negativeCachePolicy = var0;
- if (negativeCachePolicy < 0) {
- negativeCachePolicy = -1;
- }
-
- negativeSet = true;
- }
- }
-
- }
- }
-