diff options
Diffstat (limited to 'backends/networking/sdl_net/handlers')
-rw-r--r-- | backends/networking/sdl_net/handlers/resourcehandler.cpp | 22 | ||||
-rw-r--r-- | backends/networking/sdl_net/handlers/resourcehandler.h | 1 |
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(); |