shared: add nm_dbus_error_is() helper
(cherry picked from commit ce36494c0a
)
This commit is contained in:
@@ -341,3 +341,26 @@ nm_dbus_connection_call_finish_variant_strip_dbus_error_cb (GObject *source,
|
|||||||
{
|
{
|
||||||
_call_finish_cb (source, result, user_data, FALSE, TRUE);
|
_call_finish_cb (source, result, user_data, FALSE, TRUE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*****************************************************************************/
|
||||||
|
|
||||||
|
gboolean
|
||||||
|
_nm_dbus_error_is (GError *error, ...)
|
||||||
|
{
|
||||||
|
gs_free char *dbus_error = NULL;
|
||||||
|
const char *name;
|
||||||
|
va_list ap;
|
||||||
|
|
||||||
|
dbus_error = g_dbus_error_get_remote_error (error);
|
||||||
|
if (!dbus_error)
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
|
va_start (ap, error);
|
||||||
|
while ((name = va_arg (ap, const char *))) {
|
||||||
|
if (nm_streq (dbus_error, name))
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
va_end (ap);
|
||||||
|
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
@@ -192,4 +192,17 @@ void nm_dbus_connection_call_finish_variant_strip_dbus_error_cb (GObject *source
|
|||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
|
gboolean _nm_dbus_error_is (GError *error, ...) G_GNUC_NULL_TERMINATED;
|
||||||
|
|
||||||
|
#define nm_dbus_error_is(error, ...) \
|
||||||
|
({ \
|
||||||
|
GError *const _error = (error); \
|
||||||
|
\
|
||||||
|
_error && _nm_dbus_error_is (_error, __VA_ARGS__, NULL); \
|
||||||
|
})
|
||||||
|
|
||||||
|
#define NM_DBUS_ERROR_NAME_UNKNOWN_METHOD "org.freedesktop.DBus.Error.UnknownMethod"
|
||||||
|
|
||||||
|
/*****************************************************************************/
|
||||||
|
|
||||||
#endif /* __NM_DBUS_AUX_H__ */
|
#endif /* __NM_DBUS_AUX_H__ */
|
||||||
|
Reference in New Issue
Block a user