mirror of https://github.com/winsw/winsw
parent
b774ee1ca5
commit
71f08e5e73
|
@ -193,10 +193,14 @@ namespace WinSW
|
||||||
if (supportsIfModifiedSince && ((HttpWebResponse?)e.Response)?.StatusCode == HttpStatusCode.NotModified)
|
if (supportsIfModifiedSince && ((HttpWebResponse?)e.Response)?.StatusCode == HttpStatusCode.NotModified)
|
||||||
{
|
{
|
||||||
Logger.Info($"Skipped downloading unmodified resource '{this.From}'");
|
Logger.Info($"Skipped downloading unmodified resource '{this.From}'");
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
else
|
|
||||||
|
string errorMessage = $"Failed to download {this.From} to {this.To}";
|
||||||
|
Logger.Error(errorMessage, e);
|
||||||
|
if (this.FailOnError)
|
||||||
{
|
{
|
||||||
throw;
|
throw new IOException(errorMessage, e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -272,32 +272,7 @@ namespace WinSW
|
||||||
tasks[i] = download.PerformAsync();
|
tasks[i] = download.PerformAsync();
|
||||||
}
|
}
|
||||||
|
|
||||||
try
|
Task.WaitAll(tasks);
|
||||||
{
|
|
||||||
Task.WaitAll(tasks);
|
|
||||||
}
|
|
||||||
catch (AggregateException e)
|
|
||||||
{
|
|
||||||
var exceptions = new List<Exception>(e.InnerExceptions.Count);
|
|
||||||
for (int i = 0; i < tasks.Length; i++)
|
|
||||||
{
|
|
||||||
if (tasks[i].IsFaulted)
|
|
||||||
{
|
|
||||||
var download = downloads[i];
|
|
||||||
string errorMessage = $"Failed to download {download.From} to {download.To}";
|
|
||||||
var exception = tasks[i].Exception!;
|
|
||||||
Log.Error(errorMessage, exception);
|
|
||||||
|
|
||||||
// TODO: move this code into the download logic
|
|
||||||
if (download.FailOnError)
|
|
||||||
{
|
|
||||||
exceptions.Add(new IOException(errorMessage, exception));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
throw new AggregateException(exceptions);
|
|
||||||
}
|
|
||||||
|
|
||||||
var sharedDirectories = this.config.SharedDirectories;
|
var sharedDirectories = this.config.SharedDirectories;
|
||||||
if (sharedDirectories.Count > 0)
|
if (sharedDirectories.Count > 0)
|
||||||
|
|
|
@ -210,10 +210,11 @@ namespace WinSW.Tests
|
||||||
await this.TestClientServerAsync(
|
await this.TestClientServerAsync(
|
||||||
async (source, dest) =>
|
async (source, dest) =>
|
||||||
{
|
{
|
||||||
var exception = await Assert.ThrowsAsync<WebException>(
|
var exception = await Assert.ThrowsAsync<IOException>(
|
||||||
async () => await new Download(source, dest).PerformAsync());
|
async () => await new Download(source, dest, true).PerformAsync());
|
||||||
|
|
||||||
Assert.Equal(WebExceptionStatus.ProtocolError, exception.Status);
|
var inner = Assert.IsType<WebException>(exception.InnerException);
|
||||||
|
Assert.Equal(WebExceptionStatus.ProtocolError, inner.Status);
|
||||||
},
|
},
|
||||||
context =>
|
context =>
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue