< prev index next >

src/java.base/unix/classes/sun/net/PortConfig.java

Print this page
rev 59105 : imported patch corelibs


  29 
  30 /**
  31  * Determines the ephemeral port range in use on this system.
  32  * If this cannot be determined, then the default settings
  33  * of the OS are returned.
  34  */
  35 
  36 public final class PortConfig {
  37 
  38     private static int defaultUpper, defaultLower;
  39     private static final int upper, lower;
  40 
  41     private PortConfig() {}
  42 
  43     static {
  44         jdk.internal.loader.BootLoader.loadLibrary("net");
  45         String os = GetPropertyAction.privilegedGetProperty("os.name");
  46         if (os.startsWith("Linux")) {
  47             defaultLower = 32768;
  48             defaultUpper = 61000;
  49         } else if (os.startsWith("SunOS")) {
  50             defaultLower = 32768;
  51             defaultUpper = 65535;
  52         } else if (os.contains("OS X")) {
  53             defaultLower = 49152;
  54             defaultUpper = 65535;
  55         } else if (os.startsWith("AIX")) {
  56             // The ephemeral port is OS version dependent on AIX:
  57             // http://publib.boulder.ibm.com/infocenter/aix/v7r1/topic/com.ibm.aix.rsct315.admin/bl503_ephport.htm
  58             // However, on AIX 5.3 / 6.1 / 7.1 we always see the
  59             // settings below by using:
  60             // /usr/sbin/no -a | fgrep ephemeral
  61             defaultLower = 32768;
  62             defaultUpper = 65535;
  63         } else {
  64             throw new InternalError(
  65                 "sun.net.PortConfig: unknown OS");
  66         }
  67 
  68         int v = getLower0();
  69         if (v == -1) {
  70             v = defaultLower;
  71         }


  29 
  30 /**
  31  * Determines the ephemeral port range in use on this system.
  32  * If this cannot be determined, then the default settings
  33  * of the OS are returned.
  34  */
  35 
  36 public final class PortConfig {
  37 
  38     private static int defaultUpper, defaultLower;
  39     private static final int upper, lower;
  40 
  41     private PortConfig() {}
  42 
  43     static {
  44         jdk.internal.loader.BootLoader.loadLibrary("net");
  45         String os = GetPropertyAction.privilegedGetProperty("os.name");
  46         if (os.startsWith("Linux")) {
  47             defaultLower = 32768;
  48             defaultUpper = 61000;



  49         } else if (os.contains("OS X")) {
  50             defaultLower = 49152;
  51             defaultUpper = 65535;
  52         } else if (os.startsWith("AIX")) {
  53             // The ephemeral port is OS version dependent on AIX:
  54             // http://publib.boulder.ibm.com/infocenter/aix/v7r1/topic/com.ibm.aix.rsct315.admin/bl503_ephport.htm
  55             // However, on AIX 5.3 / 6.1 / 7.1 we always see the
  56             // settings below by using:
  57             // /usr/sbin/no -a | fgrep ephemeral
  58             defaultLower = 32768;
  59             defaultUpper = 65535;
  60         } else {
  61             throw new InternalError(
  62                 "sun.net.PortConfig: unknown OS");
  63         }
  64 
  65         int v = getLower0();
  66         if (v == -1) {
  67             v = defaultLower;
  68         }
< prev index next >