1 /*
2  * Copyright (c) 2002, 2021, 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.nio.ch;
27 
28 import java.nio.charset.Charset;
29 import java.nio.charset.StandardCharsets;
30 import java.security.AccessController;
31 import java.security.PrivilegedAction;
32 import sun.net.NetProperties;
33 import jdk.internal.util.StaticProperty;
34 
35 /*
36  * @hide
37  */
38 class UnixDomainSocketsUtil {
UnixDomainSocketsUtil()39     private UnixDomainSocketsUtil() { }
40 
getCharset()41     static Charset getCharset() {
42         return StandardCharsets.UTF_8;
43     }
44 
45     /**
46      * Return the temp directory for storing automatically bound
47      * server sockets.
48      *
49      * On Windows we search the following directories in sequence:
50      *
51      * 1. ${jdk.net.unixdomain.tmpdir} if set as system property
52      * 2. ${jdk.net.unixdomain.tmpdir} if set as net property
53      * 3. %TEMP%
54      * 4. ${java.io.tmpdir}
55      */
56     @SuppressWarnings("removal")
getTempDir()57     static String getTempDir() {
58         // BEGIN Android-removed: only java io temp directories are used.
59         /*
60         PrivilegedAction<String> action = () -> {
61             String s = NetProperties.get("jdk.net.unixdomain.tmpdir");
62             if (s != null) {
63                 return s;
64             }
65             String temp = System.getenv("TEMP");
66             if (temp != null) {
67                 return temp;
68             }
69             return StaticProperty.javaIoTmpDir();
70         };
71         return AccessController.doPrivileged(action);
72         */
73         // BEGIN Android-removed: only java io temp directories are used.
74         return StaticProperty.javaIoTmpDir();
75     }
76 }
77 
78