From a848502103a6cde1119d60810d75cb85444e8bda Mon Sep 17 00:00:00 2001 From: Tangent 128 Date: Sun, 21 Oct 2018 18:35:15 -0400 Subject: [PATCH] Factor out building a video/webm response. --- src/commands/relay.rs | 27 +++++++++++---------------- 1 file changed, 11 insertions(+), 16 deletions(-) diff --git a/src/commands/relay.rs b/src/commands/relay.rs index 232cfc6..6257afb 100644 --- a/src/commands/relay.rs +++ b/src/commands/relay.rs @@ -80,6 +80,15 @@ impl RelayServer { } } +fn media_response(body: Body) -> Response { + Response::builder() + .header(CONTENT_TYPE, "video/webm") + .header("X-Accel-Buffering", "no") + .header(CACHE_CONTROL, "no-cache, no-store") + .body(body) + .unwrap() +} + impl Service for RelayServer { type ReqBody = Body; type ResBody = Body; @@ -90,22 +99,8 @@ impl Service for RelayServer { let (Parts {method, uri, ..}, request_body) = request.into_parts(); ok(match (method, uri.path()) { - (Method::HEAD, "/live") => { - Response::builder() - .header(CONTENT_TYPE, "video/webm") - .header("X-Accel-Buffering", "no") - .header(CACHE_CONTROL, "no-cache, no-store") - .body(Body::empty()) - .unwrap() - }, - (Method::GET, "/live") => { - Response::builder() - .header(CONTENT_TYPE, "video/webm") - .header("X-Accel-Buffering", "no") - .header(CACHE_CONTROL, "no-cache, no-store") - .body(Body::wrap_stream(self.get_stream())) - .unwrap() - }, + (Method::HEAD, "/live") => media_response(Body::empty()), + (Method::GET, "/live") => media_response(Body::wrap_stream(self.get_stream())), (Method::POST, "/live") | (Method::PUT, "/live") => { println!("[Info] New source on {}", uri.path()); Response::new(Body::wrap_stream(self.post_stream(request_body)))