summaryrefslogtreecommitdiff
path: root/contrib/ntp/ntpd/ntp_leapsec.c
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/ntp/ntpd/ntp_leapsec.c')
-rw-r--r--contrib/ntp/ntpd/ntp_leapsec.c69
1 files changed, 36 insertions, 33 deletions
diff --git a/contrib/ntp/ntpd/ntp_leapsec.c b/contrib/ntp/ntpd/ntp_leapsec.c
index 95a06736751b..7d20873d618d 100644
--- a/contrib/ntp/ntpd/ntp_leapsec.c
+++ b/contrib/ntp/ntpd/ntp_leapsec.c
@@ -422,7 +422,8 @@ int/*BOOL*/
leapsec_load_stream(
FILE * ifp ,
const char * fname,
- int/*BOOL*/ logall)
+ int/*BOOL*/ logall,
+ int/*BOOL*/ vhash)
{
leap_table_t *pt;
int rcheck;
@@ -430,36 +431,37 @@ leapsec_load_stream(
if (NULL == fname)
fname = "<unknown>";
- rcheck = leapsec_validate((leapsec_reader)getc, ifp);
- if (logall)
- switch (rcheck)
- {
- case LSVALID_GOODHASH:
- msyslog(LOG_NOTICE, "%s ('%s'): good hash signature",
- logPrefix, fname);
- break;
-
- case LSVALID_NOHASH:
- msyslog(LOG_ERR, "%s ('%s'): no hash signature",
- logPrefix, fname);
- break;
- case LSVALID_BADHASH:
- msyslog(LOG_ERR, "%s ('%s'): signature mismatch",
- logPrefix, fname);
- break;
- case LSVALID_BADFORMAT:
- msyslog(LOG_ERR, "%s ('%s'): malformed hash signature",
- logPrefix, fname);
- break;
- default:
- msyslog(LOG_ERR, "%s ('%s'): unknown error code %d",
- logPrefix, fname, rcheck);
- break;
- }
- if (rcheck < 0)
- return FALSE;
-
- rewind(ifp);
+ if (vhash) {
+ rcheck = leapsec_validate((leapsec_reader)getc, ifp);
+ if (logall)
+ switch (rcheck)
+ {
+ case LSVALID_GOODHASH:
+ msyslog(LOG_NOTICE, "%s ('%s'): good hash signature",
+ logPrefix, fname);
+ break;
+
+ case LSVALID_NOHASH:
+ msyslog(LOG_ERR, "%s ('%s'): no hash signature",
+ logPrefix, fname);
+ break;
+ case LSVALID_BADHASH:
+ msyslog(LOG_ERR, "%s ('%s'): signature mismatch",
+ logPrefix, fname);
+ break;
+ case LSVALID_BADFORMAT:
+ msyslog(LOG_ERR, "%s ('%s'): malformed hash signature",
+ logPrefix, fname);
+ break;
+ default:
+ msyslog(LOG_ERR, "%s ('%s'): unknown error code %d",
+ logPrefix, fname, rcheck);
+ break;
+ }
+ if (rcheck < 0)
+ return FALSE;
+ rewind(ifp);
+ }
pt = leapsec_get_table(TRUE);
if (!leapsec_load(pt, (leapsec_reader)getc, ifp, TRUE)) {
switch (errno) {
@@ -498,7 +500,8 @@ leapsec_load_file(
const char * fname,
struct stat * sb_old,
int/*BOOL*/ force,
- int/*BOOL*/ logall)
+ int/*BOOL*/ logall,
+ int/*BOOL*/ vhash)
{
FILE * fp;
struct stat sb_new;
@@ -551,7 +554,7 @@ leapsec_load_file(
return FALSE;
}
- rc = leapsec_load_stream(fp, fname, logall);
+ rc = leapsec_load_stream(fp, fname, logall, vhash);
fclose(fp);
return rc;
}