From 140a63c9bffbbb16fb6a863196b780fda10178a2 Mon Sep 17 00:00:00 2001 From: Stanley Dimant Date: Tue, 20 Aug 2024 21:44:49 +0200 Subject: [PATCH] fix geoip shenanigans --- .../Services/GeoIPService.cs | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/MareSynchronosServer/MareSynchronosAuthService/Services/GeoIPService.cs b/MareSynchronosServer/MareSynchronosAuthService/Services/GeoIPService.cs index dbebf35..3d3c21c 100644 --- a/MareSynchronosServer/MareSynchronosAuthService/Services/GeoIPService.cs +++ b/MareSynchronosServer/MareSynchronosAuthService/Services/GeoIPService.cs @@ -12,7 +12,7 @@ public class GeoIPService : IHostedService private bool _useGeoIP = false; private string _cityFile = string.Empty; private DatabaseReader? _dbReader; - private DateTime _dbLastWriteTime = DateTime.Now; + private DateTime _dbLastWriteTime = DateTime.MinValue; private CancellationTokenSource _fileWriteTimeCheckCts = new(); private bool _processingReload = false; @@ -87,8 +87,13 @@ public class GeoIPService : IHostedService var useGeoIP = _mareConfiguration.GetValueOrDefault(nameof(AuthServiceConfiguration.UseGeoIP), false); var cityFile = _mareConfiguration.GetValueOrDefault(nameof(AuthServiceConfiguration.GeoIPDbCityFile), string.Empty); - var lastWriteTime = new FileInfo(cityFile).LastWriteTimeUtc; - if (useGeoIP && (!string.Equals(cityFile, _cityFile, StringComparison.OrdinalIgnoreCase) || lastWriteTime != _dbLastWriteTime)) + DateTime lastWriteTime = DateTime.MinValue; + if (File.Exists(cityFile)) + { + lastWriteTime = new FileInfo(cityFile).LastWriteTimeUtc; + } + + if (useGeoIP && (!string.Equals(cityFile, _cityFile, StringComparison.OrdinalIgnoreCase) || lastWriteTime > _dbLastWriteTime)) { _cityFile = cityFile; if (!File.Exists(_cityFile)) throw new FileNotFoundException($"Could not open GeoIP City Database, path does not exist: {_cityFile}");