Skip to content

Commit

Permalink
refactor: rename worker to monitor, change ip to string
Browse files Browse the repository at this point in the history
  • Loading branch information
nidbCN committed Dec 28, 2024
1 parent 37db775 commit d0716e7
Show file tree
Hide file tree
Showing 7 changed files with 39 additions and 34 deletions.
6 changes: 3 additions & 3 deletions AliCdnSSLWorker/Clients/RefreshRequestClient.cs
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,11 @@ public class RefreshRequestClient
{
public HttpClient Client { get; }

public RefreshRequestClient(HttpClient httpClient, IOptions<ApiConfig> options)
public RefreshRequestClient(HttpClient httpClient, IOptions<ForceMonitorConfig> options)
{
var ip = options.Value.IpAddress.Equals(IPAddress.Any)
var ip = options.Value.Ip.Equals(IPAddress.Any)
? IPAddress.Loopback
: options.Value.IpAddress;
: options.Value.Ip;

httpClient.BaseAddress = new($"http://{ip}:{options.Value.Port}/");
httpClient.DefaultRequestHeaders.Add(
Expand Down
11 changes: 0 additions & 11 deletions AliCdnSSLWorker/Configs/ApiConfig.cs

This file was deleted.

8 changes: 8 additions & 0 deletions AliCdnSSLWorker/Configs/ForceMonitorConfig.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
namespace AliCdnSSLWorker.Configs;

public record ForceMonitorConfig
{
public required uint Port { get; init; } = 5057;

public required string Ip { get; init; } = "0.0.0.0";
}
10 changes: 10 additions & 0 deletions AliCdnSSLWorker/Extensions/ForceMonitorConfigExtension.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
using System.Net;
using AliCdnSSLWorker.Configs;

namespace AliCdnSSLWorker.Extensions;

public static class ForceMonitorConfigExtension
{
public static IPAddress GetIpAddress(this ForceMonitorConfig config)
=> IPAddress.TryParse(config.Ip, out var ip) ? ip : IPAddress.Any;
}
Original file line number Diff line number Diff line change
@@ -1,22 +1,21 @@
using System.Net;
using AliCdnSSLWorker.Configs;
using AliCdnSSLWorker.Extensions;
using AliCdnSSLWorker.Services;
using Microsoft.Extensions.Options;

namespace AliCdnSSLWorker.Workers;
public class ApiWorker(ILogger<ApiWorker> logger,
namespace AliCdnSSLWorker.Monitors;

public class ForceMonitor(ILogger<ForceMonitor> logger,
IOptions<CertConfig> certOptions,
IOptions<ApiConfig> apiOptions,
IOptions<ForceMonitorConfig> forceMonitorOptions,
AliCdnService aliCdnService,
CertScanService certScanService
) : BackgroundService
{
private readonly CertConfig _certConfig = certOptions.Value;
private readonly ApiConfig _apiConfig = apiOptions.Value;

private void Update()
{
foreach (var domain in _certConfig.DomainList)
foreach (var domain in certOptions.Value.DomainList)
{
logger.LogInformation("Update domain {d}", domain);
var certPair = certScanService.GetCertByDomain(domain);
Expand All @@ -37,16 +36,15 @@ protected override Task ExecuteAsync(CancellationToken stoppingToken)
{
using var listener = new HttpListener();

var ip = _apiConfig.IpAddress.MapToIPv4().ToString();
var ip = forceMonitorOptions.Value.GetIpAddress().ToString();
var port = forceMonitorOptions.Value.Port;

logger.LogInformation("Start api listen on {ip}:{port}.", ip, _apiConfig.Port);
logger.LogInformation("Start api listen on {ip}:{port}.", ip, port);

if (_apiConfig.IpAddress.Equals(IPAddress.Any))
{
if (forceMonitorOptions.Value.GetIpAddress().Equals(IPAddress.Any))
ip = "+";
}

listener.Prefixes.Add($"http://{ip}:{_apiConfig.Port}/force_refresh/");
listener.Prefixes.Add($"http://{ip}:{port}/force_refresh/");

listener.Start();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@
using AliCdnSSLWorker.Services;
using Microsoft.Extensions.Options;

namespace AliCdnSSLWorker.Workers;
namespace AliCdnSSLWorker.Monitors;

public class SslWorker(ILogger<SslWorker> logger,
public class TimerMonitor(ILogger<TimerMonitor> logger,
IOptions<CertConfig> options,
AliCdnService aliCdnService,
CertScanService certScanService) : BackgroundService
Expand Down
10 changes: 5 additions & 5 deletions AliCdnSSLWorker/Program.cs
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
using AliCdnSSLWorker.Clients;
using AliCdnSSLWorker.Configs;
using AliCdnSSLWorker.Monitors;
using AliCdnSSLWorker.Services;
using AliCdnSSLWorker.Workers;
using Microsoft.ApplicationInsights.Extensibility;

var builder = Host.CreateApplicationBuilder(args);
Expand All @@ -12,8 +12,8 @@
builder.Services.Configure<CertConfig>(
builder.Configuration.GetSection(nameof(CertConfig))
);
builder.Services.Configure<ApiConfig>(
builder.Configuration.GetSection(nameof(ApiConfig))
builder.Services.Configure<ForceMonitorConfig>(
builder.Configuration.GetSection(nameof(ForceMonitorConfig))
);

builder.Services.Configure<TelemetryConfiguration>(
Expand All @@ -28,8 +28,8 @@
builder.Services.AddSingleton<AliCdnService>();
builder.Services.AddSingleton<CertScanService>();

builder.Services.AddHostedService<SslWorker>();
builder.Services.AddHostedService<ApiWorker>();
builder.Services.AddHostedService<TimerMonitor>();
builder.Services.AddHostedService<ForceMonitor>();

var host = builder.Build();
var logger = host.Services.GetRequiredService<ILogger<Program>>();
Expand Down

0 comments on commit d0716e7

Please sign in to comment.