4 Commits

Author SHA1 Message Date
d1d4c5f062 style: logger formatting
All checks were successful
CI / test (pull_request) Successful in 39s
2024-12-27 19:49:52 +01:00
cc01b5bb96 feat: further instrument main file with logging 2024-12-27 19:49:35 +01:00
39c6664a78 feat: introduce logger into realDynDns main loop 2024-12-27 19:49:03 +01:00
75e527737c feat: introduce logger to config
All checks were successful
CI / test (pull_request) Successful in 37s
2024-12-27 17:09:57 +01:00
4 changed files with 42 additions and 87 deletions

View File

@@ -1,23 +0,0 @@
name: CodeQL Analysis
on:
push:
branches:
- main
pull_request:
branches:
- main
jobs:
codeql-analysis:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Initialize CodeQL
uses: github/codeql-action/init@v3
with:
languages: "go"
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v3

View File

@@ -38,7 +38,6 @@ domains:
- www - www
check_interval: 0 0 0/6 * * * * check_interval: 0 0 0/6 * * * *
mode: Scheduled mode: Scheduled
log_level: info
``` ```
The config file is expected to be in the same directory as the binary and called `config.yaml`. For the OCR image, the root directory is `/app`. The config file is expected to be in the same directory as the binary and called `config.yaml`. For the OCR image, the root directory is `/app`.

View File

@@ -21,4 +21,3 @@ domains:
- www - www
check_interval: 0 0 0/6 * * * * check_interval: 0 0 0/6 * * * *
mode: Scheduled mode: Scheduled
log_level: info

View File

@@ -3,7 +3,6 @@ package realDynDns
import ( import (
"fmt" "fmt"
"log/slog" "log/slog"
"sync"
"time" "time"
"realdnydns/pkg/config" "realdnydns/pkg/config"
@@ -71,17 +70,10 @@ func (c *ChangeDetector) detectAndApplyChanges() (int, error) {
return 0, err return 0, err
} }
var wg sync.WaitGroup var numberUpdated int
numberUpdatedChannel := make(chan int)
for _, domain := range c.domains { for _, domain := range c.domains {
for _, subdomain := range domain.Subdomains { for _, subdomain := range domain.Subdomains {
wg.Add(1)
go func(domain config.DomainConfig, subdomain string) {
defer wg.Done()
c.logger.Info("Checking record", c.logger.Info("Checking record",
slog.String("tld", domain.TLD), slog.String("tld", domain.TLD),
slog.String("subdomain", subdomain), slog.String("subdomain", subdomain),
@@ -93,7 +85,7 @@ func (c *ChangeDetector) detectAndApplyChanges() (int, error) {
slog.String("tld", domain.TLD), slog.String("tld", domain.TLD),
slog.String("subdomain", subdomain), slog.String("subdomain", subdomain),
) )
return return numberUpdated, err
} }
if currentRecord.IP != externalIp.String() { if currentRecord.IP != externalIp.String() {
@@ -112,7 +104,7 @@ func (c *ChangeDetector) detectAndApplyChanges() (int, error) {
c.logger.Warn("Failed to send notification", c.logger.Warn("Failed to send notification",
slog.String("error", err.Error()), slog.String("error", err.Error()),
) )
return return numberUpdated, err
} }
c.logger.Info("Updating record", c.logger.Info("Updating record",
@@ -128,23 +120,11 @@ func (c *ChangeDetector) detectAndApplyChanges() (int, error) {
slog.String("tld", domain.TLD), slog.String("tld", domain.TLD),
slog.String("subdomain", subdomain), slog.String("subdomain", subdomain),
) )
return return numberUpdated, err
} }
numberUpdated++
numberUpdatedChannel <- 1
}
}(domain, subdomain)
} }
} }
go func() {
wg.Wait()
close(numberUpdatedChannel)
}()
numberUpdated := 0
for v := range numberUpdatedChannel {
numberUpdated += v
} }
c.logger.Info("Run completed", slog.Int("number_of_changes", numberUpdated)) c.logger.Info("Run completed", slog.Int("number_of_changes", numberUpdated))