aboutsummaryrefslogtreecommitdiff
path: root/backends/networking/sdl_net/localwebserver.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'backends/networking/sdl_net/localwebserver.cpp')
-rw-r--r--backends/networking/sdl_net/localwebserver.cpp10
1 files changed, 7 insertions, 3 deletions
diff --git a/backends/networking/sdl_net/localwebserver.cpp b/backends/networking/sdl_net/localwebserver.cpp
index d1dda16f8c..c3df9f8819 100644
--- a/backends/networking/sdl_net/localwebserver.cpp
+++ b/backends/networking/sdl_net/localwebserver.cpp
@@ -42,7 +42,9 @@ namespace Networking {
LocalWebserver::LocalWebserver(): _set(nullptr), _serverSocket(nullptr), _timerStarted(false),
_stopOnIdle(false), _clients(0), _idlingFrames(0) {
- _indexPageHandler.addPathHandler(*this);
+ addPathHandler("/", _indexPageHandler.getHandler());
+ addPathHandler("/files", _filesPageHandler.getHandler());
+ _defaultHandler = _resourceHandler.getHandler();
}
LocalWebserver::~LocalWebserver() {
@@ -142,7 +144,7 @@ void LocalWebserver::stop() {
void LocalWebserver::stopOnIdle() { _stopOnIdle = true; }
-void LocalWebserver::addPathHandler(Common::String path, ClientHandler handler) {
+void LocalWebserver::addPathHandler(Common::String path, ClientHandlerCallback handler) {
if (_pathHandlers.contains(path)) warning("LocalWebserver::addPathHandler: path already had a handler");
_pathHandlers[path] = handler;
}
@@ -199,7 +201,9 @@ void LocalWebserver::handleClient(uint32 i) {
//if GET, check whether we know a handler for such URL
//if PUT, check whether we know a handler for that URL
if (_pathHandlers.contains(_client[i].path()))
- (*_pathHandlers[_client[i].path()])(_client[i]);
+ (*_pathHandlers[_client[i].path()])(_client[i]);
+ else if (_defaultHandler)
+ (*_defaultHandler)(_client[i]); //try default handler
if (_client[i].state() == BEING_HANDLED || _client[i].state() == INVALID) break;