mirror of
https://github.com/RetroShare/RetroShare.git
synced 2025-05-31 11:54:22 -04:00
fixed retroshare_service with embedded webui
This commit is contained in:
parent
2123ad7645
commit
997501a24d
8 changed files with 66 additions and 35 deletions
|
@ -518,6 +518,14 @@ bool JsonApiServer::revokeAuthToken(const std::string& token)
|
|||
return false;
|
||||
}
|
||||
|
||||
void JsonApiServer::connectToConfigManager(p3ConfigMgr *cfgmgr)
|
||||
{
|
||||
cfgmgr->addConfiguration("jsonapi.cfg",this);
|
||||
|
||||
RsFileHash hash;
|
||||
loadConfiguration(hash);
|
||||
}
|
||||
|
||||
bool JsonApiServer::authorizeUser(const std::string& user,const std::string& passwd)
|
||||
{
|
||||
if(!is_alphanumeric(user) || !is_alphanumeric(passwd))
|
||||
|
|
|
@ -58,6 +58,8 @@ public:
|
|||
virtual void setBindingAddress(const std::string& address) override { RestbedService::setBindAddress(address); }
|
||||
virtual int status() const override;
|
||||
|
||||
virtual void connectToConfigManager(p3ConfigMgr *cfgmgr);
|
||||
|
||||
virtual bool authorizeUser(const std::string& alphanumeric_user,const std::string& alphanumeric_passwd) override;
|
||||
virtual std::map<std::string,std::string> getAuthorizedTokens() override;
|
||||
bool revokeAuthToken(const std::string& user) override;
|
||||
|
|
|
@ -31,6 +31,7 @@ public:
|
|||
{
|
||||
_service = std::make_shared<restbed::Service>(); // this is a place holder, in case we request some internal values.
|
||||
_listening_port = 1984;
|
||||
_binding_address = "127.0.0.1";
|
||||
}
|
||||
|
||||
void runloop() override
|
||||
|
@ -58,7 +59,7 @@ public:
|
|||
|
||||
try
|
||||
{
|
||||
std::cerr << "(II) Starting restbed service on port " << std::dec << _listening_port << std::endl;
|
||||
std::cerr << "(II) Starting restbed service on port " << std::dec << _listening_port << " and binding address \"" << _binding_address << "\"" << std::endl;
|
||||
_service->start( settings );
|
||||
}
|
||||
catch(std::exception& e)
|
||||
|
|
|
@ -22,6 +22,8 @@
|
|||
|
||||
#include <string>
|
||||
|
||||
class p3ConfigMgr;
|
||||
|
||||
class RsJsonAPI
|
||||
{
|
||||
public:
|
||||
|
@ -40,6 +42,8 @@ public:
|
|||
virtual void setBindingAddress(const std::string& address) =0;
|
||||
virtual void setListeningPort(uint16_t port) =0;
|
||||
|
||||
virtual void connectToConfigManager(p3ConfigMgr *cfgmgr)=0;
|
||||
|
||||
/**
|
||||
* @brief Get status of the json api server
|
||||
* @jsonapi{development}
|
||||
|
|
|
@ -48,11 +48,13 @@ static constexpr char *mime_types[3] = {
|
|||
};
|
||||
|
||||
#ifdef WINDOWS_SYS
|
||||
static std::string _base_directory = "data/webui";
|
||||
const std::string RsWebUI::DEFAULT_BASE_DIRECTORY = "data/webui";
|
||||
#else
|
||||
static std::string _base_directory = "/usr/share/retroshare/webui/";
|
||||
const std::string RsWebUI::DEFAULT_BASE_DIRECTORY = "/usr/share/retroshare/webui/";
|
||||
#endif
|
||||
|
||||
static std::string _base_directory = RsWebUI::DEFAULT_BASE_DIRECTORY;
|
||||
|
||||
|
||||
template<int MIME_TYPE_INDEX> class handler
|
||||
{
|
||||
|
|
|
@ -61,6 +61,7 @@
|
|||
#include "gxstunnel/p3gxstunnel.h"
|
||||
#include "retroshare/rsgxsdistsync.h"
|
||||
#include "file_sharing/p3filelists.h"
|
||||
#include "jsonapi/jsonapi.h"
|
||||
|
||||
#define ENABLE_GROUTER
|
||||
|
||||
|
@ -391,6 +392,22 @@ int RsInit::InitRetroShare(const RsConfigOptions& conf)
|
|||
if(!RsAccounts::init(rsInitConfig->optBaseDir,error_code))
|
||||
return error_code ;
|
||||
|
||||
#ifdef RS_JSONAPI
|
||||
// We create the JsonApiServer this early, because it is needed *before* login
|
||||
|
||||
RsInfo() << "Allocating jsonAPI server (not launched yet) " << std::endl;
|
||||
JsonApiServer *jas = new JsonApiServer();
|
||||
jas->setListeningPort(conf.jsonApiPort);
|
||||
jas->setBindingAddress(conf.jsonApiBindAddress);
|
||||
|
||||
if(conf.jsonApiPort != NULL)
|
||||
{
|
||||
RsInfo() << "Launching jsonAPI server on port " << conf.jsonApiPort << std::endl;
|
||||
jas->restart();
|
||||
}
|
||||
|
||||
rsJsonAPI = jas;
|
||||
#endif
|
||||
|
||||
#ifdef RS_AUTOLOGIN
|
||||
/* check that we have selected someone */
|
||||
|
@ -408,16 +425,6 @@ int RsInit::InitRetroShare(const RsConfigOptions& conf)
|
|||
}
|
||||
#endif
|
||||
|
||||
#ifdef RS_JSONAPI
|
||||
if(rsInitConfig->jsonApiPort)
|
||||
{
|
||||
rsJsonAPI->setListeningPort(rsInitConfig->jsonApiPort);
|
||||
rsJsonAPI->setBindingAddress(rsInitConfig->jsonApiBindAddress);
|
||||
rsJsonAPI->restart();
|
||||
}
|
||||
|
||||
#endif // ifdef RS_JSONAPI
|
||||
|
||||
return RS_INIT_OK;
|
||||
}
|
||||
|
||||
|
@ -1217,13 +1224,10 @@ int RsServer::StartupRetroShare()
|
|||
mPluginsManager->loadPlugins(programatically_inserted_plugins) ;
|
||||
|
||||
#ifdef RS_JSONAPI
|
||||
mJsonAPIServer = new JsonApiServer;
|
||||
rsJsonAPI = mJsonAPIServer;
|
||||
// add jsonapi server to config manager so that it can save/load its tokens
|
||||
|
||||
mConfigMgr->addConfiguration("jsonapi.cfg",mJsonAPIServer);
|
||||
|
||||
RsFileHash dummyHash;
|
||||
mJsonAPIServer->loadConfiguration(dummyHash);
|
||||
if(rsJsonAPI)
|
||||
rsJsonAPI->connectToConfigManager(mConfigMgr);
|
||||
#endif
|
||||
|
||||
/**** Reputation system ****/
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue