int ret;
int client;
int days, result, ca_status = 0, is_ike = 0, path_len;
+ time_t secs, now;
int vers;
unsigned int usage = 0, server;
gnutls_x509_crq_t crq; /* request */
gnutls_x509_crt_set_activation_time (crt, time (NULL));
- days = get_days ();
+ now = time(NULL);
+
+ do
+ {
+ days = get_days ();
+ secs = days * 24 * 60 * 60 + now;
+ }
+ while (secs < now || (unsigned)(secs-now)/(24*60*60) != (unsigned)days);
result =
- gnutls_x509_crt_set_expiration_time (crt,
- time (NULL) + ((time_t) days) * 24 * 60 * 60);
+ gnutls_x509_crt_set_expiration_time (crt, secs);
if (result < 0)
error (EXIT_FAILURE, 0, "set_expiration: %s", gnutls_strerror (result));