]> git.stg.codes - stg.git/blobdiff - projects/stargazer/user.cpp
Add support of -E key for sgconf (credit timeout)
[stg.git] / projects / stargazer / user.cpp
index 6e77f0a53de025a3208d8fa8ea06fcff9d511f98..d8368c4d41b1885821af69c158b4da0afe4dc417 100644 (file)
@@ -123,8 +123,6 @@ currIP.AddAfterNotifier(&ipNotifier);
 
 lastScanMessages = 0;
 
-writeFreeMbTraffCost = settings->GetWriteFreeMbTraffCost();
-
 pthread_mutexattr_t attr;
 pthread_mutexattr_init(&attr);
 pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE);
@@ -206,8 +204,6 @@ currIP.AddAfterNotifier(&ipNotifier);
 
 lastScanMessages = 0;
 
-writeFreeMbTraffCost = settings->GetWriteFreeMbTraffCost();
-
 property.SetProperties(u.property);
 
 pthread_mutexattr_t attr;
@@ -339,10 +335,11 @@ int USER::WriteMonthStat()
 {
 STG_LOCKER lock(&mutex, __FILE__, __LINE__);
 time_t tt = stgTime - 3600;
-struct tm * t1 = localtime(&tt);
+struct tm t1;
+localtime_r(&tt, &t1);
 
 USER_STAT stat(property.GetStat());
-if (store->SaveMonthStat(stat, t1->tm_mon, t1->tm_year, login))
+if (store->SaveMonthStat(stat, t1.tm_mon, t1.tm_year, login))
     {
     WriteServLog("Cannot write month stat for user %s.", login.c_str());
     WriteServLog("%s", store->GetStrError().c_str());
@@ -770,7 +767,8 @@ sessionUpload[dir] += len;
 
 //Add detailed stat
 
-if (!writeFreeMbTraffCost && freeMb.ConstData() >= 0)
+if (!settings->GetWriteFreeMbTraffCost() &&
+     freeMb.ConstData() >= 0)
     cost = 0;
 
 #ifdef TRAFF_STAT_WITH_PORTS
@@ -860,7 +858,8 @@ sessionDownload[dir] += len;
 
 //Add detailed stat
 
-if (!writeFreeMbTraffCost && freeMb.ConstData() >= 0)
+if (!settings->GetWriteFreeMbTraffCost() &&
+     freeMb.ConstData() >= 0)
     cost = 0;
 
 #ifdef TRAFF_STAT_WITH_PORTS
@@ -1007,13 +1006,13 @@ STG_LOCKER lock(&mutex, __FILE__, __LINE__);
 static int daysInMonth[12] =
 {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
 
-struct tm tms;
+struct tm tms;
 time_t t = stgTime;
-tms = localtime(&t);
+localtime_r(&t, &tms);
 
-time_t secMonth = daysInMonth[(tms->tm_mon + 11) % 12] * 24 * 3600; // Previous month
+time_t secMonth = daysInMonth[(tms.tm_mon + 11) % 12] * 24 * 3600; // Previous month
 
-if (tms->tm_year % 4 == 0 && tms->tm_mon == 1)
+if (tms.tm_year % 4 == 0 && tms.tm_mon == 1)
     {
     // Leap year
     secMonth += 24 * 3600;
@@ -1031,12 +1030,11 @@ void USER::SetPassiveTimeAsNewUser()
 {
 STG_LOCKER lock(&mutex, __FILE__, __LINE__);
 
-time_t t;
-struct tm * tm;
-t = stgTime;
-tm = localtime(&t);
+time_t t = stgTime;
+struct tm tm;
+localtime_r(&t, &tm);
 int daysCurrMon = DaysInCurrentMonth();
-double pt = (tm->tm_mday - 1) / (double)daysCurrMon;
+double pt = (tm.tm_mday - 1) / (double)daysCurrMon;
 
 passiveTime = (time_t)(pt * 24 * 3600 * daysCurrMon);
 }