final class sun.security.ssl.ServerNameExtension$CHServerNameConsumer implements sun.security.ssl.SSLExtension$ExtensionConsumer
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: sun.security.ssl.ServerNameExtension$CHServerNameConsumer
super_class: java.lang.Object
{
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
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/security/ssl/ServerNameExtension$CHServerNameConsumer;
public void consume(sun.security.ssl.ConnectionContext, sun.security.ssl.SSLHandshake$HandshakeMessage, java.nio.ByteBuffer);
descriptor: (Lsun/security/ssl/ConnectionContext;Lsun/security/ssl/SSLHandshake$HandshakeMessage;Ljava/nio/ByteBuffer;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=7, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
checkcast sun.security.ssl.ServerHandshakeContext
astore 4
start local 4 1: aload 4
getfield sun.security.ssl.ServerHandshakeContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
getstatic sun.security.ssl.SSLExtension.CH_SERVER_NAME:Lsun/security/ssl/SSLExtension;
invokevirtual sun.security.ssl.SSLConfiguration.isAvailable:(Lsun/security/ssl/SSLExtension;)Z
ifne 6
2: getstatic sun.security.ssl.SSLLogger.isOn:Z
ifeq 5
ldc "ssl,handshake"
invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
ifeq 5
3: new java.lang.StringBuilder
dup
ldc "Ignore unavailable extension: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
getstatic sun.security.ssl.SSLExtension.CH_SERVER_NAME:Lsun/security/ssl/SSLExtension;
getfield sun.security.ssl.SSLExtension.name:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
iconst_0
anewarray java.lang.Object
4: invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
5: StackMap locals: sun.security.ssl.ServerHandshakeContext
StackMap stack:
return
6: StackMap locals:
StackMap stack:
new sun.security.ssl.ServerNameExtension$CHServerNamesSpec
dup
aload 3
invokespecial sun.security.ssl.ServerNameExtension$CHServerNamesSpec.<init>:(Ljava/nio/ByteBuffer;)V
astore 5
start local 5 7: goto 10
end local 5 StackMap locals:
StackMap stack: java.io.IOException
8: astore 6
start local 6 9: aload 4
getfield sun.security.ssl.ServerHandshakeContext.conContext:Lsun/security/ssl/TransportContext;
getstatic sun.security.ssl.Alert.UNEXPECTED_MESSAGE:Lsun/security/ssl/Alert;
aload 6
invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/Throwable;)Ljavax/net/ssl/SSLException;
athrow
end local 6 start local 5 10: StackMap locals: sun.security.ssl.ServerNameExtension$CHServerNamesSpec
StackMap stack:
aload 4
getfield sun.security.ssl.ServerHandshakeContext.handshakeExtensions:Ljava/util/Map;
getstatic sun.security.ssl.SSLExtension.CH_SERVER_NAME:Lsun/security/ssl/SSLExtension;
aload 5
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
11: aconst_null
astore 6
start local 6 12: aload 4
getfield sun.security.ssl.ServerHandshakeContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
getfield sun.security.ssl.SSLConfiguration.sniMatchers:Ljava/util/Collection;
invokeinterface java.util.Collection.isEmpty:()Z
ifne 24
13: aload 4
getfield sun.security.ssl.ServerHandshakeContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
getfield sun.security.ssl.SSLConfiguration.sniMatchers:Ljava/util/Collection;
aload 5
getfield sun.security.ssl.ServerNameExtension$CHServerNamesSpec.serverNames:Ljava/util/List;
invokestatic sun.security.ssl.ServerNameExtension$CHServerNameConsumer.chooseSni:(Ljava/util/Collection;Ljava/util/List;)Ljavax/net/ssl/SNIServerName;
astore 6
14: aload 6
ifnull 21
15: getstatic sun.security.ssl.SSLLogger.isOn:Z
ifeq 27
ldc "ssl,handshake"
invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
ifeq 27
16: new java.lang.StringBuilder
dup
ldc "server name indication ("
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
17: aload 6
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc ") is accepted"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
18: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
iconst_0
anewarray java.lang.Object
19: invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
20: goto 27
21: StackMap locals: javax.net.ssl.SNIServerName
StackMap stack:
aload 4
getfield sun.security.ssl.ServerHandshakeContext.conContext:Lsun/security/ssl/TransportContext;
getstatic sun.security.ssl.Alert.UNRECOGNIZED_NAME:Lsun/security/ssl/Alert;
22: ldc "Unrecognized server name indication"
23: invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;)Ljavax/net/ssl/SSLException;
athrow
24: StackMap locals:
StackMap stack:
getstatic sun.security.ssl.SSLLogger.isOn:Z
ifeq 27
ldc "ssl,handshake"
invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
ifeq 27
25: ldc "no server name matchers, ignore server name indication"
iconst_0
anewarray java.lang.Object
26: invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
27: StackMap locals:
StackMap stack:
aload 4
getfield sun.security.ssl.ServerHandshakeContext.isResumption:Z
ifeq 36
aload 4
getfield sun.security.ssl.ServerHandshakeContext.resumingSession:Lsun/security/ssl/SSLSessionImpl;
ifnull 36
28: aload 6
aload 4
getfield sun.security.ssl.ServerHandshakeContext.resumingSession:Lsun/security/ssl/SSLSessionImpl;
getfield sun.security.ssl.SSLSessionImpl.serverNameIndication:Ljavax/net/ssl/SNIServerName;
29: invokestatic java.util.Objects.equals:(Ljava/lang/Object;Ljava/lang/Object;)Z
30: ifne 36
31: aload 4
iconst_0
putfield sun.security.ssl.ServerHandshakeContext.isResumption:Z
32: aload 4
aconst_null
putfield sun.security.ssl.ServerHandshakeContext.resumingSession:Lsun/security/ssl/SSLSessionImpl;
33: getstatic sun.security.ssl.SSLLogger.isOn:Z
ifeq 36
ldc "ssl,handshake"
invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
ifeq 36
34: ldc "abort session resumption, different server name indication used"
iconst_0
anewarray java.lang.Object
35: invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
36: StackMap locals:
StackMap stack:
aload 4
aload 5
getfield sun.security.ssl.ServerNameExtension$CHServerNamesSpec.serverNames:Ljava/util/List;
putfield sun.security.ssl.ServerHandshakeContext.requestedServerNames:Ljava/util/List;
37: aload 4
aload 6
putfield sun.security.ssl.ServerHandshakeContext.negotiatedServerName:Ljavax/net/ssl/SNIServerName;
38: return
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 39 0 this Lsun/security/ssl/ServerNameExtension$CHServerNameConsumer;
0 39 1 context Lsun/security/ssl/ConnectionContext;
0 39 2 message Lsun/security/ssl/SSLHandshake$HandshakeMessage;
0 39 3 buffer Ljava/nio/ByteBuffer;
1 39 4 shc Lsun/security/ssl/ServerHandshakeContext;
7 8 5 spec Lsun/security/ssl/ServerNameExtension$CHServerNamesSpec;
10 39 5 spec Lsun/security/ssl/ServerNameExtension$CHServerNamesSpec;
9 10 6 ioe Ljava/io/IOException;
12 39 6 sni Ljavax/net/ssl/SNIServerName;
Exception table:
from to target type
6 7 8 Class java.io.IOException
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
context
message
buffer
private static javax.net.ssl.SNIServerName chooseSni(java.util.Collection<javax.net.ssl.SNIMatcher>, java.util.List<javax.net.ssl.SNIServerName>);
descriptor: (Ljava/util/Collection;Ljava/util/List;)Ljavax/net/ssl/SNIServerName;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=7, args_size=2
start local 0 start local 1 0: aload 1
ifnull 11
aload 1
invokeinterface java.util.List.isEmpty:()Z
ifne 11
1: aload 0
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 3
goto 10
StackMap locals: java.util.Collection java.util.List top java.util.Iterator
StackMap stack:
2: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast javax.net.ssl.SNIMatcher
astore 2
start local 2 3: aload 2
invokevirtual javax.net.ssl.SNIMatcher.getType:()I
istore 4
start local 4 4: aload 1
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 6
goto 9
StackMap locals: java.util.Collection java.util.List javax.net.ssl.SNIMatcher java.util.Iterator int top java.util.Iterator
StackMap stack:
5: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast javax.net.ssl.SNIServerName
astore 5
start local 5 6: aload 5
invokevirtual javax.net.ssl.SNIServerName.getType:()I
iload 4
if_icmpne 9
7: aload 2
aload 5
invokevirtual javax.net.ssl.SNIMatcher.matches:(Ljavax/net/ssl/SNIServerName;)Z
ifeq 10
8: aload 5
areturn
end local 5 9: StackMap locals:
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 5
end local 4 end local 2 10: StackMap locals: java.util.Collection java.util.List top java.util.Iterator
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
11: StackMap locals: java.util.Collection java.util.List
StackMap stack:
aconst_null
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 matchers Ljava/util/Collection<Ljavax/net/ssl/SNIMatcher;>;
0 12 1 sniNames Ljava/util/List<Ljavax/net/ssl/SNIServerName;>;
3 10 2 matcher Ljavax/net/ssl/SNIMatcher;
4 10 4 matcherType I
6 9 5 sniName Ljavax/net/ssl/SNIServerName;
Signature: (Ljava/util/Collection<Ljavax/net/ssl/SNIMatcher;>;Ljava/util/List<Ljavax/net/ssl/SNIServerName;>;)Ljavax/net/ssl/SNIServerName;
MethodParameters:
Name Flags
matchers
sniNames
}
SourceFile: "ServerNameExtension.java"
NestHost: sun.security.ssl.ServerNameExtension
InnerClasses:
abstract ExtensionConsumer = sun.security.ssl.SSLExtension$ExtensionConsumer of sun.security.ssl.SSLExtension
abstract HandshakeMessage = sun.security.ssl.SSLHandshake$HandshakeMessage of sun.security.ssl.SSLHandshake
private final CHServerNameConsumer = sun.security.ssl.ServerNameExtension$CHServerNameConsumer of sun.security.ssl.ServerNameExtension
final CHServerNamesSpec = sun.security.ssl.ServerNameExtension$CHServerNamesSpec of sun.security.ssl.ServerNameExtension