home *** CD-ROM | disk | FTP | other *** search
/ Sky at Night 2007 June / SAN CD 6-2007 CD-ROM 25.iso / pc / Software / AstroGrav_Win / Java / jre1.6.0 / lib / rt.jar / sun / net / InetAddressCachePolicy.class (.txt) < prev    next >
Encoding:
Java Class File  |  2006-11-29  |  1.8 KB  |  107 lines

  1. package sun.net;
  2.  
  3. import java.security.AccessController;
  4. import sun.security.action.GetIntegerAction;
  5.  
  6. public final class InetAddressCachePolicy {
  7.    private static final String cachePolicyProp = "networkaddress.cache.ttl";
  8.    private static final String cachePolicyPropFallback = "sun.net.inetaddr.ttl";
  9.    private static final String negativeCachePolicyProp = "networkaddress.cache.negative.ttl";
  10.    private static final String negativeCachePolicyPropFallback = "sun.net.inetaddr.negative.ttl";
  11.    public static final int FOREVER = -1;
  12.    public static final int NEVER = 0;
  13.    public static final int DEFAULT_POSITIVE = 30;
  14.    private static int cachePolicy;
  15.    private static int negativeCachePolicy;
  16.    private static boolean set = false;
  17.    private static boolean negativeSet = false;
  18.  
  19.    public static synchronized int get() {
  20.       return !set && System.getSecurityManager() == null ? 30 : cachePolicy;
  21.    }
  22.  
  23.    public static synchronized int getNegative() {
  24.       return negativeCachePolicy;
  25.    }
  26.  
  27.    public static synchronized void setIfNotSet(int var0) {
  28.       if (!set) {
  29.          checkValue(var0, cachePolicy);
  30.          cachePolicy = var0;
  31.       }
  32.  
  33.    }
  34.  
  35.    public static synchronized void setNegativeIfNotSet(int var0) {
  36.       if (!negativeSet) {
  37.          negativeCachePolicy = var0;
  38.       }
  39.  
  40.    }
  41.  
  42.    private static void checkValue(int var0, int var1) {
  43.       if (var0 != -1) {
  44.          if (var1 == -1 || var0 < var1 || var0 < -1) {
  45.             throw new SecurityException("can't make InetAddress cache more lax");
  46.          }
  47.       }
  48.    }
  49.  
  50.    static {
  51.       set = false;
  52.       negativeSet = false;
  53.       cachePolicy = -1;
  54.       negativeCachePolicy = 0;
  55.       Integer var0 = null;
  56.  
  57.       try {
  58.          var0 = new Integer((String)AccessController.doPrivileged(new 1()));
  59.       } catch (NumberFormatException var3) {
  60.       }
  61.  
  62.       if (var0 != null) {
  63.          cachePolicy = var0;
  64.          if (cachePolicy < 0) {
  65.             cachePolicy = -1;
  66.          }
  67.  
  68.          set = true;
  69.       } else {
  70.          var0 = (Integer)AccessController.doPrivileged(new GetIntegerAction("sun.net.inetaddr.ttl"));
  71.          if (var0 != null) {
  72.             cachePolicy = var0;
  73.             if (cachePolicy < 0) {
  74.                cachePolicy = -1;
  75.             }
  76.  
  77.             set = true;
  78.          }
  79.       }
  80.  
  81.       try {
  82.          var0 = new Integer((String)AccessController.doPrivileged(new 2()));
  83.       } catch (NumberFormatException var2) {
  84.       }
  85.  
  86.       if (var0 != null) {
  87.          negativeCachePolicy = var0;
  88.          if (negativeCachePolicy < 0) {
  89.             negativeCachePolicy = -1;
  90.          }
  91.  
  92.          negativeSet = true;
  93.       } else {
  94.          var0 = (Integer)AccessController.doPrivileged(new GetIntegerAction("sun.net.inetaddr.negative.ttl"));
  95.          if (var0 != null) {
  96.             negativeCachePolicy = var0;
  97.             if (negativeCachePolicy < 0) {
  98.                negativeCachePolicy = -1;
  99.             }
  100.  
  101.             negativeSet = true;
  102.          }
  103.       }
  104.  
  105.    }
  106. }
  107.