MCPcopy Create free account
hub / github.com/TeamPiped/piped-proxy / apply_range_headers

Function apply_range_headers

src/main.rs:255–274  ·  view source on GitHub ↗
(response: &mut HttpResponseBuilder, range_request: &RangeRequest)

Source from the content-addressed store, hash-verified

253}
254
255fn apply_range_headers(response: &mut HttpResponseBuilder, range_request: &RangeRequest) {
256 let content_range_value = format!(
257 "bytes {}-{}/{}",
258 range_request.start, range_request.end, range_request.total_size
259 );
260
261 // Use total_size when range was truncated by YouTube (start > end)
262 // Otherwise calculate normally
263 let actual_length = if range_request.start > range_request.end {
264 range_request.total_size
265 } else {
266 range_request.end - range_request.start + 1
267 };
268
269 // Set proper partial content response
270 response.status(actix_web::http::StatusCode::PARTIAL_CONTENT);
271 // Set required headers for partial content responses
272 response.insert_header(("Content-Range", content_range_value));
273 response.insert_header(("Content-Length", actual_length.to_string()));
274}
275
276async fn index(req: HttpRequest) -> Result<HttpResponse, Box<dyn Error>> {
277 if req.method() == actix_web::http::Method::OPTIONS {

Callers 1

Calls

no outgoing calls

Tested by

no test coverage detected