- my $svc_acct = $svc_acct[0];
- warn "found svc_acct ". $svc_acct->svcnum. " $errinfo\n" if $DEBUG;
- if ( $svc_acct->seconds !~ /^$/ ) {
- warn " svc_acct.seconds found (". $svc_acct->seconds.
- ") - decrementing\n"
- if $DEBUG;
- my $error = $svc_acct->decrement_seconds($AcctSessionTime);
- die $error if $error;
- $status = 'done';
- } else {
- warn " no existing seconds value for svc_acct - skiping\n" if $DEBUG;
- }
+ warn "found svc_acct ". $svc_acct[0]->svcnum. " $errinfo\n" if $DEBUG;
+ $svc_acct[0]->last_login($AcctStartTime);
+ $svc_acct[0]->last_logout($AcctStopTime);
+ my @stati;
+ push @stati, _try_decrement($svc_acct[0], 'seconds', $AcctSessionTime);
+ push @stati, _try_decrement($svc_acct[0], 'upbytes', $AcctInputOctets);
+ push @stati, _try_decrement($svc_acct[0], 'downbytes', $AcctOutputOctets);
+ push @stati, _try_decrement($svc_acct[0], 'totalbytes', $AcctInputOctets +
+ $AcctOutputOctets);
+ $status=join(' ', @stati);