2020-04-01 15:56:23 -04:00
|
|
|
import {ServerAddress} from "tc-shared/ui/server";
|
|
|
|
import * as loader from "tc-loader";
|
2019-10-25 19:51:40 -04:00
|
|
|
|
2020-04-01 15:56:23 -04:00
|
|
|
import {AddressTarget, ResolveOptions} from "tc-shared/dns";
|
|
|
|
import * as dns_handler from "tc-native/dns";
|
2019-10-25 19:51:40 -04:00
|
|
|
|
2020-04-01 15:56:23 -04:00
|
|
|
export function supported() { return true; }
|
|
|
|
export async function resolve_address(address: ServerAddress, _options?: ResolveOptions) : Promise<AddressTarget> {
|
|
|
|
/* backwards compatibility */
|
|
|
|
if(typeof(address) === "string") {
|
|
|
|
address = {
|
|
|
|
host: address,
|
|
|
|
port: 9987
|
2019-10-25 19:51:40 -04:00
|
|
|
}
|
|
|
|
}
|
2020-04-01 15:56:23 -04:00
|
|
|
|
|
|
|
return new Promise<AddressTarget>((resolve, reject) => {
|
|
|
|
dns_handler.resolve_cr(address.host, address.port, result => {
|
|
|
|
if(typeof(result) === "string")
|
|
|
|
reject(result);
|
|
|
|
else
|
|
|
|
resolve({
|
|
|
|
target_ip: result.host,
|
|
|
|
target_port: result.port
|
|
|
|
});
|
|
|
|
});
|
|
|
|
})
|
2019-10-25 19:51:40 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
loader.register_task(loader.Stage.JAVASCRIPT_INITIALIZING, {
|
|
|
|
name: "Native DNS initialized",
|
|
|
|
function: async () => {
|
|
|
|
dns_handler.initialize();
|
|
|
|
},
|
|
|
|
priority: 10
|
|
|
|
});
|