Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/mobile
Path: blob/master/src/java.base/unix/classes/sun/net/PortConfig.java
41133 views
1
/*
2
* Copyright (c) 2013, 2020, Oracle and/or its affiliates. All rights reserved.
3
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4
*
5
* This code is free software; you can redistribute it and/or modify it
6
* under the terms of the GNU General Public License version 2 only, as
7
* published by the Free Software Foundation. Oracle designates this
8
* particular file as subject to the "Classpath" exception as provided
9
* by Oracle in the LICENSE file that accompanied this code.
10
*
11
* This code is distributed in the hope that it will be useful, but WITHOUT
12
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14
* version 2 for more details (a copy is included in the LICENSE file that
15
* accompanied this code).
16
*
17
* You should have received a copy of the GNU General Public License version
18
* 2 along with this work; if not, write to the Free Software Foundation,
19
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20
*
21
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22
* or visit www.oracle.com if you need additional information or have any
23
* questions.
24
*/
25
26
package sun.net;
27
28
import sun.security.action.GetPropertyAction;
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
}
69
lower = v;
70
71
v = getUpper0();
72
if (v == -1) {
73
v = defaultUpper;
74
}
75
upper = v;
76
}
77
78
static native int getLower0();
79
static native int getUpper0();
80
81
public static int getLower() {
82
return lower;
83
}
84
85
public static int getUpper() {
86
return upper;
87
}
88
}
89
90