From 9e7832c152b918e8151261b0cb59a37c6430224f Mon Sep 17 00:00:00 2001
From: Lorenz Stechauner <lorenz.stechauner@necronda.net>
Date: Sun, 16 May 2021 19:25:23 +0200
Subject: [PATCH] Set Date and Server headers at beginning

---
 src/http/mod.rs | 22 +++++++++++-----------
 1 file changed, 11 insertions(+), 11 deletions(-)

diff --git a/src/http/mod.rs b/src/http/mod.rs
index 9968a0f..ca3eb35 100644
--- a/src/http/mod.rs
+++ b/src/http/mod.rs
@@ -181,11 +181,20 @@ impl Request {
 
 impl Response {
     pub fn new() -> Response {
-        Response {
+        let mut res = Response {
             version: "1.1".to_string(),
             status: Status::from_code(200).unwrap(),
             header_fields: Vec::new(),
-        }
+        };
+        res.add_header("Server", "Locutus");
+        res.add_header(
+            "Date",
+            chrono::Utc::now()
+                .format("%a, %d %b %Y %H:%M:%S GMT")
+                .to_string()
+                .as_str(),
+        );
+        res
     }
 
     pub fn status(&mut self, status_code: u16) {
@@ -217,15 +226,6 @@ impl Response {
     }
 
     pub fn send(&mut self, stream: &mut Stream) -> Result<(), std::io::Error> {
-        self.add_header("Server", "Locutus");
-        self.add_header(
-            "Date",
-            chrono::Utc::now()
-                .format("%a, %d %b %Y %H:%M:%S GMT")
-                .to_string()
-                .as_str(),
-        );
-
         let mut buf = None;
         if let None = self.find_header("Content-Length") {
             let new_buf = self.format_default_response();