From: Peter Eisentraut Date: Sat, 30 Jun 2012 12:39:16 +0000 (+0300) Subject: initdb: Update check_need_password for new options X-Git-Tag: REL9_3_BETA1~1270 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=e4ffa86b5739fdf85b1050c4b2e26ab14ef476e9;p=postgresql initdb: Update check_need_password for new options Change things so that something like initdb --auth-local=peer --auth-host=md5 does not cause a "must specify a password" error, like initdb -A md5 does. --- diff --git a/src/bin/initdb/initdb.c b/src/bin/initdb/initdb.c index bac8385d39..edd5d71eb8 100644 --- a/src/bin/initdb/initdb.c +++ b/src/bin/initdb/initdb.c @@ -2574,13 +2574,19 @@ check_authmethod_valid(const char *authmethod, const char **valid_methods, const } static void -check_need_password(const char *authmethod) +check_need_password(const char *authmethodlocal, const char *authmethodhost) { - if ((strcmp(authmethod, "md5") == 0 || - strcmp(authmethod, "password") == 0) && + if ((strcmp(authmethodlocal, "md5") == 0 || + strcmp(authmethodlocal, "password") == 0) && + (strcmp(authmethodhost, "md5") == 0 || + strcmp(authmethodhost, "password") == 0) && !(pwprompt || pwfilename)) { - fprintf(stderr, _("%s: must specify a password for the superuser to enable %s authentication\n"), progname, authmethod); + fprintf(stderr, _("%s: must specify a password for the superuser to enable %s authentication\n"), progname, + (strcmp(authmethodlocal, "md5") == 0 || + strcmp(authmethodlocal, "password") == 0) + ? authmethodlocal + : authmethodhost); exit(1); } } @@ -2792,8 +2798,7 @@ main(int argc, char *argv[]) check_authmethod_valid(authmethodlocal, auth_methods_local, "local"); check_authmethod_valid(authmethodhost, auth_methods_host, "host"); - check_need_password(authmethodlocal); - check_need_password(authmethodhost); + check_need_password(authmethodlocal, authmethodhost); if (strlen(pg_data) == 0) {