formatting changes

adc5940d1523f4deba561b76a27d29950f2a6f18

BPplays <andymalbp@gmail.com>

2 files changed, +49 -32Showing whitespace changes
server.js+3 -32
@@ -9,7 +9,6 @@ import path from 'node:path';
99import util from 'node:util';
1010import net from 'node:net';
1111import dns from 'node:dns';
12-import { promises as dnsPromise } from 'node:dns';
1312import process from 'node:process';
1413import { fileURLToPath } from 'node:url';
1514
@@ -71,6 +70,7 @@ import {
7170 getSeparator,
7271 stringToBool,
7372 urlHostnameToIPv6,
73+ canResolve,
7474} from './src/util.js';
7575import { UPLOADS_DIRECTORY } from './src/constants.js';
7676import { ensureThumbnailCache } from './src/endpoints/thumbnails.js';
@@ -383,37 +383,6 @@ function getSessionCookieAge() {
383383 return undefined;
384384}
385385
386-
387-async function canResolve(name, useIPv6 = true, useIPv4 = true) {
388- try {
389- let v6Resolved = false;
390- let v4Resolved = false;
391-
392- if (useIPv6) {
393- try {
394- await dnsPromise.resolve6(name);
395- v6Resolved = true;
396- } catch (error) {
397- v6Resolved = false;
398- }
399- }
400-
401- if (useIPv4) {
402- try {
403- await dnsPromise.resolve(name);
404- v4Resolved = true;
405- } catch (error) {
406- v4Resolved = false;
407- }
408- }
409-
410- return v6Resolved || v4Resolved;
411-
412- } catch (error) {
413- return false;
414- }
415-}
416-
417386async function getHasIP() {
418387 let hasIPv6 = false;
419388 let hasIPv6Local = false;
@@ -794,6 +763,8 @@ async function getAutorunHostname(useIPv6, useIPv4) {
794763 * Tasks that need to be run after the server starts listening.
795764 * @param {boolean} v6Failed If the server failed to start on IPv6
796765 * @param {boolean} v4Failed If the server failed to start on IPv4
766+ * @param {boolean} useIPv6 If the server is using IPv6
767+ * @param {boolean} useIPv4 If the server is using IPv4
797768 */
798769const postSetupTasks = async function (v6Failed, v4Failed, useIPv6, useIPv4) {
799770 const autorunUrl = new URL(
src/util.js+46 -0
@@ -5,6 +5,7 @@ import process from 'node:process';
55import { Readable } from 'node:stream';
66import { createRequire } from 'node:module';
77import { Buffer } from 'node:buffer';
8+import { promises as dnsPromise } from 'node:dns';
89
910import yaml from 'yaml';
1011import { sync as commandExistsSync } from 'command-exists';
@@ -692,6 +693,10 @@ export function isValidUrl(url) {
692693 }
693694}
694695
696+/**
697+ * removes starting `[` or ending `]` from hostname.
698+ * @param {string} hostname hostname to use
699+ */
695700export function urlHostnameToIPv6(hostname) {
696701 if (hostname.startsWith('[')) {
697702 hostname = hostname.slice(1);
@@ -702,6 +707,47 @@ export function urlHostnameToIPv6(hostname) {
702707 return hostname;
703708}
704709
710+/**
711+ * Test if can resolve a dns name.
712+ * @param {string} name Domain name to use
713+ * @param {boolean} useIPv6 If use IPv6
714+ * @param {boolean} useIPv4 If use IPv4
715+ */
716+export async function canResolve(name, useIPv6 = true, useIPv4 = true) {
717+ try {
718+ let v6Resolved = false;
719+ let v4Resolved = false;
720+
721+ if (useIPv6) {
722+ try {
723+ await dnsPromise.resolve6(name);
724+ v6Resolved = true;
725+ } catch (error) {
726+ v6Resolved = false;
727+ }
728+ }
729+
730+ if (useIPv4) {
731+ try {
732+ await dnsPromise.resolve(name);
733+ v4Resolved = true;
734+ } catch (error) {
735+ v4Resolved = false;
736+ }
737+ }
738+
739+ return v6Resolved || v4Resolved;
740+
741+ } catch (error) {
742+ return false;
743+ }
744+}
745+
746+
747+/**
748+ * converts string to boolean accepts 'true' or 'false' else it returns the string put in
749+ * @param {string} str Input string
750+ */
705751export function stringToBool(str) {
706752 if (str === 'true') return true;
707753 if (str === 'false') return false;