mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-01-13 15:56:23 +01:00
g_win32_error_message() works fine for the Winsock WSA* error codes, too,
2008-06-11 Tor Lillqvist <tml@novell.com> * glib/giowin32.c: g_win32_error_message() works fine for the Winsock WSA* error codes, too, so drop the winsock_error_message() function. svn path=/trunk/; revision=7010
This commit is contained in:
parent
f9f98f1c8b
commit
fc8ee1f68a
@ -1,3 +1,9 @@
|
|||||||
|
2008-06-11 Tor Lillqvist <tml@novell.com>
|
||||||
|
|
||||||
|
* glib/giowin32.c: g_win32_error_message() works fine for the
|
||||||
|
Winsock WSA* error codes, too, so drop the winsock_error_message()
|
||||||
|
function.
|
||||||
|
|
||||||
2008-06-11 Matthias Clasen <mclasen@redhat.com>
|
2008-06-11 Matthias Clasen <mclasen@redhat.com>
|
||||||
|
|
||||||
Bug 455215 – g_get_user_special_dir: no reference about
|
Bug 455215 – g_get_user_special_dir: no reference about
|
||||||
|
161
glib/giowin32.c
161
glib/giowin32.c
@ -227,122 +227,6 @@ g_io_win32_get_debug_flag (void)
|
|||||||
return (getenv ("G_IO_WIN32_DEBUG") != NULL);
|
return (getenv ("G_IO_WIN32_DEBUG") != NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
static char *
|
|
||||||
winsock_error_message (int number)
|
|
||||||
{
|
|
||||||
static char unk[100];
|
|
||||||
|
|
||||||
switch (number) {
|
|
||||||
case WSAEINTR:
|
|
||||||
return "Interrupted function call";
|
|
||||||
case WSAEACCES:
|
|
||||||
return "Permission denied";
|
|
||||||
case WSAEFAULT:
|
|
||||||
return "Bad address";
|
|
||||||
case WSAEINVAL:
|
|
||||||
return "Invalid argument";
|
|
||||||
case WSAEMFILE:
|
|
||||||
return "Too many open sockets";
|
|
||||||
case WSAEWOULDBLOCK:
|
|
||||||
return "Resource temporarily unavailable";
|
|
||||||
case WSAEINPROGRESS:
|
|
||||||
return "Operation now in progress";
|
|
||||||
case WSAEALREADY:
|
|
||||||
return "Operation already in progress";
|
|
||||||
case WSAENOTSOCK:
|
|
||||||
return "Socket operation on nonsocket";
|
|
||||||
case WSAEDESTADDRREQ:
|
|
||||||
return "Destination address required";
|
|
||||||
case WSAEMSGSIZE:
|
|
||||||
return "Message too long";
|
|
||||||
case WSAEPROTOTYPE:
|
|
||||||
return "Protocol wrong type for socket";
|
|
||||||
case WSAENOPROTOOPT:
|
|
||||||
return "Bad protocol option";
|
|
||||||
case WSAEPROTONOSUPPORT:
|
|
||||||
return "Protocol not supported";
|
|
||||||
case WSAESOCKTNOSUPPORT:
|
|
||||||
return "Socket type not supported";
|
|
||||||
case WSAEOPNOTSUPP:
|
|
||||||
return "Operation not supported on transport endpoint";
|
|
||||||
case WSAEPFNOSUPPORT:
|
|
||||||
return "Protocol family not supported";
|
|
||||||
case WSAEAFNOSUPPORT:
|
|
||||||
return "Address family not supported by protocol family";
|
|
||||||
case WSAEADDRINUSE:
|
|
||||||
return "Address already in use";
|
|
||||||
case WSAEADDRNOTAVAIL:
|
|
||||||
return "Address not available";
|
|
||||||
case WSAENETDOWN:
|
|
||||||
return "Network interface is not configured";
|
|
||||||
case WSAENETUNREACH:
|
|
||||||
return "Network is unreachable";
|
|
||||||
case WSAENETRESET:
|
|
||||||
return "Network dropped connection on reset";
|
|
||||||
case WSAECONNABORTED:
|
|
||||||
return "Software caused connection abort";
|
|
||||||
case WSAECONNRESET:
|
|
||||||
return "Connection reset by peer";
|
|
||||||
case WSAENOBUFS:
|
|
||||||
return "No buffer space available";
|
|
||||||
case WSAEISCONN:
|
|
||||||
return "Socket is already connected";
|
|
||||||
case WSAENOTCONN:
|
|
||||||
return "Socket is not connected";
|
|
||||||
case WSAESHUTDOWN:
|
|
||||||
return "Can't send after socket shutdown";
|
|
||||||
case WSAETIMEDOUT:
|
|
||||||
return "Connection timed out";
|
|
||||||
case WSAECONNREFUSED:
|
|
||||||
return "Connection refused";
|
|
||||||
case WSAEHOSTDOWN:
|
|
||||||
return "Host is down";
|
|
||||||
case WSAEHOSTUNREACH:
|
|
||||||
return "Host is unreachable";
|
|
||||||
case WSAEPROCLIM:
|
|
||||||
return "Too many processes";
|
|
||||||
case WSASYSNOTREADY:
|
|
||||||
return "Network subsystem is unavailable";
|
|
||||||
case WSAVERNOTSUPPORTED:
|
|
||||||
return "Winsock.dll version out of range";
|
|
||||||
case WSANOTINITIALISED:
|
|
||||||
return "Successful WSAStartup not yet performed";
|
|
||||||
case WSAEDISCON:
|
|
||||||
return "Graceful shutdown in progress";
|
|
||||||
case WSATYPE_NOT_FOUND:
|
|
||||||
return "Class type not found";
|
|
||||||
case WSAHOST_NOT_FOUND:
|
|
||||||
return "Host not found";
|
|
||||||
case WSATRY_AGAIN:
|
|
||||||
return "Nonauthoritative host not found";
|
|
||||||
case WSANO_RECOVERY:
|
|
||||||
return "This is a nonrecoverable error";
|
|
||||||
case WSANO_DATA:
|
|
||||||
return "Valid name, no data record of requested type";
|
|
||||||
case WSA_INVALID_HANDLE:
|
|
||||||
return "Specified event object handle is invalid";
|
|
||||||
case WSA_INVALID_PARAMETER:
|
|
||||||
return "One or more parameters are invalid";
|
|
||||||
case WSA_IO_INCOMPLETE:
|
|
||||||
return "Overlapped I/O event object not in signaled state";
|
|
||||||
case WSA_NOT_ENOUGH_MEMORY:
|
|
||||||
return "Insufficient memory available";
|
|
||||||
case WSA_OPERATION_ABORTED:
|
|
||||||
return "Overlapped operation aborted";
|
|
||||||
case WSAEINVALIDPROCTABLE:
|
|
||||||
return "Invalid procedure table from service provider";
|
|
||||||
case WSAEINVALIDPROVIDER:
|
|
||||||
return "Invalid service provider version number";
|
|
||||||
case WSAEPROVIDERFAILEDINIT:
|
|
||||||
return "Unable to initialize a service provider";
|
|
||||||
case WSASYSCALLFAILURE:
|
|
||||||
return "System call failure";
|
|
||||||
default:
|
|
||||||
sprintf (unk, "Unknown WinSock error %d", number);
|
|
||||||
return unk;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
g_io_channel_win32_init (GIOWin32Channel *channel)
|
g_io_channel_win32_init (GIOWin32Channel *channel)
|
||||||
{
|
{
|
||||||
@ -1470,12 +1354,15 @@ g_io_win32_sock_read (GIOChannel *channel,
|
|||||||
winsock_error = WSAGetLastError ();
|
winsock_error = WSAGetLastError ();
|
||||||
|
|
||||||
if (win32_channel->debug)
|
if (win32_channel->debug)
|
||||||
g_print (" recv=%d %s\n",
|
g_print (" recv=%d", result);
|
||||||
result,
|
|
||||||
(result == SOCKET_ERROR ? winsock_error_message (winsock_error) : ""));
|
|
||||||
|
|
||||||
if (result == SOCKET_ERROR)
|
if (result == SOCKET_ERROR)
|
||||||
{
|
{
|
||||||
|
gchar *emsg = g_win32_error_message (winsock_error);
|
||||||
|
|
||||||
|
if (win32_channel->debug)
|
||||||
|
g_print (" %s\n", emsg);
|
||||||
|
|
||||||
*bytes_read = 0;
|
*bytes_read = 0;
|
||||||
|
|
||||||
switch (winsock_error)
|
switch (winsock_error)
|
||||||
@ -1484,17 +1371,21 @@ g_io_win32_sock_read (GIOChannel *channel,
|
|||||||
error = G_IO_CHANNEL_ERROR_INVAL;
|
error = G_IO_CHANNEL_ERROR_INVAL;
|
||||||
break;
|
break;
|
||||||
case WSAEWOULDBLOCK:
|
case WSAEWOULDBLOCK:
|
||||||
|
g_free (emsg);
|
||||||
return G_IO_STATUS_AGAIN;
|
return G_IO_STATUS_AGAIN;
|
||||||
default:
|
default:
|
||||||
error = G_IO_CHANNEL_ERROR_FAILED;
|
error = G_IO_CHANNEL_ERROR_FAILED;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
g_set_error (err, G_IO_CHANNEL_ERROR, error,
|
g_set_error (err, G_IO_CHANNEL_ERROR, error, emsg);
|
||||||
winsock_error_message (winsock_error));
|
g_free (emsg);
|
||||||
|
|
||||||
return G_IO_STATUS_ERROR;
|
return G_IO_STATUS_ERROR;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
if (win32_channel->debug)
|
||||||
|
g_print ("\n");
|
||||||
*bytes_read = result;
|
*bytes_read = result;
|
||||||
if (result == 0)
|
if (result == 0)
|
||||||
return G_IO_STATUS_EOF;
|
return G_IO_STATUS_EOF;
|
||||||
@ -1524,12 +1415,15 @@ g_io_win32_sock_write (GIOChannel *channel,
|
|||||||
winsock_error = WSAGetLastError ();
|
winsock_error = WSAGetLastError ();
|
||||||
|
|
||||||
if (win32_channel->debug)
|
if (win32_channel->debug)
|
||||||
g_print (" send=%d %s\n",
|
g_print (" send=%d", result);
|
||||||
result,
|
|
||||||
(result == SOCKET_ERROR ? winsock_error_message (winsock_error) : ""));
|
|
||||||
|
|
||||||
if (result == SOCKET_ERROR)
|
if (result == SOCKET_ERROR)
|
||||||
{
|
{
|
||||||
|
gchar *emsg = g_win32_error_message (winsock_error);
|
||||||
|
|
||||||
|
if (win32_channel->debug)
|
||||||
|
g_print (" %s\n", emsg);
|
||||||
|
|
||||||
*bytes_written = 0;
|
*bytes_written = 0;
|
||||||
|
|
||||||
switch (winsock_error)
|
switch (winsock_error)
|
||||||
@ -1540,18 +1434,21 @@ g_io_win32_sock_write (GIOChannel *channel,
|
|||||||
case WSAEWOULDBLOCK:
|
case WSAEWOULDBLOCK:
|
||||||
win32_channel->write_would_have_blocked = TRUE;
|
win32_channel->write_would_have_blocked = TRUE;
|
||||||
win32_channel->last_events = 0;
|
win32_channel->last_events = 0;
|
||||||
|
g_free (emsg);
|
||||||
return G_IO_STATUS_AGAIN;
|
return G_IO_STATUS_AGAIN;
|
||||||
default:
|
default:
|
||||||
error = G_IO_CHANNEL_ERROR_FAILED;
|
error = G_IO_CHANNEL_ERROR_FAILED;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
g_set_error (err, G_IO_CHANNEL_ERROR, error,
|
g_set_error (err, G_IO_CHANNEL_ERROR, error, emsg);
|
||||||
winsock_error_message (winsock_error));
|
g_free (emsg);
|
||||||
|
|
||||||
return G_IO_STATUS_ERROR;
|
return G_IO_STATUS_ERROR;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
if (win32_channel->debug)
|
||||||
|
g_print ("\n");
|
||||||
*bytes_written = result;
|
*bytes_written = result;
|
||||||
win32_channel->write_would_have_blocked = FALSE;
|
win32_channel->write_would_have_blocked = FALSE;
|
||||||
|
|
||||||
@ -1886,9 +1783,13 @@ g_io_win32_sock_set_flags (GIOChannel *channel,
|
|||||||
arg = 1;
|
arg = 1;
|
||||||
if (ioctlsocket (win32_channel->fd, FIONBIO, &arg) == SOCKET_ERROR)
|
if (ioctlsocket (win32_channel->fd, FIONBIO, &arg) == SOCKET_ERROR)
|
||||||
{
|
{
|
||||||
|
gchar *emsg = g_win32_error_message (WSAGetLastError ());
|
||||||
|
|
||||||
g_set_error (err, G_IO_CHANNEL_ERROR,
|
g_set_error (err, G_IO_CHANNEL_ERROR,
|
||||||
G_IO_CHANNEL_ERROR_FAILED,
|
G_IO_CHANNEL_ERROR_FAILED,
|
||||||
winsock_error_message (WSAGetLastError ()));
|
emsg);
|
||||||
|
g_free (emsg);
|
||||||
|
|
||||||
return G_IO_STATUS_ERROR;
|
return G_IO_STATUS_ERROR;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1897,9 +1798,13 @@ g_io_win32_sock_set_flags (GIOChannel *channel,
|
|||||||
arg = 0;
|
arg = 0;
|
||||||
if (ioctlsocket (win32_channel->fd, FIONBIO, &arg) == SOCKET_ERROR)
|
if (ioctlsocket (win32_channel->fd, FIONBIO, &arg) == SOCKET_ERROR)
|
||||||
{
|
{
|
||||||
|
gchar *emsg = g_win32_error_message (WSAGetLastError ());
|
||||||
|
|
||||||
g_set_error (err, G_IO_CHANNEL_ERROR,
|
g_set_error (err, G_IO_CHANNEL_ERROR,
|
||||||
G_IO_CHANNEL_ERROR_FAILED,
|
G_IO_CHANNEL_ERROR_FAILED,
|
||||||
winsock_error_message (WSAGetLastError ()));
|
emsg);
|
||||||
|
g_free (emsg);
|
||||||
|
|
||||||
return G_IO_STATUS_ERROR;
|
return G_IO_STATUS_ERROR;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user