Allow virtual callbacks to use chunked encoding by setting the file length of a UpnpFileInfo object to be UPNP_USING_CHUNKED.
This commit is contained in:
parent
348bf19412
commit
03c3c0913f
@ -1188,6 +1188,21 @@ static int process_request(
|
|||||||
if (!extra_headers) {
|
if (!extra_headers) {
|
||||||
extra_headers = "";
|
extra_headers = "";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Check if chunked encoding should be used. */
|
||||||
|
if (using_virtual_dir && UpnpFileInfo_get_FileLength(finfo) == UPNP_USING_CHUNKED) {
|
||||||
|
/* Chunked encoding is only supported by HTTP 1.1 clients */
|
||||||
|
if (resp_major == 1 && resp_minor == 1) {
|
||||||
|
RespInstr->IsChunkActive = 1;
|
||||||
|
} else {
|
||||||
|
/* The virtual callback indicates that we should use
|
||||||
|
* chunked encoding however the client doesn't support
|
||||||
|
* it. Return with an internal server error. */
|
||||||
|
err_code = HTTP_NOT_ACCEPTABLE;
|
||||||
|
goto error_handler;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
aux_LastModified = UpnpFileInfo_get_LastModified(finfo);
|
aux_LastModified = UpnpFileInfo_get_LastModified(finfo);
|
||||||
if (RespInstr->IsRangeActive && RespInstr->IsChunkActive) {
|
if (RespInstr->IsRangeActive && RespInstr->IsChunkActive) {
|
||||||
/* Content-Range: bytes 222-3333/4000 HTTP_PARTIAL_CONTENT */
|
/* Content-Range: bytes 222-3333/4000 HTTP_PARTIAL_CONTENT */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user