mirror of
https://github.com/fosrl/pangolin.git
synced 2026-10-30 15:39:06 +01:00
40 lines
1.0 KiB
TypeScript
40 lines
1.0 KiB
TypeScript
/*
|
|
* This file is part of a proprietary work.
|
|
*
|
|
* Copyright (c) 2025-2026 Fossorial, Inc.
|
|
* All rights reserved.
|
|
*
|
|
* This file is licensed under the Fossorial Commercial License.
|
|
* You may not use this file except in compliance with the License.
|
|
* Unauthorized use, copying, modification, or distribution is strictly prohibited.
|
|
*
|
|
* This file is not licensed under the AGPLv3.
|
|
*/
|
|
|
|
import { AuthoritativeDNSServer } from "#private/lib/dns";
|
|
import { privateConfig } from "#private/lib/config";
|
|
|
|
let dnsServer: AuthoritativeDNSServer | undefined;
|
|
|
|
export async function startDnsServer(
|
|
options: { requireLicense?: boolean } = {}
|
|
) {
|
|
const dnsConfig = privateConfig.getRawPrivateConfig().dns;
|
|
if (!dnsConfig || !dnsConfig.enabled) {
|
|
return;
|
|
}
|
|
|
|
dnsServer = new AuthoritativeDNSServer(dnsConfig.listen_port, options);
|
|
|
|
await dnsServer.start();
|
|
}
|
|
|
|
export async function stopDnsServer() {
|
|
if (!dnsServer) {
|
|
return;
|
|
}
|
|
|
|
await dnsServer.stop();
|
|
dnsServer = undefined;
|
|
}
|