@@ -531,7 +531,8 @@ static size_t VSICurlStreamingHandleWriteFuncForHeader(void *buffer,
531
531
// If moved permanently/temporarily, go on.
532
532
// Otherwise stop now.
533
533
if (!(psStruct->nHTTPCode == 301 ||
534
- psStruct->nHTTPCode == 302 ))
534
+ psStruct->nHTTPCode == 302 ||
535
+ psStruct->nHTTPCode == 303 ))
535
536
return 0 ;
536
537
}
537
538
else
@@ -892,7 +893,7 @@ size_t VSICurlStreamingHandle::ReceivedBytesHeader(GByte *buffer, size_t count,
892
893
893
894
// Reset buffer if we have followed link after a redirect.
894
895
if (nSize >= 9 && InterpretRedirect () &&
895
- (nHTTPCode == 301 || nHTTPCode == 302 ) &&
896
+ (nHTTPCode == 301 || nHTTPCode == 302 || nHTTPCode == 303 ) &&
896
897
STARTS_WITH_CI (reinterpret_cast <char *>(buffer), " HTTP/" ))
897
898
{
898
899
nHeaderSize = 0 ;
@@ -928,7 +929,7 @@ size_t VSICurlStreamingHandle::ReceivedBytesHeader(GByte *buffer, size_t count,
928
929
// If moved permanently/temporarily, go on.
929
930
if (eExists == EXIST_UNKNOWN &&
930
931
!(InterpretRedirect () &&
931
- (nHTTPCode == 301 || nHTTPCode == 302 )))
932
+ (nHTTPCode == 301 || nHTTPCode == 302 || nHTTPCode == 303 )))
932
933
{
933
934
eExists = nHTTPCode == 200 ? EXIST_YES : EXIST_NO;
934
935
FileProp cachedFileProp;
@@ -938,7 +939,8 @@ size_t VSICurlStreamingHandle::ReceivedBytesHeader(GByte *buffer, size_t count,
938
939
}
939
940
}
940
941
941
- if (!(InterpretRedirect () && (nHTTPCode == 301 || nHTTPCode == 302 )) &&
942
+ if (!(InterpretRedirect () &&
943
+ (nHTTPCode == 301 || nHTTPCode == 302 || nHTTPCode == 303 )) &&
942
944
!bHasComputedFileSize)
943
945
{
944
946
// Caution: When gzip compression is enabled, the content-length is
0 commit comments