aboutsummaryrefslogtreecommitdiff
path: root/backends/networking/sdl_net/localwebserver.cpp
diff options
context:
space:
mode:
authorAlexander Tkachev2016-07-05 16:31:52 +0600
committerAlexander Tkachev2016-08-24 16:07:55 +0600
commite601c39802adbb64dce4b449c617e1786ef584ed (patch)
tree47967b710c44a15524b7170885080aaefdceb949 /backends/networking/sdl_net/localwebserver.cpp
parent3da38ca60b65d3f1bd67b049f3c4b2a90a4d6a19 (diff)
downloadscummvm-rg350-e601c39802adbb64dce4b449c617e1786ef584ed.tar.gz
scummvm-rg350-e601c39802adbb64dce4b449c617e1786ef584ed.tar.bz2
scummvm-rg350-e601c39802adbb64dce4b449c617e1786ef584ed.zip
CLOUD: Make "Run server" button active
It should show the real server's IP over there, but that doesn't work yet.
Diffstat (limited to 'backends/networking/sdl_net/localwebserver.cpp')
-rw-r--r--backends/networking/sdl_net/localwebserver.cpp20
1 files changed, 19 insertions, 1 deletions
diff --git a/backends/networking/sdl_net/localwebserver.cpp b/backends/networking/sdl_net/localwebserver.cpp
index 1cfbbb8819..134ccd8508 100644
--- a/backends/networking/sdl_net/localwebserver.cpp
+++ b/backends/networking/sdl_net/localwebserver.cpp
@@ -71,7 +71,10 @@ void LocalWebserver::stopTimer() {
void LocalWebserver::start() {
_handleMutex.lock();
_stopOnIdle = false;
- if (_timerStarted) return;
+ if (_timerStarted) {
+ _handleMutex.unlock();
+ return;
+ }
startTimer();
// Create a listening TCP socket
@@ -79,6 +82,11 @@ void LocalWebserver::start() {
if (SDLNet_ResolveHost(&ip, NULL, SERVER_PORT) == -1) {
error("SDLNet_ResolveHost: %s\n", SDLNet_GetError());
}
+ _address = Common::String::format(
+ "http://%u.%u.%u.%u:%u/",
+ (ip.host>>24)&0xFF, (ip.host >> 16) & 0xFF, (ip.host >> 8) & 0xFF, ip.host & 0xFF,
+ SERVER_PORT
+ );
_serverSocket = SDLNet_TCP_Open(&ip);
if (!_serverSocket) {
error("SDLNet_TCP_Open: %s\n", SDLNet_GetError());
@@ -130,8 +138,18 @@ void LocalWebserver::removePathHandler(Common::String path) {
_pathHandlers.erase(path);
}
+Common::String LocalWebserver::getAddress() { return _address; }
+
IndexPageHandler &LocalWebserver::indexPageHandler() { return _indexPageHandler; }
+bool LocalWebserver::isRunning() {
+ bool result = false;
+ _handleMutex.lock();
+ result = _timerStarted;
+ _handleMutex.unlock();
+ return result;
+}
+
void LocalWebserver::handle() {
_handleMutex.lock();
int numready = SDLNet_CheckSockets(_set, 0);