Browse Source

Move MIME type detection to util/HTTP.cpp

pull/271/head
EinMByte 9 years ago
parent
commit
221e350228
  1. 8
      client/HTTPServer.cpp
  2. 13
      core/util/HTTP.cpp
  3. 5
      core/util/HTTP.h

8
client/HTTPServer.cpp

@ -152,13 +152,7 @@ void HTTPConnection::HandleRequest() @@ -152,13 +152,7 @@ void HTTPConnection::HandleRequest()
str = i2p::util::http::preprocessContent(str, address.parent_path().string());
m_Reply = i2p::util::http::Response(200, str);
// TODO: get rid of this hack, actually determine the MIME type
if(address_str.substr(address_str.find_last_of(".")) == ".css")
m_Reply.setHeader("Content-Type", "text/css");
else if(address_str.substr(address_str.find_last_of(".")) == ".js")
m_Reply.setHeader("Content-Type", "text/javascript");
else
m_Reply.setHeader("Content-Type", "text/html");
m_Reply.setHeader("Content-Type", i2p::util::http::getMimeType(address_str));
SendReply();
}

13
core/util/HTTP.cpp

@ -227,6 +227,19 @@ std::string preprocessContent(const std::string& content, const std::string& pat @@ -227,6 +227,19 @@ std::string preprocessContent(const std::string& content, const std::string& pat
return result;
}
std::string getMimeType(const std::string& filename)
{
const std::string ext = filename.substr(filename.find_last_of("."));
if(ext == ".css")
return "text/css";
else if(ext == ".css")
return "text/javascript";
else if(ext == ".html" || ext == ".htm")
return "text/html";
else
return "application/octet-stream";
}
}
}
}

5
core/util/HTTP.h

@ -92,6 +92,11 @@ private: @@ -92,6 +92,11 @@ private:
*/
std::string preprocessContent(const std::string& content, const std::string& path);
/**
* @return the MIME type based on the extension of the given filename
*/
std::string getMimeType(const std::string& filename);
}
}
}

Loading…
Cancel
Save