2026-03-17 13:31:18 -07:00

260 lines
8.3 KiB
Java

/*
* Decompiled with CFR 0.152.
*
* Could not load the following classes:
* javax.baja.naming.BHost
* javax.baja.naming.BOrd
* javax.baja.naming.BOrdScheme
* javax.baja.naming.InvalidOrdBaseException
* javax.baja.naming.OrdQuery
* javax.baja.naming.OrdQueryList
* javax.baja.naming.OrdTarget
* javax.baja.naming.SyntaxException
* javax.baja.naming.UnresolvedException
* javax.baja.nre.util.TextUtil
* javax.baja.security.AuthenticationException
* javax.baja.sys.BObject
* javax.baja.sys.Sys
* javax.baja.sys.Type
*/
package com.tridium.platform.daemon;
import com.tridium.platform.daemon.BDaemonSession;
import com.tridium.platform.daemon.DaemonSSLRequiredException;
import java.util.StringTokenizer;
import javax.baja.naming.BHost;
import javax.baja.naming.BOrd;
import javax.baja.naming.BOrdScheme;
import javax.baja.naming.InvalidOrdBaseException;
import javax.baja.naming.OrdQuery;
import javax.baja.naming.OrdQueryList;
import javax.baja.naming.OrdTarget;
import javax.baja.naming.SyntaxException;
import javax.baja.naming.UnresolvedException;
import javax.baja.nre.util.TextUtil;
import javax.baja.security.AuthenticationException;
import javax.baja.sys.BObject;
import javax.baja.sys.Sys;
import javax.baja.sys.Type;
/*
* Illegal identifiers - consider using --renameillegalidents true
*/
public class BDaemonScheme
extends BOrdScheme {
private static final String HTTPS_PREFIX = "https://";
public static final BDaemonScheme INSTANCE = new BDaemonScheme();
public static final int DEFAULT_PORT = 3011;
public static final int DEFAULT_SSL_PORT = 5011;
public static final Type TYPE;
static /* synthetic */ Class class$com$tridium$platform$daemon$BDaemonScheme;
public OrdQuery parse(String string) {
return new DaemonQuery(string);
}
public OrdTarget resolve(OrdTarget ordTarget, OrdQuery ordQuery) throws SyntaxException, UnresolvedException {
if (!(ordTarget.get() instanceof BHost)) {
throw new InvalidOrdBaseException();
}
BHost bHost = (BHost)ordTarget.get();
DaemonQuery daemonQuery = (DaemonQuery)ordQuery;
int n = daemonQuery.port;
String[] stringArray = daemonQuery.tunnelAuthorities;
BDaemonSession bDaemonSession = null;
try {
bDaemonSession = BDaemonSession.make(bHost, n, stringArray);
bDaemonSession.connect();
}
catch (DaemonSSLRequiredException daemonSSLRequiredException) {
BOrd bOrd;
if (bDaemonSession != null) {
bDaemonSession.close();
}
if ((bOrd = BDaemonScheme.convert(bHost, daemonSSLRequiredException.getNewLocation())) != null) {
return bOrd.resolve();
}
}
catch (AuthenticationException authenticationException) {
throw authenticationException;
}
catch (Exception exception) {
throw new UnresolvedException(ordQuery.toString(), (Throwable)exception);
}
return new OrdTarget(ordTarget, (BObject)bDaemonSession);
}
public static BOrd convert(BHost bHost, String string) {
if (string.startsWith(HTTPS_PREFIX)) {
String string2 = string.substring(HTTPS_PREFIX.length());
StringTokenizer stringTokenizer = new StringTokenizer(string2, ":");
String string3 = null;
string2 = stringTokenizer.nextToken();
if (stringTokenizer.hasMoreTokens()) {
string3 = stringTokenizer.nextToken();
return BDaemonScheme.createSSLOrd(bHost.getAbsoluteOrd(), string3);
}
}
return null;
}
private static final BOrd createSSLOrd(BOrd bOrd, String string) {
int n = 0;
n = string.indexOf("/");
if (n > 0) {
string = string.substring(0, n);
StringBuffer stringBuffer = new StringBuffer();
stringBuffer.append(bOrd.toString()).append("|platformssl:");
if (string != null && string.length() > 0) {
stringBuffer.append(string);
}
String string2 = stringBuffer.toString();
return BOrd.make((String)string2);
}
return null;
}
static String[] validateAuthorities(String[] stringArray) {
if (stringArray == null) {
return null;
}
int n = stringArray.length;
if (n < 1) {
return null;
}
String[] stringArray2 = new String[n];
int n2 = 0;
int n3 = 0;
while (n3 < n) {
if (stringArray[n3] != null && !stringArray[n3].equals("")) {
stringArray2[n2] = stringArray[n3];
++n2;
}
++n3;
}
String[] stringArray3 = new String[n2];
System.arraycopy(stringArray2, 0, stringArray3, 0, n2);
return stringArray3;
}
public Type getType() {
return TYPE;
}
static /* synthetic */ Class class(String string, boolean bl) {
try {
Class<?> clazz = Class.forName(string);
if (!bl) {
clazz = clazz.getComponentType();
}
return clazz;
}
catch (ClassNotFoundException classNotFoundException) {
throw new NoClassDefFoundError(classNotFoundException.getMessage());
}
}
private BDaemonScheme() {
super("platform");
}
static {
Class clazz = class$com$tridium$platform$daemon$BDaemonScheme;
if (clazz == null) {
clazz = class$com$tridium$platform$daemon$BDaemonScheme = BDaemonScheme.class("[Lcom.tridium.platform.daemon.BDaemonScheme;", false);
}
TYPE = Sys.loadType((Class)clazz);
}
/*
* Illegal identifiers - consider using --renameillegalidents true
*/
public static class DaemonQuery
implements OrdQuery {
int port;
String[] tunnelAuthorities;
public boolean isHost() {
return false;
}
public boolean isSession() {
return true;
}
public void normalize(OrdQueryList ordQueryList, int n) {
ordQueryList.shiftToHost(n);
}
public String getScheme() {
return "platform";
}
public String getBody() {
StringBuffer stringBuffer = new StringBuffer();
if (this.port != this.getDefaultPort()) {
stringBuffer.append(String.valueOf(this.port));
}
if (this.tunnelAuthorities != null) {
int n = 0;
while (n < this.tunnelAuthorities.length) {
if (this.tunnelAuthorities[n] != null && !this.tunnelAuthorities[n].equals("")) {
stringBuffer.append("/").append(this.tunnelAuthorities[n]);
}
++n;
}
}
return stringBuffer.toString();
}
public String toString() {
return "platform:" + this.getBody();
}
public int getDefaultPort() {
return 3011;
}
public int getPort() {
return this.port;
}
public String[] getTunnelAuthorities() {
return this.tunnelAuthorities;
}
private final /* synthetic */ void this() {
this.tunnelAuthorities = null;
}
protected DaemonQuery(String string) {
this.this();
string = string.trim();
if (string.length() == 0) {
this.port = this.getDefaultPort();
} else {
int n = string.indexOf(47);
if (n >= 0) {
this.port = n == 0 ? this.getDefaultPort() : Integer.parseInt(string.substring(0, n));
string = string.substring(n);
this.tunnelAuthorities = BDaemonScheme.validateAuthorities(TextUtil.splitAndTrim((String)string, (char)'/'));
} else {
this.port = Integer.parseInt(string);
}
}
}
protected DaemonQuery(int n) {
this.this();
this.port = n;
}
protected DaemonQuery(int n, String[] stringArray) {
this.this();
this.port = n;
this.tunnelAuthorities = BDaemonScheme.validateAuthorities(stringArray);
}
}
}