diff options
Diffstat (limited to 'validator/autotrust.c')
| -rw-r--r-- | validator/autotrust.c | 31 | 
1 files changed, 22 insertions, 9 deletions
| diff --git a/validator/autotrust.c b/validator/autotrust.c index 7ce07e0d82d7..9643a3ddb38b 100644 --- a/validator/autotrust.c +++ b/validator/autotrust.c @@ -1077,6 +1077,17 @@ trustanchor_state2str(autr_state_type s)          return " UNKNOWN ";  } +/** ctime r for autotrust */ +static char* autr_ctime_r(time_t* t, char* s) +{ +	ctime_r(t, s); +#ifdef USE_WINSOCK +	if(strlen(s) > 10 && s[7]==' ' && s[8]=='0') +		s[8]=' '; /* fix error in windows ctime */ +#endif +	return s; +} +  /** print ID to file */  static int  print_id(FILE* out, char* fname, uint8_t* nm, size_t nmlen, uint16_t dclass) @@ -1123,13 +1134,13 @@ autr_write_contents(FILE* out, char* fn, struct trust_anchor* tp)  	}  	if(fprintf(out, ";;last_queried: %u ;;%s",   		(unsigned int)tp->autr->last_queried,  -		ctime_r(&(tp->autr->last_queried), tmi)) < 0 || +		autr_ctime_r(&(tp->autr->last_queried), tmi)) < 0 ||  	   fprintf(out, ";;last_success: %u ;;%s",   		(unsigned int)tp->autr->last_success, -		ctime_r(&(tp->autr->last_success), tmi)) < 0 || +		autr_ctime_r(&(tp->autr->last_success), tmi)) < 0 ||  	   fprintf(out, ";;next_probe_time: %u ;;%s",   		(unsigned int)tp->autr->next_probe_time, -		ctime_r(&(tp->autr->next_probe_time), tmi)) < 0 || +		autr_ctime_r(&(tp->autr->next_probe_time), tmi)) < 0 ||  	   fprintf(out, ";;query_failed: %d\n", (int)tp->autr->query_failed)<0  	   || fprintf(out, ";;query_interval: %d\n",   	   (int)tp->autr->query_interval) < 0 || @@ -1160,7 +1171,7 @@ autr_write_contents(FILE* out, char* fn, struct trust_anchor* tp)  			";;lastchange=%u ;;%s", str, (int)ta->s,   			trustanchor_state2str(ta->s), (int)ta->pending_count,  			(unsigned int)ta->last_change,  -			ctime_r(&(ta->last_change), tmi)) < 0) { +			autr_ctime_r(&(ta->last_change), tmi)) < 0) {  		   log_err("could not write to %s: %s", fn, strerror(errno));  		   free(str);  		   return 0; @@ -1579,6 +1590,7 @@ key_matches_a_ds(struct module_env* env, struct val_env* ve,  	for(ds_idx=0; ds_idx<num; ds_idx++) {  		if(!ds_digest_algo_is_supported(ds_rrset, ds_idx) ||  			!ds_key_algo_is_supported(ds_rrset, ds_idx) || +			!dnskey_size_is_supported(dnskey_rrset, key_idx) ||  			ds_get_digest_algo(ds_rrset, ds_idx) != d)  			continue;  		if(ds_get_key_algo(ds_rrset, ds_idx) @@ -1633,7 +1645,8 @@ update_events(struct module_env* env, struct val_env* ve,  		}  		/* is a key of this type supported?. Note rr_list and  		 * packed_rrset are in the same order. */ -		if(!dnskey_algo_is_supported(dnskey_rrset, i)) { +		if(!dnskey_algo_is_supported(dnskey_rrset, i) || +			!dnskey_size_is_supported(dnskey_rrset, i)) {  			/* skip unknown algorithm key, it is useless to us */  			log_nametypeclass(VERB_DETAIL, "trust point has "  				"unsupported algorithm at",  @@ -2262,7 +2275,7 @@ autr_debug_print_ta(struct autr_ta* ta)  		return;  	}  	if(str[0]) str[strlen(str)-1]=0; /* remove newline */ -	ctime_r(&ta->last_change, buf); +	(void)autr_ctime_r(&ta->last_change, buf);  	if(buf[0]) buf[strlen(buf)-1]=0; /* remove newline */  	log_info("[%s] %s ;;state:%d ;;pending_count:%d%s%s last:%s",  		trustanchor_state2str(ta->s), str, ta->s, ta->pending_count, @@ -2289,13 +2302,13 @@ autr_debug_print_tp(struct trust_anchor* tp)  		log_packed_rrset(NO_VERBOSE, "DNSKEY:", tp->dnskey_rrset);  	}  	log_info("file %s", tp->autr->file); -	ctime_r(&tp->autr->last_queried, buf); +	(void)autr_ctime_r(&tp->autr->last_queried, buf);  	if(buf[0]) buf[strlen(buf)-1]=0; /* remove newline */  	log_info("last_queried: %u %s", (unsigned)tp->autr->last_queried, buf); -	ctime_r(&tp->autr->last_success, buf); +	(void)autr_ctime_r(&tp->autr->last_success, buf);  	if(buf[0]) buf[strlen(buf)-1]=0; /* remove newline */  	log_info("last_success: %u %s", (unsigned)tp->autr->last_success, buf); -	ctime_r(&tp->autr->next_probe_time, buf); +	(void)autr_ctime_r(&tp->autr->next_probe_time, buf);  	if(buf[0]) buf[strlen(buf)-1]=0; /* remove newline */  	log_info("next_probe_time: %u %s", (unsigned)tp->autr->next_probe_time,  		buf); | 
