From 2eb5731c5011ca46377f4301965c15cf7750b49a Mon Sep 17 00:00:00 2001 From: piaip Date: Sun, 6 Sep 2009 13:25:08 +0000 Subject: * adjust numlogindays calculation - should be rounded to each day. git-svn-id: http://opensvn.csie.org/pttbbs/branches/pttbbs.pwcu@4812 63ad8ddf-47c3-0310-b6dd-a9e9d9715204 --- mbbsd/passwd.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'mbbsd/passwd.c') diff --git a/mbbsd/passwd.c b/mbbsd/passwd.c index 548342c9..3bb8e352 100644 --- a/mbbsd/passwd.c +++ b/mbbsd/passwd.c @@ -442,6 +442,7 @@ int pwcuLoginSave () // was decided. int regdays = 0, prev_regdays = 0; int reftime = login_start_time; + time4_t baseref = 0; PWCU_START(); // new host from 'fromhost' @@ -451,12 +452,15 @@ int pwcuLoginSave () // this must be valid. assert(login_start_time > 0); + // adjust base reference by rounding to beginning of each day (0:00am) + baseref = u.firstlogin - (u.firstlogin % DAY_SECONDS); + // invalid session? if (reftime < u.lastlogin) reftime = u.lastlogin; - regdays = ( reftime - u.firstlogin) / DAY_SECONDS; - prev_regdays = (u.lastlogin - u.firstlogin) / DAY_SECONDS; + regdays = ( reftime - baseref) / DAY_SECONDS; + prev_regdays = (u.lastlogin - baseref) / DAY_SECONDS; // assert(regdays >= prev_regdays); if (u.numlogindays > prev_regdays) -- cgit v1.2.3