Mercurial > emacs
changeset 79226:8919d6b286e1
(sock_err_message): New function.
(set_tcp_socket): Use it.
author | Jason Rumney <jasonr@gnu.org> |
---|---|
date | Thu, 25 Oct 2007 23:56:34 +0000 |
parents | bd489b08bec6 |
children | 8cd7ba6ee31f |
files | lib-src/emacsclient.c |
diffstat | 1 files changed, 25 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/lib-src/emacsclient.c Thu Oct 25 14:40:00 2007 +0000 +++ b/lib-src/emacsclient.c Thu Oct 25 23:56:34 2007 +0000 @@ -395,6 +395,29 @@ char send_buffer[SEND_BUFFER_SIZE + 1]; int sblen = 0; /* Fill pointer for the send buffer. */ +/* On Windows, the socket library was historically separate from the standard + C library, so errors are handled differently. */ +void +sock_err_message (function_name) + char *function_name; +{ +#ifdef WINDOWSNT + char* msg = NULL; + + FormatMessage (FORMAT_MESSAGE_FROM_SYSTEM + | FORMAT_MESSAGE_ALLOCATE_BUFFER + | FORMAT_MESSAGE_ARGUMENT_ARRAY, + NULL, WSAGetLastError (), 0, (LPTSTR)&msg, 0, NULL); + + message (TRUE, "%s: %s: %s\n", progname, function_name, msg); + + LocalFree (msg); +#else + message (TRUE, "%s: %s: %s\n", progname, function_name, strerror (errno)); +#endif +} + + /* Let's send the data to Emacs when either - the data ends in "\n", or - the buffer is full (but this shouldn't happen) @@ -646,7 +669,7 @@ */ if ((s = socket (AF_INET, SOCK_STREAM, IPPROTO_TCP)) < 0) { - message (TRUE, "%s: socket: %s\n", progname, strerror (errno)); + sock_err_message ("socket"); return INVALID_SOCKET; } @@ -655,7 +678,7 @@ */ if (connect (s, (struct sockaddr *) &server, sizeof server) < 0) { - message (TRUE, "%s: connect: %s\n", progname, strerror (errno)); + sock_err_message ("connect"); return INVALID_SOCKET; }