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=4, 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 4
aload 3
invokespecial sun.security.ssl.ServerNameExtension$CHServerNamesSpec.<init>:(Lsun/security/ssl/HandshakeContext;Ljava/nio/ByteBuffer;)V
astore 5
start local 5 7: 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
8: aconst_null
astore 6
start local 6 9: 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 21
10: 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
11: aload 6
ifnull 18
12: getstatic sun.security.ssl.SSLLogger.isOn:Z
ifeq 24
ldc "ssl,handshake"
invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
ifeq 24
13: new java.lang.StringBuilder
dup
ldc "server name indication ("
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
14: 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;
15: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
iconst_0
anewarray java.lang.Object
16: invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
17: goto 24
18: StackMap locals: sun.security.ssl.ServerNameExtension$CHServerNamesSpec 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;
19: ldc "Unrecognized server name indication"
20: invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;)Ljavax/net/ssl/SSLException;
athrow
21: StackMap locals:
StackMap stack:
getstatic sun.security.ssl.SSLLogger.isOn:Z
ifeq 24
ldc "ssl,handshake"
invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
ifeq 24
22: ldc "no server name matchers, ignore server name indication"
iconst_0
anewarray java.lang.Object
23: invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
24: StackMap locals:
StackMap stack:
aload 4
getfield sun.security.ssl.ServerHandshakeContext.isResumption:Z
ifeq 33
aload 4
getfield sun.security.ssl.ServerHandshakeContext.resumingSession:Lsun/security/ssl/SSLSessionImpl;
ifnull 33
25: aload 6
aload 4
getfield sun.security.ssl.ServerHandshakeContext.resumingSession:Lsun/security/ssl/SSLSessionImpl;
getfield sun.security.ssl.SSLSessionImpl.serverNameIndication:Ljavax/net/ssl/SNIServerName;
26: invokestatic java.util.Objects.equals:(Ljava/lang/Object;Ljava/lang/Object;)Z
27: ifne 33
28: aload 4
iconst_0
putfield sun.security.ssl.ServerHandshakeContext.isResumption:Z
29: aload 4
aconst_null
putfield sun.security.ssl.ServerHandshakeContext.resumingSession:Lsun/security/ssl/SSLSessionImpl;
30: getstatic sun.security.ssl.SSLLogger.isOn:Z
ifeq 33
ldc "ssl,handshake"
invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
ifeq 33
31: ldc "abort session resumption, different server name indication used"
iconst_0
anewarray java.lang.Object
32: invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
33: 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;
34: aload 4
aload 6
putfield sun.security.ssl.ServerHandshakeContext.negotiatedServerName:Ljavax/net/ssl/SNIServerName;
35: 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 36 0 this Lsun/security/ssl/ServerNameExtension$CHServerNameConsumer;
0 36 1 context Lsun/security/ssl/ConnectionContext;
0 36 2 message Lsun/security/ssl/SSLHandshake$HandshakeMessage;
0 36 3 buffer Ljava/nio/ByteBuffer;
1 36 4 shc Lsun/security/ssl/ServerHandshakeContext;
7 36 5 spec Lsun/security/ssl/ServerNameExtension$CHServerNamesSpec;
9 36 6 sni Ljavax/net/ssl/SNIServerName;
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