currentUrl = this.publicAddress;
} else {
String scheme;
String host;
int port;
HostAndPort forwardedHostData = getForwardedHostData(context);
if (forwardedHostData != null) {
scheme = determineScheme(context, this.scheme);
host = forwardedHostData.getHostText();
port = forwardedHostData.getPortOrDefault(-1);
} else {
URI absoluteRequestURI = getAbsoluteRequestUri(context);
if (absoluteRequestURI != null) {
scheme = determineScheme(context, absoluteRequestURI.getScheme());
host = absoluteRequestURI.getHost();
port = absoluteRequestURI.getPort();
} else {
scheme = determineScheme(context, this.scheme);
HostAndPort hostData = getHostData(context);
if (hostData != null) {
host = hostData.getHostText();
port = hostData.getPortOrDefault(-1);
} else {
BindAddress bindAddress = context.getBindAddress();
int bindPort = bindAddress.getPort();
host = bindAddress.getHost();
port = ProtocolUtil.isDefaultPortForScheme(bindPort, this.scheme) ? -1 : bindPort;