mirror of
https://github.com/RetroShare/RetroShare.git
synced 2025-05-02 14:16:16 -04:00
* Added second (temporary) switch to turtle.
* Use session switch for OperatingMode. * made OperatingMode temporary - not saved. git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@5895 b45a01b8-16f6-495d-af2f-9b41ad6348cc
This commit is contained in:
parent
80dfa620b2
commit
90415627a2
6 changed files with 70 additions and 4 deletions
|
@ -23,6 +23,7 @@
|
|||
*
|
||||
*/
|
||||
|
||||
#include <retroshare/rsturtle.h>
|
||||
#include "rsserver/p3serverconfig.h"
|
||||
#include "services/p3bwctrl.h"
|
||||
|
||||
|
@ -46,10 +47,14 @@ p3ServerConfig::p3ServerConfig(p3PeerMgr *peerMgr, p3LinkMgr *linkMgr, p3NetMgr
|
|||
|
||||
mGeneralConfig = genCfg;
|
||||
|
||||
RsStackMutex stack(configMtx); /******* LOCKED MUTEX *****/
|
||||
|
||||
mUserLevel = RSCONFIG_USER_LEVEL_NEW; /* START LEVEL */
|
||||
mRateDownload = DEFAULT_DOWNLOAD_KB_RATE;
|
||||
mRateUpload = DEFAULT_UPLOAD_KB_RATE;
|
||||
|
||||
mOpMode = RS_OPMODE_FULL;
|
||||
|
||||
rsConfig = this;
|
||||
}
|
||||
|
||||
|
@ -320,6 +325,7 @@ uint32_t p3ServerConfig::getConnectModes()
|
|||
|
||||
uint32_t p3ServerConfig::getOperatingMode()
|
||||
{
|
||||
#ifdef SAVE_OPERATING_MODE
|
||||
std::string modestr = mGeneralConfig->getSetting(RS_CONFIG_OPERATING_STRING);
|
||||
uint32_t mode = RS_OPMODE_FULL;
|
||||
|
||||
|
@ -340,11 +346,16 @@ uint32_t p3ServerConfig::getOperatingMode()
|
|||
mode = RS_OPMODE_MINIMAL;
|
||||
}
|
||||
return mode;
|
||||
#else
|
||||
RsStackMutex stack(configMtx); /******* LOCKED MUTEX *****/
|
||||
return mOpMode;
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
bool p3ServerConfig::setOperatingMode(uint32_t opMode)
|
||||
{
|
||||
#ifdef SAVE_OPERATING_MODE
|
||||
std::string modestr = "FULL";
|
||||
switch(opMode)
|
||||
{
|
||||
|
@ -364,6 +375,12 @@ bool p3ServerConfig::setOperatingMode(uint32_t opMode)
|
|||
break;
|
||||
}
|
||||
mGeneralConfig->setSetting(RS_CONFIG_OPERATING_STRING, modestr);
|
||||
#else
|
||||
{
|
||||
RsStackMutex stack(configMtx); /******* LOCKED MUTEX *****/
|
||||
mOpMode = opMode;
|
||||
}
|
||||
#endif
|
||||
return switchToOperatingMode(opMode);
|
||||
}
|
||||
|
||||
|
@ -372,6 +389,7 @@ bool p3ServerConfig::switchToOperatingMode(uint32_t opMode)
|
|||
{
|
||||
float dl_rate = 0;
|
||||
float ul_rate = 0;
|
||||
bool turtle_enabled = true;
|
||||
|
||||
{
|
||||
RsStackMutex stack(configMtx); /******* LOCKED MUTEX *****/
|
||||
|
@ -379,6 +397,9 @@ bool p3ServerConfig::switchToOperatingMode(uint32_t opMode)
|
|||
ul_rate = mRateUpload;
|
||||
}
|
||||
|
||||
std::cerr << "p3ServerConfig::switchToOperatingMode(" << opMode << ")";
|
||||
std::cerr << std::endl;
|
||||
|
||||
switch (opMode)
|
||||
{
|
||||
default:
|
||||
|
@ -388,17 +409,20 @@ bool p3ServerConfig::switchToOperatingMode(uint32_t opMode)
|
|||
/* switch on popups, enable hashing */
|
||||
//setMaxRate(true, mri); // In / Download
|
||||
//setMaxRate(false, mro); // Out / Upload.
|
||||
turtle_enabled = true;
|
||||
break;
|
||||
case RS_OPMODE_NOTURTLE:
|
||||
/* switch on all transfers - except turtle, enable hashing */
|
||||
/* 100% bandwidth */
|
||||
/* switch on popups, enable hashing */
|
||||
turtle_enabled = false;
|
||||
|
||||
break;
|
||||
case RS_OPMODE_GAMING:
|
||||
/* switch on all transfers */
|
||||
/* reduce bandwidth to 25% */
|
||||
/* switch off popups, enable hashing */
|
||||
turtle_enabled = true;
|
||||
|
||||
dl_rate *= 0.25;
|
||||
ul_rate *= 0.25;
|
||||
|
@ -408,6 +432,7 @@ bool p3ServerConfig::switchToOperatingMode(uint32_t opMode)
|
|||
/* reduce bandwidth to 10%, but make sure there is enough for VoIP */
|
||||
/* switch on popups, enable hashing */
|
||||
|
||||
turtle_enabled = false;
|
||||
|
||||
dl_rate *= 0.10;
|
||||
ul_rate *= 0.10;
|
||||
|
@ -427,8 +452,16 @@ bool p3ServerConfig::switchToOperatingMode(uint32_t opMode)
|
|||
{
|
||||
mPqiHandler -> setMaxRate(true, dl_rate);
|
||||
mPqiHandler -> setMaxRate(false, ul_rate);
|
||||
|
||||
std::cerr << "p3ServerConfig::switchToOperatingMode() D/L: " << dl_rate << " U/L: " << ul_rate;
|
||||
std::cerr << std::endl;
|
||||
|
||||
}
|
||||
|
||||
std::cerr << "p3ServerConfig::switchToOperatingMode() Turtle Mode: " << turtle_enabled;
|
||||
std::cerr << std::endl;
|
||||
|
||||
rsTurtle->setSessionEnabled(turtle_enabled);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
@ -114,6 +114,7 @@ bool findConfigurationOption(uint32_t key, std::string &keystr);
|
|||
float mRateDownload;
|
||||
float mRateUpload;
|
||||
|
||||
uint32_t mOpMode;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue