t->mode = EAP_FAST_PROVISIONING_ANON;
t->pac.send = true;
} else {
+ fr_time_t renew;
+
if (SSL_session_reused(tls_session->ssl)) {
RDEBUG2("Session Resumed from PAC");
t->mode = EAP_FAST_NORMAL_AUTH;
}
/*
- * Send a new pac at ~0.6 times the lifetime.
+ * Send a new pac at 60% of the lifetime,
+ * or if the PAC has expired, or if no lifetime was set.
*/
- if (fr_time_eq(t->pac.expires, fr_time_wrap(0)) || t->pac.expired ||
- fr_time_lteq(t->pac.expires,
- fr_time_add(request->packet->timestamp, t->pac_lifetime))) {
+ renew = fr_time_add(request->packet->timestamp, ((t->pac_lifetime * 3) / 5));
+
+ if (t->pac.expired || fr_time_eq(t->pac.expires, fr_time_wrap(0)) ||
+ fr_time_lteq(t->pac.expires, renew)) {
t->pac.send = true;
}
}