Skip to content

Commit e066f27

Browse files
committed
/api/ip GET now respect protocol settings
The API will no longer attempt to fetch both public IPs if only one is configured in settings.
1 parent 76aa61c commit e066f27

File tree

5 files changed

+28
-22
lines changed

5 files changed

+28
-22
lines changed

DnsTube.Service/Controllers/Api/DnsController.cs

+6-8
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
1-
using System.Linq;
2-
using DnsTube.Core.Interfaces;
1+
using DnsTube.Core.Interfaces;
32

43
using Microsoft.AspNetCore.Mvc;
5-
using Microsoft.VisualBasic;
64

75
// For more information on enabling Web API for empty projects, visit https://go.microsoft.com/fwlink/?LinkID=397860
86

@@ -12,10 +10,10 @@ namespace DnsTube.Service.Controllers.Api
1210
[ApiController]
1311
public class DnsController : ControllerBase
1412
{
15-
ILogger<SettingsController> _logger;
16-
ILogService _logService;
17-
ISettingsService _settingsService;
18-
ICloudflareService _cloudflareService;
13+
private readonly ILogger<SettingsController> _logger;
14+
private readonly ILogService _logService;
15+
private readonly ISettingsService _settingsService;
16+
private readonly ICloudflareService _cloudflareService;
1917

2018
public DnsController(ILogger<SettingsController> logger, ILogService logService, ISettingsService settingsService, ICloudflareService cloudflareService)
2119
{
@@ -48,7 +46,7 @@ public DnsController(ILogger<SettingsController> logger, ILogService logService,
4846
Proxied = d.proxied,
4947
ZoneName = d.zone_name
5048
});
51-
49+
5250
return dnsEntries;
5351
}
5452

DnsTube.Service/Controllers/Api/HistoryController.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@ namespace DnsTube.Service.Controllers.Api
1212
[ApiController]
1313
public class HistoryController : ControllerBase
1414
{
15-
ILogger<HistoryController> _logger;
16-
ILogService _logService;
15+
private readonly ILogger<HistoryController> _logger;
16+
private readonly ILogService _logService;
1717

1818
public HistoryController(ILogger<HistoryController> logger, ILogService logService)
1919
{

DnsTube.Service/Controllers/Api/IpController.cs

+14-3
Original file line numberDiff line numberDiff line change
@@ -14,22 +14,33 @@ public class IpController : ControllerBase
1414
private readonly ILogger<IpController> _logger;
1515
private readonly ILogService _logService;
1616
private readonly IIpAddressService _ipAddressService;
17+
private readonly ISettingsService _settingsService;
1718

1819
public record Ip(string? Ipv4, string? Ipv6);
1920

20-
public IpController(ILogger<IpController> logger, ILogService logService, IIpAddressService ipAddressService)
21+
public IpController(ILogger<IpController> logger, ILogService logService, IIpAddressService ipAddressService, ISettingsService settingsService)
2122
{
2223
_logger = logger;
2324
_logService = logService;
2425
_ipAddressService = ipAddressService;
26+
_settingsService = settingsService;
2527
}
2628

2729
// GET: api/<IpController>
2830
[HttpGet]
2931
public async Task<Ip> Get()
3032
{
31-
var ipv4 = await _ipAddressService.GetPublicIpAddressAsync(IpSupport.IPv4);
32-
var ipv6 = await _ipAddressService.GetPublicIpAddressAsync(IpSupport.IPv6);
33+
var settings = await _settingsService.GetAsync(true);
34+
35+
string? ipv4 = null;
36+
string? ipv6 = null;
37+
38+
if (settings.ProtocolSupport != IpSupport.IPv6)
39+
ipv4 = await _ipAddressService.GetPublicIpAddressAsync(IpSupport.IPv4);
40+
41+
if (settings.ProtocolSupport != IpSupport.IPv4)
42+
ipv6 = await _ipAddressService.GetPublicIpAddressAsync(IpSupport.IPv6);
43+
3344
return new Ip(Ipv4: ipv4, Ipv6: ipv6);
3445
}
3546
}

DnsTube.Service/Controllers/Api/SettingsController.cs

+5-5
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,11 @@ namespace DnsTube.Service.Controllers.Api
1111
[ApiController]
1212
public class SettingsController : ControllerBase
1313
{
14-
ILogger<SettingsController> _logger;
15-
ILogService _logService;
16-
ISettingsService _settingsService;
17-
IDbService _dbService;
18-
IIpAddressService _ipAddressService;
14+
private readonly ILogger<SettingsController> _logger;
15+
private readonly ILogService _logService;
16+
private readonly ISettingsService _settingsService;
17+
private readonly IDbService _dbService;
18+
private readonly IIpAddressService _ipAddressService;
1919

2020
public SettingsController(ILogger<SettingsController> logger, ILogService logService, ISettingsService settingsService, IDbService dbService, IIpAddressService ipAddressService)
2121
{

DnsTube.Service/Worker.cs

+1-4
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ protected override async Task ExecuteAsync(CancellationToken serviceStoppingToke
5858
var latestReleaseTag = await _githubService.GetLatestReleaseTagNameAsync();
5959
if (!string.IsNullOrWhiteSpace(latestReleaseTag) && !Application.RELEASE_TAG.Contains("beta") && latestReleaseTag != Application.RELEASE_TAG)
6060
{
61-
var msg = $"There is a newer release available ({latestReleaseTag}). See https://github.com/drittich/DnsTube/releases/latest for more information.";
61+
var msg = $"You are not running the latest stable release ({latestReleaseTag}). See https://github.com/drittich/DnsTube/releases/latest for more information.";
6262
_logger.LogInformation(msg);
6363
await _logService.WriteAsync(msg, LogLevel.Information);
6464
}
@@ -119,10 +119,7 @@ await _serverSentEventsService.SendEventAsync(new ServerSentEvent
119119
if (ipAddressChanged || isManualUpdate)
120120
{
121121
if (isManualUpdate)
122-
{
123-
await _logService.WriteAsync("Manual update requested", LogLevel.Information);
124122
isManualUpdate = false;
125-
}
126123

127124
var selectedDomainsValid = await _cloudflareService.ValidateSelectedDomainsAsync();
128125
if (selectedDomainsValid)

0 commit comments

Comments
 (0)