abstract class io.netty.resolver.dns.DnsQueryContext extends java.lang.Object
{
private static final io.netty.util.internal.logging.InternalLogger logger;
private static final long ID_REUSE_ON_TIMEOUT_DELAY_MILLIS;
private static final io.netty.handler.codec.dns.TcpDnsQueryEncoder TCP_ENCODER;
private final io.netty.util.concurrent.Future channelReadyFuture;
private final io.netty.channel.Channel channel;
private final java.net.InetSocketAddress nameServerAddr;
private final io.netty.resolver.dns.DnsQueryContextManager queryContextManager;
private final io.netty.util.concurrent.Promise promise;
private final io.netty.handler.codec.dns.DnsQuestion question;
private final io.netty.handler.codec.dns.DnsRecord[] additionals;
private final io.netty.handler.codec.dns.DnsRecord optResource;
private final boolean recursionDesired;
private final io.netty.bootstrap.Bootstrap socketBootstrap;
private final boolean retryWithTcpOnTimeout;
private final long queryTimeoutMillis;
private volatile io.netty.util.concurrent.Future timeoutFuture;
private int id;
static final boolean $assertionsDisabled;
void <init>(io.netty.channel.Channel, io.netty.util.concurrent.Future, java.net.InetSocketAddress, io.netty.resolver.dns.DnsQueryContextManager, int, boolean, long, io.netty.handler.codec.dns.DnsQuestion, io.netty.handler.codec.dns.DnsRecord[], io.netty.util.concurrent.Promise, io.netty.bootstrap.Bootstrap, boolean)
{
io.netty.resolver.dns.DnsQueryContext v;
long v;
int v;
boolean v, v, v;
io.netty.resolver.dns.DnsQueryContext$1 v;
io.netty.resolver.dns.DnsQueryContextManager v;
io.netty.util.concurrent.Promise v;
io.netty.handler.codec.dns.DnsQuestion v;
java.net.InetSocketAddress v;
io.netty.channel.Channel v;
io.netty.bootstrap.Bootstrap v;
io.netty.handler.codec.dns.DnsRecord[] v;
java.lang.Object v, v, v, v, v, v, v;
io.netty.util.concurrent.Future v;
v := @this: io.netty.resolver.dns.DnsQueryContext;
v := @parameter: io.netty.channel.Channel;
v := @parameter: io.netty.util.concurrent.Future;
v := @parameter: java.net.InetSocketAddress;
v := @parameter: io.netty.resolver.dns.DnsQueryContextManager;
v := @parameter: int;
v := @parameter: boolean;
v := @parameter: long;
v := @parameter: io.netty.handler.codec.dns.DnsQuestion;
v := @parameter: io.netty.handler.codec.dns.DnsRecord[];
v := @parameter: io.netty.util.concurrent.Promise;
v := @parameter: io.netty.bootstrap.Bootstrap;
v := @parameter: boolean;
specialinvoke v.<java.lang.Object: void <init>()>();
v.<io.netty.resolver.dns.DnsQueryContext: int id> = -2147483648;
v = staticinvoke <io.netty.util.internal.ObjectUtil: java.lang.Object checkNotNull(java.lang.Object,java.lang.String)>(v, "channel");
v.<io.netty.resolver.dns.DnsQueryContext: io.netty.channel.Channel channel> = v;
v = staticinvoke <io.netty.util.internal.ObjectUtil: java.lang.Object checkNotNull(java.lang.Object,java.lang.String)>(v, "queryContextManager");
v.<io.netty.resolver.dns.DnsQueryContext: io.netty.resolver.dns.DnsQueryContextManager queryContextManager> = v;
v = staticinvoke <io.netty.util.internal.ObjectUtil: java.lang.Object checkNotNull(java.lang.Object,java.lang.String)>(v, "channelReadyFuture");
v.<io.netty.resolver.dns.DnsQueryContext: io.netty.util.concurrent.Future channelReadyFuture> = v;
v = staticinvoke <io.netty.util.internal.ObjectUtil: java.lang.Object checkNotNull(java.lang.Object,java.lang.String)>(v, "nameServerAddr");
v.<io.netty.resolver.dns.DnsQueryContext: java.net.InetSocketAddress nameServerAddr> = v;
v = staticinvoke <io.netty.util.internal.ObjectUtil: java.lang.Object checkNotNull(java.lang.Object,java.lang.String)>(v, "question");
v.<io.netty.resolver.dns.DnsQueryContext: io.netty.handler.codec.dns.DnsQuestion question> = v;
v = staticinvoke <io.netty.util.internal.ObjectUtil: java.lang.Object checkNotNull(java.lang.Object,java.lang.String)>(v, "additionals");
v.<io.netty.resolver.dns.DnsQueryContext: io.netty.handler.codec.dns.DnsRecord[] additionals> = v;
v = staticinvoke <io.netty.util.internal.ObjectUtil: java.lang.Object checkNotNull(java.lang.Object,java.lang.String)>(v, "promise");
v.<io.netty.resolver.dns.DnsQueryContext: io.netty.util.concurrent.Promise promise> = v;
v.<io.netty.resolver.dns.DnsQueryContext: boolean recursionDesired> = v;
v.<io.netty.resolver.dns.DnsQueryContext: long queryTimeoutMillis> = v;
v.<io.netty.resolver.dns.DnsQueryContext: io.netty.bootstrap.Bootstrap socketBootstrap> = v;
v.<io.netty.resolver.dns.DnsQueryContext: boolean retryWithTcpOnTimeout> = v;
if v <= 0 goto label;
v = staticinvoke <io.netty.resolver.dns.DnsQueryContext: boolean hasOptRecord(io.netty.handler.codec.dns.DnsRecord[])>(v);
if v != 0 goto label;
v = new io.netty.resolver.dns.DnsQueryContext$1;
specialinvoke v.<io.netty.resolver.dns.DnsQueryContext$1: void <init>(io.netty.resolver.dns.DnsQueryContext,int,int,int)>(v, v, 0, 0);
v.<io.netty.resolver.dns.DnsQueryContext: io.netty.handler.codec.dns.DnsRecord optResource> = v;
goto label;
label:
v.<io.netty.resolver.dns.DnsQueryContext: io.netty.handler.codec.dns.DnsRecord optResource> = null;
label:
return;
}
private static boolean hasOptRecord(io.netty.handler.codec.dns.DnsRecord[])
{
io.netty.handler.codec.dns.DnsRecord v;
io.netty.handler.codec.dns.DnsRecordType v, v;
io.netty.handler.codec.dns.DnsRecord[] v;
int v, v, v;
v := @parameter: io.netty.handler.codec.dns.DnsRecord[];
if v == null goto label;
v = lengthof v;
if v <= 0 goto label;
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
v = interfaceinvoke v.<io.netty.handler.codec.dns.DnsRecord: io.netty.handler.codec.dns.DnsRecordType type()>();
v = <io.netty.handler.codec.dns.DnsRecordType: io.netty.handler.codec.dns.DnsRecordType OPT>;
if v != v goto label;
return 1;
label:
v = v + 1;
goto label;
label:
return 0;
}
final boolean isDone()
{
io.netty.resolver.dns.DnsQueryContext v;
io.netty.util.concurrent.Promise v;
boolean v;
v := @this: io.netty.resolver.dns.DnsQueryContext;
v = v.<io.netty.resolver.dns.DnsQueryContext: io.netty.util.concurrent.Promise promise>;
v = interfaceinvoke v.<io.netty.util.concurrent.Promise: boolean isDone()>();
return v;
}
final io.netty.handler.codec.dns.DnsQuestion question()
{
io.netty.resolver.dns.DnsQueryContext v;
io.netty.handler.codec.dns.DnsQuestion v;
v := @this: io.netty.resolver.dns.DnsQueryContext;
v = v.<io.netty.resolver.dns.DnsQueryContext: io.netty.handler.codec.dns.DnsQuestion question>;
return v;
}
protected abstract io.netty.handler.codec.dns.DnsQuery newQuery(int, java.net.InetSocketAddress);
protected abstract java.lang.String protocol();
final io.netty.channel.ChannelFuture writeQuery(boolean)
{
java.lang.IllegalStateException v;
io.netty.resolver.dns.DnsQueryContext v;
java.lang.Integer v;
io.netty.handler.codec.dns.DnsSection v, v, v;
boolean v, v, v, v;
io.netty.resolver.dns.DnsQueryContext$2 v;
io.netty.handler.codec.dns.DnsQuestion v, v;
java.net.InetSocketAddress v, v, v;
io.netty.util.internal.logging.InternalLogger v, v;
io.netty.handler.codec.dns.DnsRecord v, v, v;
java.lang.Object[] v;
java.lang.AssertionError v;
int v, v, v, v, v, v, v;
io.netty.handler.codec.dns.DnsQuery v;
java.lang.String v, v, v, v, v, v;
io.netty.resolver.dns.DnsQueryContextManager v;
io.netty.util.concurrent.Promise v;
io.netty.channel.ChannelFuture v, v;
io.netty.channel.Channel v, v;
io.netty.handler.codec.dns.DnsRecord[] v;
java.lang.Class v;
v := @this: io.netty.resolver.dns.DnsQueryContext;
v := @parameter: boolean;
v = <io.netty.resolver.dns.DnsQueryContext: boolean $assertionsDisabled>;
if v != 0 goto label;
v = v.<io.netty.resolver.dns.DnsQueryContext: int id>;
if v == -2147483648 goto label;
v = new java.lang.AssertionError;
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = virtualinvoke v.<java.lang.Class: java.lang.String getSimpleName()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("\u.writeQuery(...) can only be executed once.");
specialinvoke v.<java.lang.AssertionError: void <init>(java.lang.Object)>(v);
throw v;
label:
v = v.<io.netty.resolver.dns.DnsQueryContext: io.netty.resolver.dns.DnsQueryContextManager queryContextManager>;
v = v.<io.netty.resolver.dns.DnsQueryContext: java.net.InetSocketAddress nameServerAddr>;
v = virtualinvoke v.<io.netty.resolver.dns.DnsQueryContextManager: int add(java.net.InetSocketAddress,io.netty.resolver.dns.DnsQueryContext)>(v, v);
v.<io.netty.resolver.dns.DnsQueryContext: int id> = v;
v = (int) -1;
if v != v goto label;
v = new java.lang.IllegalStateException;
v = virtualinvoke v.<io.netty.resolver.dns.DnsQueryContext: io.netty.handler.codec.dns.DnsQuestion question()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (io.netty.handler.codec.dns.DnsQuestion)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("query ID space exhausted: \u0001");
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>(v);
v = virtualinvoke v.<io.netty.resolver.dns.DnsQueryContext: java.lang.String protocol()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("failed to send a query via \u0001");
virtualinvoke v.<io.netty.resolver.dns.DnsQueryContext: boolean finishFailure(java.lang.String,java.lang.Throwable,boolean)>(v, v, 0);
v = v.<io.netty.resolver.dns.DnsQueryContext: io.netty.channel.Channel channel>;
v = interfaceinvoke v.<io.netty.channel.Channel: io.netty.channel.ChannelFuture newFailedFuture(java.lang.Throwable)>(v);
return v;
label:
v = v.<io.netty.resolver.dns.DnsQueryContext: io.netty.util.concurrent.Promise promise>;
v = new io.netty.resolver.dns.DnsQueryContext$2;
specialinvoke v.<io.netty.resolver.dns.DnsQueryContext$2: void <init>(io.netty.resolver.dns.DnsQueryContext)>(v);
interfaceinvoke v.<io.netty.util.concurrent.Promise: io.netty.util.concurrent.Promise addListener(io.netty.util.concurrent.GenericFutureListener)>(v);
v = virtualinvoke v.<io.netty.resolver.dns.DnsQueryContext: io.netty.handler.codec.dns.DnsQuestion question()>();
v = v.<io.netty.resolver.dns.DnsQueryContext: int id>;
v = v.<io.netty.resolver.dns.DnsQueryContext: java.net.InetSocketAddress nameServerAddr>;
v = virtualinvoke v.<io.netty.resolver.dns.DnsQueryContext: io.netty.handler.codec.dns.DnsQuery newQuery(int,java.net.InetSocketAddress)>(v, v);
v = v.<io.netty.resolver.dns.DnsQueryContext: boolean recursionDesired>;
interfaceinvoke v.<io.netty.handler.codec.dns.DnsQuery: io.netty.handler.codec.dns.DnsQuery setRecursionDesired(boolean)>(v);
v = <io.netty.handler.codec.dns.DnsSection: io.netty.handler.codec.dns.DnsSection QUESTION>;
interfaceinvoke v.<io.netty.handler.codec.dns.DnsQuery: io.netty.handler.codec.dns.DnsQuery addRecord(io.netty.handler.codec.dns.DnsSection,io.netty.handler.codec.dns.DnsRecord)>(v, v);
v = v.<io.netty.resolver.dns.DnsQueryContext: io.netty.handler.codec.dns.DnsRecord[] additionals>;
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
v = <io.netty.handler.codec.dns.DnsSection: io.netty.handler.codec.dns.DnsSection ADDITIONAL>;
interfaceinvoke v.<io.netty.handler.codec.dns.DnsQuery: io.netty.handler.codec.dns.DnsQuery addRecord(io.netty.handler.codec.dns.DnsSection,io.netty.handler.codec.dns.DnsRecord)>(v, v);
v = v + 1;
goto label;
label:
v = v.<io.netty.resolver.dns.DnsQueryContext: io.netty.handler.codec.dns.DnsRecord optResource>;
if v == null goto label;
v = <io.netty.handler.codec.dns.DnsSection: io.netty.handler.codec.dns.DnsSection ADDITIONAL>;
v = v.<io.netty.resolver.dns.DnsQueryContext: io.netty.handler.codec.dns.DnsRecord optResource>;
interfaceinvoke v.<io.netty.handler.codec.dns.DnsQuery: io.netty.handler.codec.dns.DnsQuery addRecord(io.netty.handler.codec.dns.DnsSection,io.netty.handler.codec.dns.DnsRecord)>(v, v);
label:
v = <io.netty.resolver.dns.DnsQueryContext: io.netty.util.internal.logging.InternalLogger logger>;
v = interfaceinvoke v.<io.netty.util.internal.logging.InternalLogger: boolean isDebugEnabled()>();
if v == 0 goto label;
v = <io.netty.resolver.dns.DnsQueryContext: io.netty.util.internal.logging.InternalLogger logger>;
v = newarray (java.lang.Object)[5];
v = v.<io.netty.resolver.dns.DnsQueryContext: io.netty.channel.Channel channel>;
v[0] = v;
v = virtualinvoke v.<io.netty.resolver.dns.DnsQueryContext: java.lang.String protocol()>();
v[1] = v;
v = v.<io.netty.resolver.dns.DnsQueryContext: int id>;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v[2] = v;
v = v.<io.netty.resolver.dns.DnsQueryContext: java.net.InetSocketAddress nameServerAddr>;
v[3] = v;
v[4] = v;
interfaceinvoke v.<io.netty.util.internal.logging.InternalLogger: void debug(java.lang.String,java.lang.Object[])>("{} WRITE: {}, [{}: {}], {}", v);
label:
v = specialinvoke v.<io.netty.resolver.dns.DnsQueryContext: io.netty.channel.ChannelFuture sendQuery(io.netty.handler.codec.dns.DnsQuery,boolean)>(v, v);
return v;
}
private void removeFromContextManager(java.net.InetSocketAddress)
{
io.netty.resolver.dns.DnsQueryContextManager v;
int v;
io.netty.resolver.dns.DnsQueryContext v, v;
java.lang.AssertionError v;
java.net.InetSocketAddress v;
boolean v;
v := @this: io.netty.resolver.dns.DnsQueryContext;
v := @parameter: java.net.InetSocketAddress;
v = v.<io.netty.resolver.dns.DnsQueryContext: io.netty.resolver.dns.DnsQueryContextManager queryContextManager>;
v = v.<io.netty.resolver.dns.DnsQueryContext: int id>;
v = virtualinvoke v.<io.netty.resolver.dns.DnsQueryContextManager: io.netty.resolver.dns.DnsQueryContext remove(java.net.InetSocketAddress,int)>(v, v);
v = <io.netty.resolver.dns.DnsQueryContext: boolean $assertionsDisabled>;
if v != 0 goto label;
if v == v goto label;
v = new java.lang.AssertionError;
specialinvoke v.<java.lang.AssertionError: void <init>(java.lang.Object)>("Removed DnsQueryContext is not the correct instance");
throw v;
label:
return;
}
private io.netty.channel.ChannelFuture sendQuery(io.netty.handler.codec.dns.DnsQuery, boolean)
{
io.netty.resolver.dns.DnsQueryContext$3 v;
java.lang.Throwable v;
io.netty.resolver.dns.DnsQueryContext v;
io.netty.channel.Channel v;
io.netty.channel.ChannelPromise v;
io.netty.handler.codec.dns.DnsQuery v;
io.netty.util.concurrent.Future v, v, v;
boolean v, v;
v := @this: io.netty.resolver.dns.DnsQueryContext;
v := @parameter: io.netty.handler.codec.dns.DnsQuery;
v := @parameter: boolean;
v = v.<io.netty.resolver.dns.DnsQueryContext: io.netty.channel.Channel channel>;
v = interfaceinvoke v.<io.netty.channel.Channel: io.netty.channel.ChannelPromise newPromise()>();
v = v.<io.netty.resolver.dns.DnsQueryContext: io.netty.util.concurrent.Future channelReadyFuture>;
v = interfaceinvoke v.<io.netty.util.concurrent.Future: boolean isSuccess()>();
if v == 0 goto label;
specialinvoke v.<io.netty.resolver.dns.DnsQueryContext: void writeQuery(io.netty.handler.codec.dns.DnsQuery,boolean,io.netty.channel.ChannelPromise)>(v, v, v);
goto label;
label:
v = v.<io.netty.resolver.dns.DnsQueryContext: io.netty.util.concurrent.Future channelReadyFuture>;
v = interfaceinvoke v.<io.netty.util.concurrent.Future: java.lang.Throwable cause()>();
if v == null goto label;
specialinvoke v.<io.netty.resolver.dns.DnsQueryContext: void failQuery(io.netty.handler.codec.dns.DnsQuery,java.lang.Throwable,io.netty.channel.ChannelPromise)>(v, v, v);
goto label;
label:
v = v.<io.netty.resolver.dns.DnsQueryContext: io.netty.util.concurrent.Future channelReadyFuture>;
v = new io.netty.resolver.dns.DnsQueryContext$3;
specialinvoke v.<io.netty.resolver.dns.DnsQueryContext$3: void <init>(io.netty.resolver.dns.DnsQueryContext,io.netty.handler.codec.dns.DnsQuery,io.netty.channel.ChannelPromise)>(v, v, v);
interfaceinvoke v.<io.netty.util.concurrent.Future: io.netty.util.concurrent.Future addListener(io.netty.util.concurrent.GenericFutureListener)>(v);
label:
return v;
}
private void failQuery(io.netty.handler.codec.dns.DnsQuery, java.lang.Throwable, io.netty.channel.ChannelPromise)
{
java.lang.Throwable v, v;
io.netty.channel.ChannelPromise v;
io.netty.util.concurrent.Promise v;
io.netty.resolver.dns.DnsQueryContext v;
io.netty.handler.codec.dns.DnsQuery v;
v := @this: io.netty.resolver.dns.DnsQueryContext;
v := @parameter: io.netty.handler.codec.dns.DnsQuery;
v := @parameter: java.lang.Throwable;
v := @parameter: io.netty.channel.ChannelPromise;
label:
v = v.<io.netty.resolver.dns.DnsQueryContext: io.netty.util.concurrent.Promise promise>;
interfaceinvoke v.<io.netty.util.concurrent.Promise: boolean tryFailure(java.lang.Throwable)>(v);
interfaceinvoke v.<io.netty.channel.ChannelPromise: boolean tryFailure(java.lang.Throwable)>(v);
label:
staticinvoke <io.netty.util.ReferenceCountUtil: boolean release(java.lang.Object)>(v);
goto label;
label:
v := @caughtexception;
staticinvoke <io.netty.util.ReferenceCountUtil: boolean release(java.lang.Object)>(v);
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
private void writeQuery(io.netty.handler.codec.dns.DnsQuery, boolean, io.netty.channel.ChannelPromise)
{
io.netty.resolver.dns.DnsQueryContext$4 v;
io.netty.resolver.dns.DnsQueryContext v;
long v;
io.netty.channel.ChannelFuture v;
io.netty.channel.Channel v, v;
io.netty.channel.ChannelPromise v;
io.netty.handler.codec.dns.DnsQuery v;
boolean v, v;
v := @this: io.netty.resolver.dns.DnsQueryContext;
v := @parameter: io.netty.handler.codec.dns.DnsQuery;
v := @parameter: boolean;
v := @parameter: io.netty.channel.ChannelPromise;
if v == 0 goto label;
v = v.<io.netty.resolver.dns.DnsQueryContext: io.netty.channel.Channel channel>;
v = interfaceinvoke v.<io.netty.channel.Channel: io.netty.channel.ChannelFuture writeAndFlush(java.lang.Object,io.netty.channel.ChannelPromise)>(v, v);
goto label;
label:
v = v.<io.netty.resolver.dns.DnsQueryContext: io.netty.channel.Channel channel>;
v = interfaceinvoke v.<io.netty.channel.Channel: io.netty.channel.ChannelFuture write(java.lang.Object,io.netty.channel.ChannelPromise)>(v, v);
label:
v = interfaceinvoke v.<io.netty.channel.ChannelFuture: boolean isDone()>();
if v == 0 goto label;
v = v.<io.netty.resolver.dns.DnsQueryContext: long queryTimeoutMillis>;
specialinvoke v.<io.netty.resolver.dns.DnsQueryContext: void onQueryWriteCompletion(long,io.netty.channel.ChannelFuture)>(v, v);
goto label;
label:
v = new io.netty.resolver.dns.DnsQueryContext$4;
specialinvoke v.<io.netty.resolver.dns.DnsQueryContext$4: void <init>(io.netty.resolver.dns.DnsQueryContext,io.netty.channel.ChannelFuture)>(v, v);
interfaceinvoke v.<io.netty.channel.ChannelFuture: io.netty.channel.ChannelFuture addListener(io.netty.util.concurrent.GenericFutureListener)>(v);
label:
return;
}
private void onQueryWriteCompletion(long, io.netty.channel.ChannelFuture)
{
java.lang.Throwable v;
io.netty.util.concurrent.ScheduledFuture v;
io.netty.resolver.dns.DnsQueryContext v;
long v;
io.netty.channel.EventLoop v;
io.netty.resolver.dns.DnsQueryContext$5 v;
io.netty.channel.ChannelFuture v;
io.netty.channel.Channel v;
java.util.concurrent.TimeUnit v;
byte v;
int v;
java.lang.String v, v;
boolean v;
v := @this: io.netty.resolver.dns.DnsQueryContext;
v := @parameter: long;
v := @parameter: io.netty.channel.ChannelFuture;
v = interfaceinvoke v.<io.netty.channel.ChannelFuture: boolean isSuccess()>();
if v != 0 goto label;
v = v.<io.netty.resolver.dns.DnsQueryContext: int id>;
v = virtualinvoke v.<io.netty.resolver.dns.DnsQueryContext: java.lang.String protocol()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int,java.lang.String)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("failed to send a query \'\u0001\' via \u0001");
v = interfaceinvoke v.<io.netty.channel.ChannelFuture: java.lang.Throwable cause()>();
virtualinvoke v.<io.netty.resolver.dns.DnsQueryContext: boolean finishFailure(java.lang.String,java.lang.Throwable,boolean)>(v, v, 0);
return;
label:
v = v cmp 0L;
if v <= 0 goto label;
v = v.<io.netty.resolver.dns.DnsQueryContext: io.netty.channel.Channel channel>;
v = interfaceinvoke v.<io.netty.channel.Channel: io.netty.channel.EventLoop eventLoop()>();
v = new io.netty.resolver.dns.DnsQueryContext$5;
specialinvoke v.<io.netty.resolver.dns.DnsQueryContext$5: void <init>(io.netty.resolver.dns.DnsQueryContext,long)>(v, v);
v = <java.util.concurrent.TimeUnit: java.util.concurrent.TimeUnit MILLISECONDS>;
v = interfaceinvoke v.<io.netty.channel.EventLoop: io.netty.util.concurrent.ScheduledFuture schedule(java.lang.Runnable,long,java.util.concurrent.TimeUnit)>(v, v, v);
v.<io.netty.resolver.dns.DnsQueryContext: io.netty.util.concurrent.Future timeoutFuture> = v;
label:
return;
}
void finishSuccess(io.netty.channel.AddressedEnvelope, boolean)
{
io.netty.handler.codec.dns.DnsRecord v;
java.lang.Object[] v;
io.netty.resolver.dns.DnsQueryContext v;
io.netty.channel.AddressedEnvelope v;
io.netty.handler.codec.dns.DnsSection v, v;
int v;
boolean v, v, v, v;
io.netty.handler.codec.dns.DnsQuestion v, v;
io.netty.channel.Channel v, v;
io.netty.util.internal.logging.InternalLogger v, v;
java.lang.Object v;
v := @this: io.netty.resolver.dns.DnsQueryContext;
v := @parameter: io.netty.channel.AddressedEnvelope;
v := @parameter: boolean;
if v == 0 goto label;
v = specialinvoke v.<io.netty.resolver.dns.DnsQueryContext: boolean retryWithTcp(java.lang.Object)>(v);
if v != 0 goto label;
label:
v = interfaceinvoke v.<io.netty.channel.AddressedEnvelope: java.lang.Object content()>();
v = <io.netty.handler.codec.dns.DnsSection: io.netty.handler.codec.dns.DnsSection QUESTION>;
v = interfaceinvoke v.<io.netty.handler.codec.dns.DnsResponse: int count(io.netty.handler.codec.dns.DnsSection)>(v);
if v == 1 goto label;
v = <io.netty.resolver.dns.DnsQueryContext: io.netty.util.internal.logging.InternalLogger logger>;
v = v.<io.netty.resolver.dns.DnsQueryContext: io.netty.channel.Channel channel>;
interfaceinvoke v.<io.netty.util.internal.logging.InternalLogger: void warn(java.lang.String,java.lang.Object,java.lang.Object)>("{} Received a DNS response with invalid number of questions. Expected: 1, found: {}", v, v);
goto label;
label:
v = virtualinvoke v.<io.netty.resolver.dns.DnsQueryContext: io.netty.handler.codec.dns.DnsQuestion question()>();
v = <io.netty.handler.codec.dns.DnsSection: io.netty.handler.codec.dns.DnsSection QUESTION>;
v = interfaceinvoke v.<io.netty.handler.codec.dns.DnsResponse: io.netty.handler.codec.dns.DnsRecord recordAt(io.netty.handler.codec.dns.DnsSection)>(v);
v = virtualinvoke v.<java.lang.Object: boolean equals(java.lang.Object)>(v);
if v != 0 goto label;
v = <io.netty.resolver.dns.DnsQueryContext: io.netty.util.internal.logging.InternalLogger logger>;
v = newarray (java.lang.Object)[3];
v = v.<io.netty.resolver.dns.DnsQueryContext: io.netty.channel.Channel channel>;
v[0] = v;
v = virtualinvoke v.<io.netty.resolver.dns.DnsQueryContext: io.netty.handler.codec.dns.DnsQuestion question()>();
v[1] = v;
v[2] = v;
interfaceinvoke v.<io.netty.util.internal.logging.InternalLogger: void warn(java.lang.String,java.lang.Object[])>("{} Received a mismatching DNS response. Expected: [{}], found: {}", v);
goto label;
label:
v = specialinvoke v.<io.netty.resolver.dns.DnsQueryContext: boolean trySuccess(io.netty.channel.AddressedEnvelope)>(v);
if v == 0 goto label;
return;
label:
interfaceinvoke v.<io.netty.channel.AddressedEnvelope: boolean release()>();
label:
return;
}
private boolean trySuccess(io.netty.channel.AddressedEnvelope)
{
io.netty.util.concurrent.Promise v;
io.netty.resolver.dns.DnsQueryContext v;
io.netty.channel.AddressedEnvelope v;
boolean v;
v := @this: io.netty.resolver.dns.DnsQueryContext;
v := @parameter: io.netty.channel.AddressedEnvelope;
v = v.<io.netty.resolver.dns.DnsQueryContext: io.netty.util.concurrent.Promise promise>;
v = interfaceinvoke v.<io.netty.util.concurrent.Promise: boolean trySuccess(java.lang.Object)>(v);
return v;
}
final boolean finishFailure(java.lang.String, java.lang.Throwable, boolean)
{
java.lang.Throwable v;
io.netty.resolver.dns.DnsNameResolverException v, v;
io.netty.resolver.dns.DnsQueryContext v;
io.netty.resolver.dns.DnsNameResolverTimeoutException v;
int v, v, v;
java.lang.String v, v, v;
boolean v, v, v, v, v;
io.netty.util.concurrent.Promise v, v;
io.netty.handler.codec.dns.DnsQuestion v;
java.net.InetSocketAddress v, v, v;
java.lang.StringBuilder v, v, v, v, v, v, v, v, v;
v := @this: io.netty.resolver.dns.DnsQueryContext;
v := @parameter: java.lang.String;
v := @parameter: java.lang.Throwable;
v := @parameter: boolean;
v = v.<io.netty.resolver.dns.DnsQueryContext: io.netty.util.concurrent.Promise promise>;
v = interfaceinvoke v.<io.netty.util.concurrent.Promise: boolean isDone()>();
if v == 0 goto label;
return 0;
label:
v = virtualinvoke v.<io.netty.resolver.dns.DnsQueryContext: io.netty.handler.codec.dns.DnsQuestion question()>();
v = new java.lang.StringBuilder;
v = virtualinvoke v.<java.lang.String: int length()>();
v = v + 128;
specialinvoke v.<java.lang.StringBuilder: void <init>(int)>(v);
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(char)>(91);
v = v.<io.netty.resolver.dns.DnsQueryContext: int id>;
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(int)>(v);
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(": ");
v = v.<io.netty.resolver.dns.DnsQueryContext: java.net.InetSocketAddress nameServerAddr>;
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.Object)>(v);
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("] ");
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.Object)>(v);
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(char)>(32);
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(" (no stack trace available)");
if v == 0 goto label;
v = new io.netty.resolver.dns.DnsNameResolverTimeoutException;
v = v.<io.netty.resolver.dns.DnsQueryContext: java.net.InetSocketAddress nameServerAddr>;
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.String toString()>();
specialinvoke v.<io.netty.resolver.dns.DnsNameResolverTimeoutException: void <init>(java.net.InetSocketAddress,io.netty.handler.codec.dns.DnsQuestion,java.lang.String)>(v, v, v);
v = v;
v = v.<io.netty.resolver.dns.DnsQueryContext: boolean retryWithTcpOnTimeout>;
if v == 0 goto label;
v = specialinvoke v.<io.netty.resolver.dns.DnsQueryContext: boolean retryWithTcp(java.lang.Object)>(v);
if v == 0 goto label;
return 0;
label:
v = new io.netty.resolver.dns.DnsNameResolverException;
v = v.<io.netty.resolver.dns.DnsQueryContext: java.net.InetSocketAddress nameServerAddr>;
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.String toString()>();
specialinvoke v.<io.netty.resolver.dns.DnsNameResolverException: void <init>(java.net.InetSocketAddress,io.netty.handler.codec.dns.DnsQuestion,java.lang.String,java.lang.Throwable)>(v, v, v, v);
v = v;
label:
v = v.<io.netty.resolver.dns.DnsQueryContext: io.netty.util.concurrent.Promise promise>;
v = interfaceinvoke v.<io.netty.util.concurrent.Promise: boolean tryFailure(java.lang.Throwable)>(v);
return v;
}
private boolean retryWithTcp(java.lang.Object)
{
io.netty.bootstrap.Bootstrap v, v;
io.netty.resolver.dns.DnsQueryContext v;
java.lang.Object v;
java.net.InetSocketAddress v;
io.netty.channel.ChannelFuture v;
io.netty.resolver.dns.DnsQueryContext$6 v;
v := @this: io.netty.resolver.dns.DnsQueryContext;
v := @parameter: java.lang.Object;
v = v.<io.netty.resolver.dns.DnsQueryContext: io.netty.bootstrap.Bootstrap socketBootstrap>;
if v != null goto label;
return 0;
label:
v = v.<io.netty.resolver.dns.DnsQueryContext: io.netty.bootstrap.Bootstrap socketBootstrap>;
v = v.<io.netty.resolver.dns.DnsQueryContext: java.net.InetSocketAddress nameServerAddr>;
v = virtualinvoke v.<io.netty.bootstrap.Bootstrap: io.netty.channel.ChannelFuture connect(java.net.SocketAddress)>(v);
v = new io.netty.resolver.dns.DnsQueryContext$6;
specialinvoke v.<io.netty.resolver.dns.DnsQueryContext$6: void <init>(io.netty.resolver.dns.DnsQueryContext,java.lang.Object)>(v, v);
interfaceinvoke v.<io.netty.channel.ChannelFuture: io.netty.channel.ChannelFuture addListener(io.netty.util.concurrent.GenericFutureListener)>(v);
return 1;
}
private void finishOriginal(java.lang.Object, io.netty.util.concurrent.Future)
{
java.lang.Throwable v;
io.netty.util.concurrent.Promise v;
io.netty.resolver.dns.DnsQueryContext v;
java.lang.Object v;
io.netty.util.concurrent.Future v;
boolean v;
v := @this: io.netty.resolver.dns.DnsQueryContext;
v := @parameter: java.lang.Object;
v := @parameter: io.netty.util.concurrent.Future;
v = v instanceof java.lang.Throwable;
if v == 0 goto label;
v = interfaceinvoke v.<io.netty.util.concurrent.Future: java.lang.Throwable cause()>();
staticinvoke <io.netty.util.internal.ThrowableUtil: void addSuppressed(java.lang.Throwable,java.lang.Throwable)>(v, v);
v = v.<io.netty.resolver.dns.DnsQueryContext: io.netty.util.concurrent.Promise promise>;
interfaceinvoke v.<io.netty.util.concurrent.Promise: boolean tryFailure(java.lang.Throwable)>(v);
goto label;
label:
virtualinvoke v.<io.netty.resolver.dns.DnsQueryContext: void finishSuccess(io.netty.channel.AddressedEnvelope,boolean)>(v, 0);
label:
return;
}
static void <clinit>()
{
io.netty.handler.codec.dns.TcpDnsQueryEncoder v;
long v, v;
java.lang.Long v;
io.netty.util.internal.logging.InternalLogger v, v;
java.lang.Class v;
boolean v, v;
v = class "Lio/netty/resolver/dns/DnsQueryContext;";
v = virtualinvoke v.<java.lang.Class: boolean desiredAssertionStatus()>();
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
<io.netty.resolver.dns.DnsQueryContext: boolean $assertionsDisabled> = v;
v = staticinvoke <io.netty.util.internal.logging.InternalLoggerFactory: io.netty.util.internal.logging.InternalLogger getInstance(java.lang.Class)>(class "Lio/netty/resolver/dns/DnsQueryContext;");
<io.netty.resolver.dns.DnsQueryContext: io.netty.util.internal.logging.InternalLogger logger> = v;
v = staticinvoke <io.netty.util.internal.SystemPropertyUtil: long getLong(java.lang.String,long)>("io.netty.resolver.dns.idReuseOnTimeoutDelayMillis", 10000L);
<io.netty.resolver.dns.DnsQueryContext: long ID_REUSE_ON_TIMEOUT_DELAY_MILLIS> = v;
v = <io.netty.resolver.dns.DnsQueryContext: io.netty.util.internal.logging.InternalLogger logger>;
v = <io.netty.resolver.dns.DnsQueryContext: long ID_REUSE_ON_TIMEOUT_DELAY_MILLIS>;
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
interfaceinvoke v.<io.netty.util.internal.logging.InternalLogger: void debug(java.lang.String,java.lang.Object)>("-Dio.netty.resolver.dns.idReuseOnTimeoutDelayMillis: {}", v);
v = new io.netty.handler.codec.dns.TcpDnsQueryEncoder;
specialinvoke v.<io.netty.handler.codec.dns.TcpDnsQueryEncoder: void <init>()>();
<io.netty.resolver.dns.DnsQueryContext: io.netty.handler.codec.dns.TcpDnsQueryEncoder TCP_ENCODER> = v;
return;
}
}