2
0
mirror of https://gitlab.isc.org/isc-projects/bind9 synced 2025-08-30 14:07:59 +00:00

2935. [bug] nsupdate: improve 'file not found' error message.

[RT #21871]
This commit is contained in:
Mark Andrews 2010-08-10 09:51:47 +00:00
parent 712b976a06
commit 4b6cb8d09e
2 changed files with 20 additions and 3 deletions

View File

@ -1,3 +1,6 @@
2935. [bug] nsupdate: improve 'file not found' error message.
[RT #21871]
2934. [bug] Use ANSI C compliant shift range in lib/isc/entropy.c. 2934. [bug] Use ANSI C compliant shift range in lib/isc/entropy.c.
[RT #21871] [RT #21871]

View File

@ -15,7 +15,7 @@
* PERFORMANCE OF THIS SOFTWARE. * PERFORMANCE OF THIS SOFTWARE.
*/ */
/* $Id: nsupdate.c,v 1.180 2010/07/09 23:46:51 tbox Exp $ */ /* $Id: nsupdate.c,v 1.181 2010/08/10 09:51:47 marka Exp $ */
/*! \file */ /*! \file */
@ -488,6 +488,19 @@ parse_hmac(dns_name_t **hmac, const char *hmacstr, size_t len) {
return (digestbits); return (digestbits);
} }
static int
basenamelen(const char *file) {
int len = strlen(file);
if (len > 1 && file[len - 1] == '.')
len -= 1;
else if (len > 8 && strcmp(file + len - 8, ".private") == 0)
len -= 8;
else if (len > 4 && strcmp(file + len - 4, ".key") == 0)
len -= 4;
return (len);
}
static void static void
setup_keystr(void) { setup_keystr(void) {
unsigned char *secret = NULL; unsigned char *secret = NULL;
@ -641,8 +654,9 @@ setup_keyfile(isc_mem_t *mctx, isc_log_t *lctx) {
} }
if (result != ISC_R_SUCCESS) { if (result != ISC_R_SUCCESS) {
fprintf(stderr, "could not read key from %s: %s\n", fprintf(stderr, "could not read key from %.*s.{private,key}: "
keyfile, isc_result_totext(result)); "%s\n", basenamelen(keyfile), keyfile,
isc_result_totext(result));
return; return;
} }