fr_pair_t *vp;
FILE *fp;
struct utmp ut;
- time_t t;
+ uint64_t t;
char buf[64];
char const *s = NULL;
- int delay = 0;
int status = -1;
int nas_address = 0;
int framed_address = 0;
port_seen = true;
} else if (vp->da == attr_acct_delay_time) {
+ uint32_t delay;
+
delay = vp->vp_uint32;
+
+ if (t < delay) return RLM_MODULE_FAIL;
+
+ t -= delay;
}
}
+ if (t > UINT32_MAX) return RLM_MODULE_FAIL;
/*
* We don't store !root sessions, or sessions
}
#endif
#ifdef USE_UTMPX
- ut.ut_xtime = t - delay;
+ ut.ut_xtime = t;
#else
- ut.ut_time = t - delay;
+ ut.ut_time = t;
#endif
#ifdef USER_PROCESS
/*