gsocketclient: Crash on error if error is missing

We should never return unknown errors to the application. This would be
a glib bug.

I don't think it's currently possible to hit these cases, so asserts
should be OK. For this to happen, either (a) a GSocketAddressEnumerator
would have to return NULL on its first enumeration, without returning an
error, or (b) there would have to be a bug in our GSocketClient logic.
Either way, if such a bug were to exist, it would be better to surface
it rather than hide it.

These changes are actually going to be effectively undone in a
subsequent commit, as I'm refactoring the error handling, but the commit
history is a bit nicer with two separate commits, so let's go with two.
This commit is contained in:
Michael Catanzaro 2020-10-05 12:32:32 -05:00
parent f0a7b14780
commit 14f7b5e590

View File

@ -1053,8 +1053,9 @@ g_socket_client_connect (GSocketClient *client,
g_propagate_error (error, last_error);
}
else
g_set_error_literal (error, G_IO_ERROR, G_IO_ERROR_FAILED,
_("Unknown error on connect"));
{
g_assert_not_reached ();
}
break;
}
@ -1879,10 +1880,9 @@ g_socket_client_enumerator_callback (GObject *object,
error = data->last_error;
data->last_error = NULL;
}
else if (!error)
else
{
g_set_error_literal (&error, G_IO_ERROR, G_IO_ERROR_FAILED,
_("Unknown error on connect"));
g_assert (error);
}
complete_connection_with_error (data, error);