diff options
author | Wouter Tinus <wouter.tinus@gmail.com> | 2020-06-17 20:48:31 +0200 |
---|---|---|
committer | Wouter Tinus <wouter.tinus@gmail.com> | 2020-06-17 20:48:31 +0200 |
commit | c21744bac5c93aa52ce879166abde2cee6f45e3d (patch) | |
tree | 290b51de68c9c09d3a023f13f5884889fca44c4f /src/main.lib/Plugins/ValidationPlugins/Http/HttpValidation.cs | |
parent | 8edfefc8fe0ce3c145a7370df9fa26ce7e167bca (diff) | |
download | letsencrypt-win-simple-c21744bac5c93aa52ce879166abde2cee6f45e3d.zip letsencrypt-win-simple-c21744bac5c93aa52ce879166abde2cee6f45e3d.tar.gz letsencrypt-win-simple-c21744bac5c93aa52ce879166abde2cee6f45e3d.tar.bz2 |
don't attempt to validate orders which are already valid
Diffstat (limited to 'src/main.lib/Plugins/ValidationPlugins/Http/HttpValidation.cs')
-rw-r--r-- | src/main.lib/Plugins/ValidationPlugins/Http/HttpValidation.cs | 48 |
1 files changed, 35 insertions, 13 deletions
diff --git a/src/main.lib/Plugins/ValidationPlugins/Http/HttpValidation.cs b/src/main.lib/Plugins/ValidationPlugins/Http/HttpValidation.cs index 768fcce..ee6a996 100644 --- a/src/main.lib/Plugins/ValidationPlugins/Http/HttpValidation.cs +++ b/src/main.lib/Plugins/ValidationPlugins/Http/HttpValidation.cs @@ -21,7 +21,7 @@ namespace PKISharp.WACS.Plugins.ValidationPlugins where TOptions : HttpValidationOptions<TPlugin> where TPlugin : IValidationPlugin { - private readonly List<string> _filesWritten = new List<string>(); + private readonly List<string> _filesWritten = new List<string>(); protected TOptions _options; protected ILogService _log; @@ -190,12 +190,16 @@ namespace PKISharp.WACS.Plugins.ValidationPlugins var destination = CombinePath(_path, challenge.HttpResourcePath.Replace(partialPath, "web.config")); if (!_filesWritten.Contains(destination)) { - _log.Debug("Writing web.config"); - var content = GetWebConfig(); - WriteFile(destination, content); - _filesWritten.Add(destination); + var content = GetWebConfig().Value; + if (content != null) + { + _log.Debug("Writing web.config"); + WriteFile(destination, content); + _filesWritten.Add(destination); + } + } - } + } catch (Exception ex) { _log.Warning("Unable to write web.config: {ex}", ex.Message); ; @@ -207,7 +211,16 @@ namespace PKISharp.WACS.Plugins.ValidationPlugins /// Get the template for the web.config /// </summary> /// <returns></returns> - private string GetWebConfig() => File.ReadAllText(TemplateWebConfig); + private Lazy<string?> GetWebConfig() => new Lazy<string?>(() => { + try + { + return File.ReadAllText(TemplateWebConfig); + } + catch + { + return null; + } + }); /// <summary> /// Combine root path with relative path @@ -287,20 +300,29 @@ namespace PKISharp.WACS.Plugins.ValidationPlugins { if (_path != null) { + var folders = new List<string>(); foreach (var file in _filesWritten) { - _log.Debug("Deleting answer"); + _log.Debug("Deleting files"); await DeleteFile(file); - if (_settings.Validation.CleanupFolders) + var folder = file.Substring(0, file.LastIndexOf(PathSeparator)); + if (!folders.Contains(folder)) + { + folders.Add(folder); + } + } + if (_settings.Validation.CleanupFolders) + { + _log.Debug("Deleting empty folders"); + foreach (var folder in folders) { - var folder = file.Substring(0, file.LastIndexOf(PathSeparator)); if (await DeleteFolderIfEmpty(folder)) { - var idx = file.LastIndexOf(PathSeparator); + var idx = folder.LastIndexOf(PathSeparator); if (idx >= 0) { - folder = folder.Substring(0, folder.LastIndexOf(PathSeparator)); - await DeleteFolderIfEmpty(folder); + var parent = folder.Substring(0, folder.LastIndexOf(PathSeparator)); + await DeleteFolderIfEmpty(parent); } } } |