diff --git a/server/core/maxkeys.c b/server/core/maxkeys.c index c60ef7698..ddbc7f3f1 100644 --- a/server/core/maxkeys.c +++ b/server/core/maxkeys.c @@ -35,13 +35,13 @@ int main(int argc, char **argv) { - char *keyfile; + const char *keyfile; int rval = 0; if (argc < 2) { - keyfile = "/var/lib/maxscale/"; - fprintf(stderr, "Generating .secrets file in /var/lib/maxscale/ ...\n"); + keyfile = get_datadir(); + fprintf(stderr, "Generating .secrets file in %s ...\n", keyfile); } else { diff --git a/server/core/secrets.c b/server/core/secrets.c index 1cb9b3c4c..09e8e8ba9 100644 --- a/server/core/secrets.c +++ b/server/core/secrets.c @@ -68,7 +68,15 @@ secrets_readKeys(const char* path) if (path != NULL) { - snprintf(secret_file, PATH_MAX, "%s/.secrets", path); + snprintf(secret_file, PATH_MAX, "%s", path); + + char *file; + if ((file = strrchr(secret_file, '.')) == NULL || strcmp(file, ".secrets") != 0) + { + /** This is a possible path to a directory */ + strncat(secret_file, "/.secrets", PATH_MAX); + } + clean_up_pathname(secret_file); } else @@ -201,6 +209,14 @@ secrets_readKeys(const char* path) return NULL; } ss_dassert(keys != NULL); + + /** Successfully loaded keys, log notification */ + if (!reported) + { + MXS_NOTICE("Using encrypted passwords. Encryption key: '%s'.", secret_file); + reported = 1; + } + return keys; }