]> granicus.if.org Git - postgresql/commitdiff
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);