@@ -73,15 +73,6 @@ void AcctScheduler::addUser(UserAcct *user)
73
73
*/
74
74
void AcctScheduler::delUser (PluginContext * context, UserAcct *user)
75
75
{
76
- uint64_t bytesin=0 , bytesout=0 ;
77
-
78
- // get the sent and received bytes
79
- this ->parseStatusFile (context, &bytesin, &bytesout,user->getStatusFileKey ().c_str ());
80
-
81
- user->setBytesIn (bytesin & 0xFFFFFFFF );
82
- user->setBytesOut (bytesout & 0xFFFFFFFF );
83
- user->setGigaIn (bytesin >> 32 );
84
- user->setGigaOut (bytesout >> 32 );
85
76
86
77
if (DEBUG (context->getVerbosity ()))
87
78
cerr << getTime () << " RADIUS-PLUGIN: BACKGROUND-ACCT: Got accounting data from file, CN: " << user->getCommonname () << " in: " << user->getBytesIn () << " out: " << user->getBytesOut () << " .\n " ;
@@ -163,14 +154,18 @@ void AcctScheduler::doAccounting(PluginContext * context)
163
154
cerr << getTime () << " RADIUS-PLUGIN: BACKGROUND-ACCT: Scheduler: Update for User " << iter1->second .getUsername () << " .\n " ;
164
155
165
156
this ->parseStatusFile (context, &bytesin, &bytesout,iter1->second .getStatusFileKey ().c_str ());
166
- iter1->second .setBytesIn (bytesin & 0xFFFFFFFF );
167
- iter1->second .setBytesOut (bytesout & 0xFFFFFFFF );
168
- iter1->second .setGigaIn (bytesin >> 32 );
169
- iter1->second .setGigaOut (bytesout >> 32 );
170
- iter1->second .sendUpdatePacket (context);
171
-
172
- if (DEBUG (context->getVerbosity ()))
173
- cerr << getTime () << " RADIUS-PLUGIN: BACKGROUND-ACCT: Scheduler: Update packet for User " << iter1->second .getUsername () << " was send.\n " ;
157
+ if (bytesin > 0 && bytesout > 0 ){
158
+ iter1->second .setBytesIn (bytesin & 0xFFFFFFFF );
159
+ iter1->second .setBytesOut (bytesout & 0xFFFFFFFF );
160
+ iter1->second .setGigaIn (bytesin >> 32 );
161
+ iter1->second .setGigaOut (bytesout >> 32 );
162
+ iter1->second .sendUpdatePacket (context);
163
+
164
+ if (DEBUG (context->getVerbosity ()))
165
+ cerr << getTime () << " RADIUS-PLUGIN: BACKGROUND-ACCT: Scheduler: Update packet for User " << iter1->second .getUsername () << " was send.\n " ;
166
+ }else {
167
+ cerr << getTime () << " RADIUS-PLUGIN: BACKGROUND-ACCT: Scheduler: Don't update for " << iter1->second .getUsername () << " because of lack of data.\n " ;
168
+ }
174
169
175
170
// calculate the next update
176
171
iter1->second .setNextUpdate (iter1->second .getNextUpdate ()+iter1->second .getAcctInterimInterval ());
0 commit comments