class sun.nio.ch.UnixDomainSockets
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: sun.nio.ch.UnixDomainSockets
super_class: java.lang.Object
{
static final java.net.UnixDomainSocketAddress UNNAMED;
descriptor: Ljava/net/UnixDomainSocketAddress;
flags: (0x0018) ACC_STATIC, ACC_FINAL
private static final boolean supported;
descriptor: Z
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.lang.String tempDir;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.net.NetPermission accessUnixDomainSocket;
descriptor: Ljava/net/NetPermission;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.util.Random random;
descriptor: Ljava/util/Random;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=0, args_size=0
0: ldc ""
invokestatic java.net.UnixDomainSocketAddress.of:(Ljava/lang/String;)Ljava/net/UnixDomainSocketAddress;
putstatic sun.nio.ch.UnixDomainSockets.UNNAMED:Ljava/net/UnixDomainSocketAddress;
1: invokestatic sun.nio.ch.UnixDomainSocketsUtil.getTempDir:()Ljava/lang/String;
putstatic sun.nio.ch.UnixDomainSockets.tempDir:Ljava/lang/String;
2: new java.net.NetPermission
dup
ldc "accessUnixDomainSocket"
invokespecial java.net.NetPermission.<init>:(Ljava/lang/String;)V
3: putstatic sun.nio.ch.UnixDomainSockets.accessUnixDomainSocket:Ljava/net/NetPermission;
4: invokestatic sun.nio.ch.UnixDomainSockets.getRandom:()Ljava/util/Random;
putstatic sun.nio.ch.UnixDomainSockets.random:Ljava/util/Random;
5: invokestatic sun.nio.ch.IOUtil.load:()V
6: invokestatic sun.nio.ch.UnixDomainSockets.socketSupported:()Z
putstatic sun.nio.ch.UnixDomainSockets.supported:Z
7: return
LocalVariableTable:
Start End Slot Name Signature
private void <init>();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/nio/ch/UnixDomainSockets;
static boolean isSupported();
descriptor: ()Z
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: getstatic sun.nio.ch.UnixDomainSockets.supported:Z
ireturn
LocalVariableTable:
Start End Slot Name Signature
static void checkPermission();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=1, args_size=0
0: invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
astore 0
start local 0 1: aload 0
ifnull 3
2: aload 0
getstatic sun.nio.ch.UnixDomainSockets.accessUnixDomainSocket:Ljava/net/NetPermission;
invokevirtual java.lang.SecurityManager.checkPermission:(Ljava/security/Permission;)V
3: StackMap locals: java.lang.SecurityManager
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
1 4 0 sm Ljava/lang/SecurityManager;
static java.net.UnixDomainSocketAddress getRevealedLocalAddress(java.net.SocketAddress);
descriptor: (Ljava/net/SocketAddress;)Ljava/net/UnixDomainSocketAddress;
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=2, args_size=1
start local 0 0: aload 0
checkcast java.net.UnixDomainSocketAddress
astore 1
start local 1 1: invokestatic sun.nio.ch.UnixDomainSockets.checkPermission:()V
2: goto 5
StackMap locals: java.net.SocketAddress java.net.UnixDomainSocketAddress
StackMap stack: java.lang.SecurityException
3: pop
4: getstatic sun.nio.ch.UnixDomainSockets.UNNAMED:Ljava/net/UnixDomainSocketAddress;
astore 1
5: StackMap locals:
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 sa Ljava/net/SocketAddress;
1 6 1 addr Ljava/net/UnixDomainSocketAddress;
Exception table:
from to target type
1 2 3 Class java.lang.SecurityException
MethodParameters:
Name Flags
sa
static java.net.UnixDomainSocketAddress localAddress(java.io.FileDescriptor);
descriptor: (Ljava/io/FileDescriptor;)Ljava/net/UnixDomainSocketAddress;
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=2, args_size=1
start local 0 0: new java.lang.String
dup
aload 0
invokestatic sun.nio.ch.UnixDomainSockets.localAddress0:(Ljava/io/FileDescriptor;)[B
invokestatic sun.nio.ch.UnixDomainSocketsUtil.getCharset:()Ljava/nio/charset/Charset;
invokespecial java.lang.String.<init>:([BLjava/nio/charset/Charset;)V
astore 1
start local 1 1: aload 1
invokestatic java.net.UnixDomainSocketAddress.of:(Ljava/lang/String;)Ljava/net/UnixDomainSocketAddress;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 fd Ljava/io/FileDescriptor;
1 2 1 path Ljava/lang/String;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
fd
private static native byte[] localAddress0(java.io.FileDescriptor);
descriptor: (Ljava/io/FileDescriptor;)[B
flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
fd
static java.lang.String getRevealedLocalAddressAsString(java.net.SocketAddress);
descriptor: (Ljava/net/SocketAddress;)Ljava/lang/String;
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
ifnull 1
aload 0
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
goto 2
StackMap locals:
StackMap stack:
1: ldc ""
StackMap locals:
StackMap stack: java.lang.String
2: areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 sa Ljava/net/SocketAddress;
MethodParameters:
Name Flags
sa
static java.net.UnixDomainSocketAddress checkAddress(java.net.SocketAddress);
descriptor: (Ljava/net/SocketAddress;)Ljava/net/UnixDomainSocketAddress;
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
ifnonnull 2
1: new java.lang.NullPointerException
dup
invokespecial java.lang.NullPointerException.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
aload 0
instanceof java.net.UnixDomainSocketAddress
ifne 4
3: new java.nio.channels.UnsupportedAddressTypeException
dup
invokespecial java.nio.channels.UnsupportedAddressTypeException.<init>:()V
athrow
4: StackMap locals:
StackMap stack:
aload 0
checkcast java.net.UnixDomainSocketAddress
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 sa Ljava/net/SocketAddress;
MethodParameters:
Name Flags
sa
static byte[] getPathBytes(java.nio.file.Path);
descriptor: (Ljava/nio/file/Path;)[B
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: invokestatic java.nio.file.FileSystems.getDefault:()Ljava/nio/file/FileSystem;
invokevirtual java.nio.file.FileSystem.provider:()Ljava/nio/file/spi/FileSystemProvider;
astore 1
start local 1 1: aload 1
checkcast sun.nio.fs.AbstractFileSystemProvider
aload 0
invokevirtual sun.nio.fs.AbstractFileSystemProvider.getSunPathForSocketFile:(Ljava/nio/file/Path;)[B
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 path Ljava/nio/file/Path;
1 2 1 provider Ljava/nio/file/spi/FileSystemProvider;
MethodParameters:
Name Flags
path
static java.io.FileDescriptor socket();
descriptor: ()Ljava/io/FileDescriptor;
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: invokestatic sun.nio.ch.UnixDomainSockets.socket0:()I
invokestatic sun.nio.ch.IOUtil.newFD:(I)Ljava/io/FileDescriptor;
areturn
LocalVariableTable:
Start End Slot Name Signature
Exceptions:
throws java.io.IOException
static void bind(java.io.FileDescriptor, java.nio.file.Path);
descriptor: (Ljava/io/FileDescriptor;Ljava/nio/file/Path;)V
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 1
invokestatic sun.nio.ch.UnixDomainSockets.getPathBytes:(Ljava/nio/file/Path;)[B
astore 2
start local 2 1: aload 2
arraylength
ifne 3
2: new java.net.BindException
dup
ldc "Server socket cannot bind to unnamed address"
invokespecial java.net.BindException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals: byte[]
StackMap stack:
aload 0
aload 2
invokestatic sun.nio.ch.UnixDomainSockets.bind0:(Ljava/io/FileDescriptor;[B)V
4: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 fd Ljava/io/FileDescriptor;
0 5 1 addr Ljava/nio/file/Path;
1 5 2 path [B
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
fd
addr
private static java.util.Random getRandom();
descriptor: ()Ljava/util/Random;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: ldc "NativePRNGNonBlocking"
invokestatic java.security.SecureRandom.getInstance:(Ljava/lang/String;)Ljava/security/SecureRandom;
1: areturn
2: StackMap locals:
StackMap stack: java.security.NoSuchAlgorithmException
pop
3: new java.security.SecureRandom
dup
invokespecial java.security.SecureRandom.<init>:()V
areturn
LocalVariableTable:
Start End Slot Name Signature
Exception table:
from to target type
0 1 2 Class java.security.NoSuchAlgorithmException
static java.net.UnixDomainSocketAddress generateTempName();
descriptor: ()Ljava/net/UnixDomainSocketAddress;
flags: (0x0008) ACC_STATIC
Code:
stack=7, locals=3, args_size=0
0: getstatic sun.nio.ch.UnixDomainSockets.tempDir:Ljava/lang/String;
astore 0
start local 0 1: aload 0
ifnonnull 3
2: new java.net.BindException
dup
ldc "Could not locate temporary directory for sockets"
invokespecial java.net.BindException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals: java.lang.String
StackMap stack:
getstatic sun.nio.ch.UnixDomainSockets.random:Ljava/util/Random;
ldc 2147483647
invokevirtual java.util.Random.nextInt:(I)I
istore 1
start local 1 4: aload 0
iconst_1
anewarray java.lang.String
dup
iconst_0
new java.lang.StringBuilder
dup
ldc "socket_"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 1
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aastore
invokestatic java.nio.file.Path.of:(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path;
astore 2
start local 2 5: aload 2
invokestatic java.net.UnixDomainSocketAddress.of:(Ljava/nio/file/Path;)Ljava/net/UnixDomainSocketAddress;
6: areturn
end local 2 7: StackMap locals: java.lang.String int
StackMap stack: java.nio.file.InvalidPathException
pop
8: new java.net.BindException
dup
ldc "Invalid temporary directory"
invokespecial java.net.BindException.<init>:(Ljava/lang/String;)V
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
1 9 0 dir Ljava/lang/String;
4 9 1 rnd I
5 7 2 path Ljava/nio/file/Path;
Exception table:
from to target type
4 6 7 Class java.nio.file.InvalidPathException
Exceptions:
throws java.io.IOException
static int connect(java.io.FileDescriptor, java.net.SocketAddress);
descriptor: (Ljava/io/FileDescriptor;Ljava/net/SocketAddress;)I
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
checkcast java.net.UnixDomainSocketAddress
invokevirtual java.net.UnixDomainSocketAddress.getPath:()Ljava/nio/file/Path;
invokestatic sun.nio.ch.UnixDomainSockets.connect:(Ljava/io/FileDescriptor;Ljava/nio/file/Path;)I
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 fd Ljava/io/FileDescriptor;
0 1 1 sa Ljava/net/SocketAddress;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
fd
sa
static int connect(java.io.FileDescriptor, java.nio.file.Path);
descriptor: (Ljava/io/FileDescriptor;Ljava/nio/file/Path;)I
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokestatic sun.nio.ch.UnixDomainSockets.getPathBytes:(Ljava/nio/file/Path;)[B
invokestatic sun.nio.ch.UnixDomainSockets.connect0:(Ljava/io/FileDescriptor;[B)I
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 fd Ljava/io/FileDescriptor;
0 1 1 path Ljava/nio/file/Path;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
fd
path
static int accept(java.io.FileDescriptor, java.io.FileDescriptor, java.lang.String[]);
descriptor: (Ljava/io/FileDescriptor;Ljava/io/FileDescriptor;[Ljava/lang/String;)I
flags: (0x0008) ACC_STATIC
Code:
stack=6, locals=6, args_size=3
start local 0 start local 1 start local 2 0: iconst_1
anewarray java.lang.Object
astore 3
start local 3 1: aload 0
aload 1
aload 3
invokestatic sun.nio.ch.UnixDomainSockets.accept0:(Ljava/io/FileDescriptor;Ljava/io/FileDescriptor;[Ljava/lang/Object;)I
istore 4
start local 4 2: iload 4
ifle 5
3: aload 3
iconst_0
aaload
checkcast byte[]
astore 5
start local 5 4: aload 2
iconst_0
new java.lang.String
dup
aload 5
invokestatic sun.nio.ch.UnixDomainSocketsUtil.getCharset:()Ljava/nio/charset/Charset;
invokespecial java.lang.String.<init>:([BLjava/nio/charset/Charset;)V
aastore
end local 5 5: StackMap locals: java.lang.Object[] int
StackMap stack:
iload 4
ireturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 fd Ljava/io/FileDescriptor;
0 6 1 newfd Ljava/io/FileDescriptor;
0 6 2 paths [Ljava/lang/String;
1 6 3 array [Ljava/lang/Object;
2 6 4 n I
4 5 5 bytes [B
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
fd
newfd
paths
private static native boolean socketSupported();
descriptor: ()Z
flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
private static native int socket0();
descriptor: ()I
flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
Exceptions:
throws java.io.IOException
private static native void bind0(java.io.FileDescriptor, byte[]);
descriptor: (Ljava/io/FileDescriptor;[B)V
flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
fd
path
private static native int connect0(java.io.FileDescriptor, byte[]);
descriptor: (Ljava/io/FileDescriptor;[B)I
flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
fd
path
private static native int accept0(java.io.FileDescriptor, java.io.FileDescriptor, java.lang.Object[]);
descriptor: (Ljava/io/FileDescriptor;Ljava/io/FileDescriptor;[Ljava/lang/Object;)I
flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
fd
newfd
array
}
SourceFile: "UnixDomainSockets.java"