Fixed: Corrupt image files when downloading from redirecting Url

closes #3401
This commit is contained in:
Taloth Saldono 2019-11-15 18:38:34 +01:00
parent 4123745a6b
commit e28b2e8328
2 changed files with 27 additions and 1 deletions

View File

@ -301,6 +301,31 @@ namespace NzbDrone.Common.Test.Http
ExceptionVerification.ExpectedWarns(1);
}
[Test]
public void should_not_write_redirect_content_to_stream()
{
var file = GetTempFilePath();
using (var fileStream = new FileStream(file, FileMode.Create))
{
var request = new HttpRequest($"http://{_httpBinHost}/redirect/1");
request.AllowAutoRedirect = false;
request.ResponseStream = fileStream;
var response = Subject.Get(request);
response.StatusCode.Should().Be(HttpStatusCode.Redirect);
}
ExceptionVerification.ExpectedErrors(1);
File.Exists(file).Should().BeTrue();
var fileInfo = new FileInfo(file);
fileInfo.Length.Should().Be(0);
}
[Test]
public void should_send_cookie()
{

View File

@ -121,9 +121,10 @@ namespace NzbDrone.Common.Http.Dispatchers
{
try
{
if (request.ResponseStream != null)
if (request.ResponseStream != null && httpWebResponse.StatusCode == HttpStatusCode.OK)
{
// A target ResponseStream was specified, write to that instead.
// But only on the OK status code, since we don't want to write failures and redirects.
responseStream.CopyTo(request.ResponseStream);
}
else