summaryrefslogtreecommitdiff
path: root/server/webserver.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'server/webserver.cpp')
-rw-r--r--server/webserver.cpp53
1 files changed, 21 insertions, 32 deletions
diff --git a/server/webserver.cpp b/server/webserver.cpp
index b67076b..d2a25f0 100644
--- a/server/webserver.cpp
+++ b/server/webserver.cpp
@@ -8,20 +8,24 @@
#include "../include/webserver.h"
#include "../upnp.h"
#include <sstream>
+#include <tnt/job.h>
namespace upnp {
cWebserver::cWebserver(std::string address)
: mListenerAddress(address)
, mListenerPort(7649)
+, mStaticContentUrl("http/")
+, mServiceUrl("services/")
, mWebserverThread(*this)
{
- SetWebserverRootDir(string(), string(), string());
- SetServiceUrl(string(), string());
+ SetWebserverRootDir(string());
+ SetPresentationUrl(string());
}
cWebserver::~cWebserver(){
-
+ mApplication.shutdown();
+ mWebserverThread.Stop();
}
bool cWebserver::Start(){
@@ -87,18 +91,17 @@ void cWebserver::SetListenerPort(uint16_t port){
mListenerPort = port ? port : 7649;
}
-void cWebserver::SetWebserverRootDir(std::string rootDirectory, std::string staticContentUrl, std::string presentationUrl){
+void cWebserver::SetWebserverRootDir(std::string rootDirectory){
if(mWebserverThread.Active()) return;
if(rootDirectory.empty())
mWebserverRootDir = std::string(cPluginUpnp::ConfigDirectory(PLUGIN_NAME_I18N)) + "/httpdocs/";
else
mWebserverRootDir = rootDirectory;
+}
- if(staticContentUrl.empty())
- mStaticContentUrl = "http/";
- else
- mStaticContentUrl = staticContentUrl;
+void cWebserver::SetPresentationUrl(std::string presentationUrl){
+ if(mWebserverThread.Active()) return;
if(presentationUrl.empty())
mPresentationUrl = "index.html";
@@ -106,25 +109,6 @@ void cWebserver::SetWebserverRootDir(std::string rootDirectory, std::string stat
mPresentationUrl = presentationUrl;
}
-void cWebserver::SetServiceUrl(std::string descriptionUrl, std::string controlUrl){
- if(mWebserverThread.Active()) return;
-
- if(descriptionUrl.empty()){
- mServiceUrl = "services/";
- }
- else
- mServiceUrl = descriptionUrl;
-
- if(controlUrl.empty()){
- stringstream s;
- s << "http://" << UpnpGetServerIpAddress() << ":" << UpnpGetServerPort() << "/" << "services/";
-
- mControlUrl = s.str();
- } else {
- mControlUrl = controlUrl;
- }
-}
-
const std::string cWebserver::GetBaseUrl() const {
stringstream s;
s << "http://" << mListenerAddress << ":" << mListenerPort << "/";
@@ -133,25 +117,26 @@ const std::string cWebserver::GetBaseUrl() const {
}
const std::string cWebserver::GetServiceUrl() const {
- return mServiceUrl;
+ return GetBaseUrl() + mServiceUrl;
}
const std::string cWebserver::GetControlUrl() const {
- return mControlUrl;
+ stringstream s;
+ s << "http://" << UpnpGetServerIpAddress() << ":" << UpnpGetServerPort() << "/" << "services/";
+ return s.str();
}
const std::string cWebserver::GetPresentationUrl() const {
- return mPresentationUrl;
+ return (mPresentationUrl.find("http://",0) == 0) ? mPresentationUrl : (GetBaseUrl() + mPresentationUrl);
}
const std::string cWebserver::GetStaticContentUrl() const {
- return mStaticContentUrl;
+ return GetBaseUrl() + mStaticContentUrl;
}
cWebserver::cWSThread::cWSThread(cWebserver& webServer)
: mWebserver(webServer)
{
-
}
void cWebserver::cWSThread::Action(){
@@ -162,6 +147,10 @@ void cWebserver::cWSThread::Action(){
}
}
+void cWebserver::cWSThread::Stop(){
+ Cancel(5);
+}
+
} // namespace upnp