return socket->priv->reuse_address;
}
+gboolean
+g_socket_has_socket_error (GSocket *socket,
+ GError **error)
+{
+ gint sockerr;
+ gsize sockerr_size = sizeof (sockerr);
+
+ g_return_val_if_fail (G_IS_SOCKET (socket), FALSE);
+
+ if (getsockopt (socket->priv->fd, SOL_SOCKET, SO_ERROR, (gpointer) &sockerr, &sockerr_size) < 0)
+ {
+ g_set_error (error, G_IO_ERROR, g_io_error_from_errno (errno), "could not get socket error: %s", g_strerror (errno));
+ return TRUE;
+ }
+
+ if (sockerr != 0)
+ {
+ g_set_error (error, G_IO_ERROR, g_io_error_from_errno (sockerr), "error connecting: %s", g_strerror (sockerr));
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
GSocketAddress *
g_socket_get_local_address (GSocket *socket,
GError **error)