Make get_controlfile() error logging consistent with src/common
authorJoe Conway <mail@joeconway.com>
Mon, 7 Mar 2016 23:14:20 +0000 (15:14 -0800)
committerJoe Conway <mail@joeconway.com>
Mon, 7 Mar 2016 23:14:20 +0000 (15:14 -0800)
As originally committed, get_controlfile() used a non-standard approach
to error logging. Make it consistent with the majority of error logging
done in src/common.

Applies to master only.

src/common/controldata_utils.c

index b6d0a128f7f9de3da0453be515abf96de1786f65..6867c03bee5d0df4aa7f9e0b5c6cf4dc54a6b761 100644 (file)
 #include "common/controldata_utils.h"
 #include "port/pg_crc32c.h"
 
-#ifndef FRONTEND
-/* NOTE: caller must provide gettext call around the format string */
-#define log_error(...) \
-   elog(ERROR, __VA_ARGS__)
-#else
-#define log_error(...) \
-   do { \
-           char *buf = psprintf(__VA_ARGS__); \
-           fprintf(stderr, "%s: %s\n", progname, buf); \
-           exit(2); \
-   } while (0)
-#endif
-
 /*
  * get_controlfile(char *DataDir, const char *progname)
  *
@@ -59,12 +46,31 @@ get_controlfile(char *DataDir, const char *progname)
    snprintf(ControlFilePath, MAXPGPATH, "%s/global/pg_control", DataDir);
 
    if ((fd = open(ControlFilePath, O_RDONLY | PG_BINARY, 0)) == -1)
-       log_error(_("could not open file \"%s\" for reading: %s"),
-                 ControlFilePath, strerror(errno));
+#ifndef FRONTEND
+       ereport(ERROR,
+               (errcode_for_file_access(),
+               errmsg("could not open file \"%s\" for reading: %m",
+                      ControlFilePath)));
+#else
+   {
+       fprintf(stderr, _("%s: could not open file \"%s\" for reading: %s\n"),
+               progname, ControlFilePath, strerror(errno));
+       exit(EXIT_FAILURE);
+   }
+#endif
 
    if (read(fd, ControlFile, sizeof(ControlFileData)) != sizeof(ControlFileData))
-       log_error(_("could not read file \"%s\": %s"),
-                 ControlFilePath, strerror(errno));
+#ifndef FRONTEND
+       ereport(ERROR,
+               (errcode_for_file_access(),
+               errmsg("could not read file \"%s\": %m", ControlFilePath)));
+#else
+   {
+       fprintf(stderr, _("%s: could not read file \"%s\": %s\n"),
+               progname, ControlFilePath, strerror(errno));
+       exit(EXIT_FAILURE);
+   }
+#endif
 
    close(fd);