Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend')
-rw-r--r--src/backend/port/win32/socket.c36
-rw-r--r--src/backend/utils/error/elog.c217
2 files changed, 1 insertions, 252 deletions
diff --git a/src/backend/port/win32/socket.c b/src/backend/port/win32/socket.c
index f4356fe1f31..af35cfbbb35 100644
--- a/src/backend/port/win32/socket.c
+++ b/src/backend/port/win32/socket.c
@@ -690,39 +690,3 @@ pgwin32_select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, c
memcpy(writefds, &outwritefds, sizeof(fd_set));
return nummatches;
}
-
-
-/*
- * Return win32 error string, since strerror can't
- * handle winsock codes
- */
-static char wserrbuf[256];
-const char *
-pgwin32_socket_strerror(int err)
-{
- static HANDLE handleDLL = INVALID_HANDLE_VALUE;
-
- if (handleDLL == INVALID_HANDLE_VALUE)
- {
- handleDLL = LoadLibraryEx("netmsg.dll", NULL, DONT_RESOLVE_DLL_REFERENCES | LOAD_LIBRARY_AS_DATAFILE);
- if (handleDLL == NULL)
- ereport(FATAL,
- (errmsg_internal("could not load netmsg.dll: error code %lu", GetLastError())));
- }
-
- ZeroMemory(&wserrbuf, sizeof(wserrbuf));
- if (FormatMessage(FORMAT_MESSAGE_IGNORE_INSERTS |
- FORMAT_MESSAGE_FROM_SYSTEM |
- FORMAT_MESSAGE_FROM_HMODULE,
- handleDLL,
- err,
- MAKELANGID(LANG_ENGLISH, SUBLANG_DEFAULT),
- wserrbuf,
- sizeof(wserrbuf) - 1,
- NULL) == 0)
- {
- /* Failed to get id */
- sprintf(wserrbuf, "unrecognized winsock error %d", err);
- }
- return wserrbuf;
-}
diff --git a/src/backend/utils/error/elog.c b/src/backend/utils/error/elog.c
index 16531f7a0f1..22e5d876181 100644
--- a/src/backend/utils/error/elog.c
+++ b/src/backend/utils/error/elog.c
@@ -178,8 +178,6 @@ static void send_message_to_server_log(ErrorData *edata);
static void write_pipe_chunks(char *data, int len, int dest);
static void send_message_to_frontend(ErrorData *edata);
static char *expand_fmt_string(const char *fmt, ErrorData *edata);
-static const char *useful_strerror(int errnum);
-static const char *get_errno_symbol(int errnum);
static const char *error_severity(int elevel);
static void append_with_tabs(StringInfo buf, const char *str);
static bool is_log_level_output(int elevel, int log_min_level);
@@ -3360,7 +3358,7 @@ expand_fmt_string(const char *fmt, ErrorData *edata)
*/
const char *cp2;
- cp2 = useful_strerror(edata->saved_errno);
+ cp2 = strerror(edata->saved_errno);
for (; *cp2; cp2++)
{
if (*cp2 == '%')
@@ -3384,219 +3382,6 @@ expand_fmt_string(const char *fmt, ErrorData *edata)
/*
- * A slightly cleaned-up version of strerror()
- */
-static const char *
-useful_strerror(int errnum)
-{
- /* this buffer is only used if strerror() and get_errno_symbol() fail */
- static char errorstr_buf[48];
- const char *str;
-
-#ifdef WIN32
- /* Winsock error code range, per WinError.h */
- if (errnum >= 10000 && errnum <= 11999)
- return pgwin32_socket_strerror(errnum);
-#endif
- str = strerror(errnum);
-
- /*
- * Some strerror()s return an empty string for out-of-range errno. This
- * is ANSI C spec compliant, but not exactly useful. Also, we may get
- * back strings of question marks if libc cannot transcode the message to
- * the codeset specified by LC_CTYPE. If we get nothing useful, first try
- * get_errno_symbol(), and if that fails, print the numeric errno.
- */
- if (str == NULL || *str == '\0' || *str == '?')
- str = get_errno_symbol(errnum);
-
- if (str == NULL)
- {
- snprintf(errorstr_buf, sizeof(errorstr_buf),
- /*------
- translator: This string will be truncated at 47
- characters expanded. */
- _("operating system error %d"), errnum);
- str = errorstr_buf;
- }
-
- return str;
-}
-
-/*
- * Returns a symbol (e.g. "ENOENT") for an errno code.
- * Returns NULL if the code is unrecognized.
- */
-static const char *
-get_errno_symbol(int errnum)
-{
- switch (errnum)
- {
- case E2BIG:
- return "E2BIG";
- case EACCES:
- return "EACCES";
-#ifdef EADDRINUSE
- case EADDRINUSE:
- return "EADDRINUSE";
-#endif
-#ifdef EADDRNOTAVAIL
- case EADDRNOTAVAIL:
- return "EADDRNOTAVAIL";
-#endif
- case EAFNOSUPPORT:
- return "EAFNOSUPPORT";
-#ifdef EAGAIN
- case EAGAIN:
- return "EAGAIN";
-#endif
-#ifdef EALREADY
- case EALREADY:
- return "EALREADY";
-#endif
- case EBADF:
- return "EBADF";
-#ifdef EBADMSG
- case EBADMSG:
- return "EBADMSG";
-#endif
- case EBUSY:
- return "EBUSY";
- case ECHILD:
- return "ECHILD";
-#ifdef ECONNABORTED
- case ECONNABORTED:
- return "ECONNABORTED";
-#endif
- case ECONNREFUSED:
- return "ECONNREFUSED";
-#ifdef ECONNRESET
- case ECONNRESET:
- return "ECONNRESET";
-#endif
- case EDEADLK:
- return "EDEADLK";
- case EDOM:
- return "EDOM";
- case EEXIST:
- return "EEXIST";
- case EFAULT:
- return "EFAULT";
- case EFBIG:
- return "EFBIG";
-#ifdef EHOSTUNREACH
- case EHOSTUNREACH:
- return "EHOSTUNREACH";
-#endif
- case EIDRM:
- return "EIDRM";
- case EINPROGRESS:
- return "EINPROGRESS";
- case EINTR:
- return "EINTR";
- case EINVAL:
- return "EINVAL";
- case EIO:
- return "EIO";
-#ifdef EISCONN
- case EISCONN:
- return "EISCONN";
-#endif
- case EISDIR:
- return "EISDIR";
-#ifdef ELOOP
- case ELOOP:
- return "ELOOP";
-#endif
- case EMFILE:
- return "EMFILE";
- case EMLINK:
- return "EMLINK";
- case EMSGSIZE:
- return "EMSGSIZE";
- case ENAMETOOLONG:
- return "ENAMETOOLONG";
- case ENFILE:
- return "ENFILE";
- case ENOBUFS:
- return "ENOBUFS";
- case ENODEV:
- return "ENODEV";
- case ENOENT:
- return "ENOENT";
- case ENOEXEC:
- return "ENOEXEC";
- case ENOMEM:
- return "ENOMEM";
- case ENOSPC:
- return "ENOSPC";
- case ENOSYS:
- return "ENOSYS";
-#ifdef ENOTCONN
- case ENOTCONN:
- return "ENOTCONN";
-#endif
- case ENOTDIR:
- return "ENOTDIR";
-#if defined(ENOTEMPTY) && (ENOTEMPTY != EEXIST) /* same code on AIX */
- case ENOTEMPTY:
- return "ENOTEMPTY";
-#endif
-#ifdef ENOTSOCK
- case ENOTSOCK:
- return "ENOTSOCK";
-#endif
-#ifdef ENOTSUP
- case ENOTSUP:
- return "ENOTSUP";
-#endif
- case ENOTTY:
- return "ENOTTY";
- case ENXIO:
- return "ENXIO";
-#if defined(EOPNOTSUPP) && (!defined(ENOTSUP) || (EOPNOTSUPP != ENOTSUP))
- case EOPNOTSUPP:
- return "EOPNOTSUPP";
-#endif
-#ifdef EOVERFLOW
- case EOVERFLOW:
- return "EOVERFLOW";
-#endif
- case EPERM:
- return "EPERM";
- case EPIPE:
- return "EPIPE";
- case EPROTONOSUPPORT:
- return "EPROTONOSUPPORT";
- case ERANGE:
- return "ERANGE";
-#ifdef EROFS
- case EROFS:
- return "EROFS";
-#endif
- case ESRCH:
- return "ESRCH";
-#ifdef ETIMEDOUT
- case ETIMEDOUT:
- return "ETIMEDOUT";
-#endif
-#ifdef ETXTBSY
- case ETXTBSY:
- return "ETXTBSY";
-#endif
-#if defined(EWOULDBLOCK) && (!defined(EAGAIN) || (EWOULDBLOCK != EAGAIN))
- case EWOULDBLOCK:
- return "EWOULDBLOCK";
-#endif
- case EXDEV:
- return "EXDEV";
- }
-
- return NULL;
-}
-
-
-/*
* error_severity --- get string representing elevel
*
* The string is not localized here, but we mark the strings for translation