aboutsummaryrefslogtreecommitdiff
path: root/backends/networking/sdl_net/handlers
diff options
context:
space:
mode:
Diffstat (limited to 'backends/networking/sdl_net/handlers')
-rw-r--r--backends/networking/sdl_net/handlers/resourcehandler.cpp22
-rw-r--r--backends/networking/sdl_net/handlers/resourcehandler.h1
2 files changed, 22 insertions, 1 deletions
diff --git a/backends/networking/sdl_net/handlers/resourcehandler.cpp b/backends/networking/sdl_net/handlers/resourcehandler.cpp
index d6c419dd51..410665f3cc 100644
--- a/backends/networking/sdl_net/handlers/resourcehandler.cpp
+++ b/backends/networking/sdl_net/handlers/resourcehandler.cpp
@@ -43,7 +43,27 @@ void ResourceHandler::handle(Client &client) {
if (file == nullptr)
return;
- LocalWebserver::setClientGetHandler(client, file, 200, LocalWebserver::determineMimeType(filename));
+ LocalWebserver::setClientGetHandler(client, file, 200, determineMimeType(filename));
+}
+
+const char *ResourceHandler::determineMimeType(Common::String &filename) {
+ // text
+ if (filename.hasSuffix(".html")) return "text/html";
+ if (filename.hasSuffix(".css")) return "text/css";
+ if (filename.hasSuffix(".txt")) return "text/plain";
+ if (filename.hasSuffix(".js")) return "application/javascript";
+
+ // images
+ if (filename.hasSuffix(".jpeg") || filename.hasSuffix(".jpg") || filename.hasSuffix(".jpe")) return "image/jpeg";
+ if (filename.hasSuffix(".gif")) return "image/gif";
+ if (filename.hasSuffix(".png")) return "image/png";
+ if (filename.hasSuffix(".svg")) return "image/svg+xml";
+ if (filename.hasSuffix(".tiff")) return "image/tiff";
+ if (filename.hasSuffix(".ico")) return "image/vnd.microsoft.icon";
+ if (filename.hasSuffix(".wbmp")) return "image/vnd.wap.wbmp";
+
+ if (filename.hasSuffix(".zip")) return "application/zip";
+ return "application/octet-stream";
}
/// public
diff --git a/backends/networking/sdl_net/handlers/resourcehandler.h b/backends/networking/sdl_net/handlers/resourcehandler.h
index 1b4ceec468..813b80871e 100644
--- a/backends/networking/sdl_net/handlers/resourcehandler.h
+++ b/backends/networking/sdl_net/handlers/resourcehandler.h
@@ -29,6 +29,7 @@ namespace Networking {
class ResourceHandler: public BaseHandler {
void handle(Client &client);
+ static const char *determineMimeType(Common::String &filename);
public:
ResourceHandler();
virtual ~ResourceHandler();