Index: opendkim/opendkim-db.c =================================================================== RCS file: /cvsroot/opendkim/opendkim/opendkim-db.c,v retrieving revision 1.79 diff -u -r1.79 opendkim-db.c --- opendkim/opendkim-db.c 27 Jun 2010 03:05:12 -0000 1.79 +++ opendkim/opendkim-db.c 28 Jun 2010 16:41:16 -0000 @@ -582,6 +582,39 @@ } /* +** DKIMF_DB_OPEN_ERROR -- return an error string matching an error code from +** dkimf_db_open() +** +** Parameters: +** code -- error code returned by dkimf_db_open() +** +** Return value: +** Pointer to a character string explaining that error code. +*/ + +char * +dkimf_db_open_error(int code) +{ + switch (code) + { + case 3: + return "Database open error"; + + case 2: + return "Illegal request"; + + case 1: + return "Unknown database type"; + + case -1: + return strerror(errno); + + default: + assert(0); + } +} + +/* ** DKIMF_DB_OPEN -- open a database ** ** Parameters: Index: opendkim/opendkim-db.h =================================================================== RCS file: /cvsroot/opendkim/opendkim/opendkim-db.h,v retrieving revision 1.11 diff -u -r1.11 opendkim-db.h --- opendkim/opendkim-db.h 4 Jun 2010 02:47:51 -0000 1.11 +++ opendkim/opendkim-db.h 28 Jun 2010 16:41:16 -0000 @@ -76,6 +76,7 @@ extern int dkimf_db_mkarray __P((DKIMF_DB, char ***)); extern int dkimf_db_open __P((DKIMF_DB *, char *, u_int flags, pthread_mutex_t *)); +extern char *dkimf_db_open_error __P((int)); extern int dkimf_db_put __P((DKIMF_DB, void *, size_t, void *, size_t)); extern int dkimf_db_rewalk __P((DKIMF_DB, char *, DKIMF_DBDATA, unsigned int, void **)); Index: opendkim/opendkim.c =================================================================== RCS file: /cvsroot/opendkim/opendkim/opendkim.c,v retrieving revision 1.149 diff -u -r1.149 opendkim.c --- opendkim/opendkim.c 25 Jun 2010 07:40:41 -0000 1.149 +++ opendkim/opendkim.c 28 Jun 2010 16:41:17 -0000 @@ -4668,7 +4668,7 @@ snprintf(err, errlen, "%s: dkimf_db_open(): %s", conf->conf_statspath, - strerror(errno)); + dkimf_db_open_error(status)); return -1; } else if (dkimf_db_type(db) != DKIMF_DB_TYPE_BDB) @@ -5103,7 +5103,7 @@ if (status != 0) { snprintf(err, errlen, "%s: dkimf_db_open(): %s", - str, strerror(errno)); + str, dkimf_db_open_error(status)); return -1; } } @@ -5127,7 +5127,7 @@ if (status != 0) { snprintf(err, errlen, "%s: dkimf_db_open(): %s", - str, strerror(errno)); + str, dkimf_db_open_error(status)); return -1; } } @@ -5140,7 +5140,7 @@ if (status != 0) { snprintf(err, errlen, "%s: dkimf_db_open(): %s", - DEFINTERNAL, strerror(errno)); + DEFINTERNAL, dkimf_db_open_error(status)); return -1; } } @@ -5164,7 +5164,7 @@ if (status != 0) { snprintf(err, errlen, "%s: dkimf_db_open(): %s", - str, strerror(errno)); + str, dkimf_db_open_error(status)); return -1; } } @@ -5188,7 +5188,7 @@ if (status != 0) { snprintf(err, errlen, "%s: dkimf_db_open(): %s", - str, strerror(errno)); + str, dkimf_db_open_error(status)); return -1; } } @@ -5205,7 +5205,7 @@ if (status != 0) { snprintf(err, errlen, "%s: dkimf_db_open(): %s", - str, strerror(errno)); + str, dkimf_db_open_error(status)); return -1; } } @@ -5222,7 +5222,7 @@ if (status != 0) { snprintf(err, errlen, "%s: dkimf_db_open(): %s", - str, strerror(errno)); + str, dkimf_db_open_error(status)); return -1; } } @@ -5239,7 +5239,7 @@ if (status != 0) { snprintf(err, errlen, "%s: dkimf_db_open(): %s", - str, strerror(errno)); + str, dkimf_db_open_error(status)); return -1; } } @@ -5256,7 +5256,7 @@ if (status != 0) { snprintf(err, errlen, "%s: dkimf_db_open(): %s", - str, strerror(errno)); + str, dkimf_db_open_error(status)); return -1; } } @@ -5279,7 +5279,7 @@ if (status != 0) { snprintf(err, errlen, "%s: dkimf_db_open(): %s", - str, strerror(errno)); + str, dkimf_db_open_error(status)); return -1; } } @@ -5302,7 +5302,7 @@ if (status != 0) { snprintf(err, errlen, "%s: dkimf_db_open(): %s", - str, strerror(errno)); + str, dkimf_db_open_error(status)); return -1; } } @@ -5319,7 +5319,7 @@ if (status != 0) { snprintf(err, errlen, "%s: dkimf_db_open(): %s", - str, strerror(errno)); + str, dkimf_db_open_error(status)); return -1; } } @@ -5336,7 +5336,7 @@ if (status != 0) { snprintf(err, errlen, "%s: dkimf_db_open(): %s", - str, strerror(errno)); + str, dkimf_db_open_error(status)); return -1; } } @@ -5370,7 +5370,7 @@ if (status != 0) { snprintf(err, errlen, "%s: dkimf_db_open(): %s", - str, strerror(errno)); + str, dkimf_db_open_error(status)); return -1; } @@ -5396,7 +5396,7 @@ snprintf(err, errlen, "%s: dkimf_db_open(): %s", conf->conf_signtable, - strerror(errno)); + dkimf_db_open_error(status)); return -1; } } @@ -5423,7 +5423,8 @@ { snprintf(err, errlen, "%s: dkimf_db_open(): %s", - conf->conf_keytable, strerror(errno)); + conf->conf_keytable, + dkimf_db_open_error(status)); return -1; } } @@ -5453,7 +5454,7 @@ if (status != 0) { snprintf(err, errlen, "%s: dkimf_db_open(): %s", - str, strerror(errno)); + str, dkimf_db_open_error(status)); return -1; } } @@ -5477,7 +5478,7 @@ if (status != 0) { snprintf(err, errlen, "%s: dkimf_db_open(): %s", - str, strerror(errno)); + str, dkimf_db_open_error(status)); return -1; } } @@ -5501,7 +5502,7 @@ if (status != 0) { snprintf(err, errlen, "%s: dkimf_db_open(): %s", - str, strerror(errno)); + str, dkimf_db_open_error(status)); return -1; } } @@ -5525,7 +5526,7 @@ if (status != 0) { snprintf(err, errlen, "%s: dkimf_db_open(): %s", - str, strerror(errno)); + str, dkimf_db_open_error(status)); return -1; } } @@ -5550,7 +5551,7 @@ if (status != 0) { snprintf(err, errlen, "%s: dkimf_db_open(): %s", - str, strerror(errno)); + str, dkimf_db_open_error(status)); return -1; } @@ -12299,8 +12300,8 @@ NULL); if (status != 0) { - fprintf(stderr, "%s: %s: dkimf_db_open() failed\n", - progname, dbname); + fprintf(stderr, "%s: %s: dkimf_db_open(): %s\n", + progname, dbname, dkimf_db_open_error(status)); return EX_SOFTWARE; } @@ -13196,7 +13197,8 @@ if (status != 0) { fprintf(stderr, "%s: can't open database %s: %s\n", - progname, bldbfile, strerror(status)); + progname, bldbfile, + dkimf_db_open_error(status)); if (dolog) { syslog(LOG_ERR, "can't open database %s", @@ -13234,7 +13236,8 @@ if (status != 0) { fprintf(stderr, "%s: can't open database %s: %s\n", - progname, ridbfile, strerror(status)); + progname, ridbfile, + dkimf_db_open_error(status)); if (dolog) { syslog(LOG_ERR, "can't open database %s", @@ -13308,13 +13311,14 @@ { char errbuf[BUFRSZ]; - fprintf(stderr, "%s: can't open database %s\n", - progname, popdbfile); + fprintf(stderr, "%s: can't open database %s: %s\n", + progname, popdbfile, + dkimf_db_open_error(status)); if (dolog) { - syslog(LOG_ERR, "can't open database %s", - popdbfile); + syslog(LOG_ERR, "can't open database %s: %s", + popdbfile, dkimf_db_open_error(status)); } dkimf_zapkey(curconf);