@samitouri / QOSami-HFS / commits / 72fd0bdc

admin/internet: show last result for dyndns

Massimo Melina committed Feb 2, 2025 at 23:02 UTC 72fd0bdcc54301aaae9198f0e6ece3a6fe52ba8e
1 file changed +5 -3
src/ddns.ts
+5 -3
@@ -33,6 +33,7 @@ events.onListeners(EVENT, cbs => {
33
34 export interface DynamicDnsResult { ts: string, error: string, url: string }
35 let stopEvent: any
36 +let last: DynamicDnsResult | undefined
37 dynamicDnsUrl.sub(v => {
38 stopEvent?.()
39 if (!v) return
@@ -47,13 +48,14 @@ dynamicDnsUrl.sub(v => {
48 }, (err: any) => err.code || err.message || String(err) )
49 return { ts: new Date().toJSON(), error, url }
50 }))
50 - const best = _.find(all, 'error') || all[0] // the system is designed for just one result, and we give precedence to errors
51 - events.emit('dynamicDnsError', best)
52 - console.log('dynamic dns update', best?.error || 'ok')
51 + last = _.find(all, 'error') || all[0] // the system is designed for just one result, and we give precedence to errors
52 + events.emit('dynamicDnsError', last)
53 + console.log('dynamic dns update', last?.error || 'ok')
54 })
55 })
56
57 export async function* get_dynamic_dns_error() {
58 + if (last) yield last
59 while (1) {
60 const res = await events.once('dynamicDnsError')
61 yield res[0]