diff --git a/opentrafficshaper/plugins/configmanager.pm b/opentrafficshaper/plugins/configmanager.pm index f60ab479719acaaf4ae2a08ef37410377b5b1da7..94efc7d5f6ae4f52d87638cfc9d921852bdc5e5c 100644 --- a/opentrafficshaper/plugins/configmanager.pm +++ b/opentrafficshaper/plugins/configmanager.pm @@ -129,7 +129,7 @@ sub session_tick { $logger->log(LOG_DEBUG,"[CONFIGMANAGER] Processing new user '$cuser->{'Username'}' [$uid]"); # This is now live $users->{$uid} = $cuser; - $users->{$uid}->{'shaper_live'} = SHAPER_PENDING; + $users->{$uid}->{'shaper.live'} = SHAPER_PENDING; # Post to shaper $kernel->post("shaper" => "add" => $uid); @@ -164,16 +164,18 @@ sub session_tick { if ($now - $cuser->{'LastUpdate'} > TIMEOUT_EXPIRE_OFFLINE) { # Remove entry if no longer live - if (!$guser->{'shaper_live'}) { + if (!$guser->{'shaper.live'}) { $logger->log(LOG_DEBUG,"[CONFIGMANAGER] User '$cuser->{'Username'}' [$uid], user in list, but offline now, expired and not live on shaper"); # Remove from system delete($users->{$uid}); # Remove from change queue delete($changeQueue->{$uid}); + # Jump to next + next; # Push to shaper - } elsif ($guser->{'status'} ne "offline") { + } elsif ($guser->{'shaper.live'} == SHAPER_LIVE) { $logger->log(LOG_DEBUG,"[CONFIGMANAGER] User '$cuser->{'Username'}' [$uid], user in list, but offline now and expired, still live on shaper"); # Post to shaper @@ -186,12 +188,14 @@ sub session_tick { } } } - - # Update the last time we got an update - $guser->{'LastUpdate'} = $cuser->{'LastUpdate'}; } + + # Update the last time we got an update + $guser->{'Status'} = $cuser->{'Status'}; + $guser->{'LastUpdate'} = $cuser->{'LastUpdate'}; } + # Reset tick $kernel->delay(tick => 5); };