Add Cache-Control header for static assets.

This avoids wasting device cycles on retrieving the same data over
and over.
pull/1/head
whitequark 2018-03-27 09:36:08 +00:00
parent 2bdc483e15
commit 6ffb157cb8
1 changed files with 4 additions and 3 deletions

View File

@ -35,7 +35,7 @@ impl Request {
self.state = State::WaitG; self.state = State::WaitG;
self.query_idx = 0; self.query_idx = 0;
} }
pub fn input_char(&mut self, c: u8) -> Result<bool, &'static str> { pub fn input_char(&mut self, c: u8) -> Result<bool, &'static str> {
match self.state { match self.state {
State::WaitG => { State::WaitG => {
@ -115,7 +115,7 @@ impl Request {
} }
Ok(false) Ok(false)
} }
pub fn input(&mut self, buf: &[u8]) -> Result<bool, &'static str> { pub fn input(&mut self, buf: &[u8]) -> Result<bool, &'static str> {
let mut result = Ok(false); let mut result = Ok(false);
for c in buf.iter() { for c in buf.iter() {
@ -126,7 +126,7 @@ impl Request {
} }
result result
} }
pub fn get_query<'a>(&'a self) -> Result<&'a [u8], &'static str> { pub fn get_query<'a>(&'a self) -> Result<&'a [u8], &'static str> {
if self.state != State::Finished { if self.state != State::Finished {
return Err("request is not finished") return Err("request is not finished")
@ -174,6 +174,7 @@ pub fn write_reply_header(output: &mut fmt::Write, status: u16, content_type: &s
status, status_text, content_type)?; status, status_text, content_type)?;
if gzip { if gzip {
write!(output, "Content-Encoding: gzip\r\n")?; write!(output, "Content-Encoding: gzip\r\n")?;
write!(output, "Cache-Control: public, max-age=600\r\n")?;
} }
write!(output, "\r\n") write!(output, "\r\n")
} }