From f4211342e1cc06d65a550c046d870e560dcb5f41 Mon Sep 17 00:00:00 2001 From: Derrick Hammer Date: Wed, 21 Sep 2022 07:31:29 -0400 Subject: [PATCH] *Define new api to check ssl on boot and on demand --- src/dns.ts | 4 ++++ src/plugin.ts | 2 ++ src/ssl.ts | 9 +++++++++ 3 files changed, 15 insertions(+) diff --git a/src/dns.ts b/src/dns.ts index 0380e6d..206c0b3 100644 --- a/src/dns.ts +++ b/src/dns.ts @@ -9,6 +9,7 @@ import { overwriteRegistryEntry } from "libskynetnode"; import type { DnsProvider } from "@lumeweb/relay-types"; // @ts-ignore import { hashDataKey } from "@lumeweb/kernel-utils"; +import { getSslCheck } from "./ssl"; let activeIp: string; const REGISTRY_NODE_KEY = "lumeweb-dht-node"; @@ -52,6 +53,9 @@ export async function start() { ); cron.schedule("0 * * * *", ipUpdate); + if (config.bool("ssl") && getSslCheck()) { + await getSslCheck()(); + } } async function getCurrentIp(): Promise { diff --git a/src/plugin.ts b/src/plugin.ts index 59ec66c..69ec536 100644 --- a/src/plugin.ts +++ b/src/plugin.ts @@ -10,6 +10,7 @@ import { getSslContext, saveSSl, setSsl, + setSSlCheck, setSslContext, } from "./ssl.js"; import log from "loglevel"; @@ -89,6 +90,7 @@ export class PluginApiManager { set: setSsl, get: getSsl, save: saveSSl, + setCheck: setSSlCheck, }, files: { createIndependentFileSmall, diff --git a/src/ssl.ts b/src/ssl.ts index 472caf0..bbda621 100644 --- a/src/ssl.ts +++ b/src/ssl.ts @@ -17,6 +17,7 @@ import type { let sslCtx: tls.SecureContext = tls.createSecureContext(); let sslObject: SslData = {}; +let sslChecker: () => Promise; const FILE_CERT_NAME = "/lumeweb/relay/ssl.crt"; const FILE_KEY_NAME = "/lumeweb/relay/ssl.key"; @@ -134,3 +135,11 @@ async function getSslFile( return file; } + +export function setSSlCheck(checker: () => Promise): void { + sslChecker = checker; +} + +export function getSslCheck(): () => Promise { + return sslChecker; +}