@@ -84,6 +84,7 @@ static md_mod_conf_t defmc = {
8484 "crt.sh" , /* default cert checker site name */
8585 "https://crt.sh?q=" , /* default cert checker site url */
8686 NULL , /* CA cert file to use */
87+ APR_TIME_C (0 ), /* initial cert check delay */
8788 apr_time_from_sec (MD_SECS_PER_DAY /2 ), /* default time between cert checks */
8889 apr_time_from_sec (30 ), /* minimum delay for retries */
8990 13 , /* retry_failover after 14 errors, with 5s delay ~ half a day */
@@ -676,6 +677,24 @@ static const char *md_config_set_base_server(cmd_parms *cmd, void *dc, const cha
676677 return set_on_off (& config -> mc -> manage_base_server , value , cmd -> pool );
677678}
678679
680+ static const char * md_config_set_initial_delay (cmd_parms * cmd , void * dc , const char * value )
681+ {
682+ md_srv_conf_t * config = md_config_get (cmd -> server );
683+ const char * err = md_conf_check_location (cmd , MD_LOC_NOT_MD );
684+ apr_time_t delay ;
685+
686+ (void )dc ;
687+ if (err ) return err ;
688+ if (md_duration_parse (& delay , value , "s" ) != APR_SUCCESS ) {
689+ return "unrecognized duration format" ;
690+ }
691+ if (delay < 0 ) {
692+ return "initial delay must not be negative" ;
693+ }
694+ config -> mc -> initial_delay = delay ;
695+ return NULL ;
696+ }
697+
679698static const char * md_config_set_check_interval (cmd_parms * cmd , void * dc , const char * value )
680699{
681700 md_srv_conf_t * config = md_config_get (cmd -> server );
@@ -1377,6 +1396,8 @@ const command_rec md_cmds[] = {
13771396 "Configure locking of store for updates." ),
13781397 AP_INIT_TAKE1 ("MDMatchNames" , md_config_set_match_mode , NULL , RSRC_CONF ,
13791398 "Determines how DNS names are matched to vhosts." ),
1399+ AP_INIT_TAKE1 ("MDInitialDelay" , md_config_set_initial_delay , NULL , RSRC_CONF ,
1400+ "How long to delay the first certificate check." ),
13801401 AP_INIT_TAKE1 ("MDCheckInterval" , md_config_set_check_interval , NULL , RSRC_CONF ,
13811402 "Time between certificate checks." ),
13821403 AP_INIT_TAKE1 ("MDProfile" , md_config_set_profile , NULL , RSRC_CONF ,
0 commit comments