Prevent re-initialized connections from counting bytes too eagerly.
This commit is contained in:
parent
8b87337314
commit
52d0c66166
2 changed files with 16 additions and 2 deletions
|
@ -636,6 +636,11 @@ long long Controller::statSession::getBpsUp(unsigned long long t){
|
|||
}
|
||||
}
|
||||
|
||||
Controller::statStorage::statStorage(){
|
||||
removeDown = 0;
|
||||
removeUp = 0;
|
||||
}
|
||||
|
||||
/// Returns true if there is data available for timestamp t.
|
||||
bool Controller::statStorage::hasDataFor(unsigned long long t) {
|
||||
if (!log.size()){return false;}
|
||||
|
@ -665,8 +670,13 @@ void Controller::statStorage::update(IPC::statExchange & data) {
|
|||
statLog tmp;
|
||||
tmp.time = data.time();
|
||||
tmp.lastSecond = data.lastSecond();
|
||||
tmp.down = data.down();
|
||||
tmp.up = data.up();
|
||||
tmp.down = data.down() - removeDown;
|
||||
tmp.up = data.up() - removeUp;
|
||||
if (!log.size() && tmp.down + tmp.up > COUNTABLE_BYTES){
|
||||
//substract the start values if they are too high - this is a resumed connection of some sort
|
||||
removeDown = tmp.down;
|
||||
removeUp = tmp.up;
|
||||
}
|
||||
log[data.now()] = tmp;
|
||||
//wipe data older than approx. STAT_CUTOFF seconds
|
||||
/// \todo Remove least interesting data first.
|
||||
|
|
|
@ -62,7 +62,11 @@ namespace Controller {
|
|||
|
||||
|
||||
class statStorage {
|
||||
private:
|
||||
long long removeUp;
|
||||
long long removeDown;
|
||||
public:
|
||||
statStorage();
|
||||
void update(IPC::statExchange & data);
|
||||
bool hasDataFor(unsigned long long);
|
||||
statLog & getDataFor(unsigned long long);
|
||||
|
|
Loading…
Add table
Reference in a new issue