gsocket: add G_IO_ERROR_CONNECTION_CLOSED

Add G_IO_ERROR_CONNECTION_CLOSED as an alias for
G_IO_ERROR_BROKEN_PIPE, and also return it on ECONNRESET.

It doesn't really make sense to try to distinguish EPIPE and
ECONNRESET at the GLib level, since the exact choice of which error
gets returned in what conditions depends on the OS. Given that, we
ought to map the two errors to the same value, and since we're already
mapping EPIPE to G_IO_ERROR_BROKEN_PIPE, we need to map ECONNRESET to
that too. But the existing name doesn't really make sense for sockets,
so we add a new name.

https://bugzilla.gnome.org/show_bug.cgi?id=728928
This commit is contained in:
Dan Winship
2011-08-19 10:23:12 -04:00
parent 64f9bf96fd
commit 967fedc0ae
3 changed files with 49 additions and 8 deletions

View File

@@ -242,6 +242,12 @@ g_io_error_from_errno (gint err_no)
break;
#endif
#ifdef ECONNRESET
case ECONNRESET:
return G_IO_ERROR_CONNECTION_CLOSED;
break;
#endif
default:
return G_IO_ERROR_FAILED;
break;
@@ -305,6 +311,9 @@ g_io_error_from_win32_error (gint error_code)
case WSAEAFNOSUPPORT:
return G_IO_ERROR_NOT_SUPPORTED;
case WSAECONNRESET:
return G_IO_ERROR_CONNECTION_CLOSED;
default:
return G_IO_ERROR_FAILED;
}