From 7e050c88719553d0c74e3dc68caf7bc50ae99590 Mon Sep 17 00:00:00 2001 From: Havoc Pennington Date: Wed, 5 Mar 2003 02:01:34 +0000 Subject: 2003-03-04 Havoc Pennington * test/data/auth/*: adapt to changes * dbus/dbus-auth-script.c (_dbus_auth_script_run): add USERID_BASE64 and change USERNAME_BASE64 to put in username not userid * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent more stuff from being in a context name, to make the protocol simpler to deal with * dbus/dbus-errors.c (dbus_error_has_name): new function (dbus_error_is_set): new function * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1 * dbus/dbus-connection.c (dbus_connection_flush): also read messages during a flush operation * dbus/Makefile.am: remove dbus-md5 since it isn't currently used. --- dbus/dbus-errors.c | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) (limited to 'dbus/dbus-errors.c') diff --git a/dbus/dbus-errors.c b/dbus/dbus-errors.c index 3aca9f10..e57d3538 100644 --- a/dbus/dbus-errors.c +++ b/dbus/dbus-errors.c @@ -200,6 +200,8 @@ dbus_set_error_const (DBusError *error, /* it's a bug to pile up errors */ _dbus_assert (error->name == NULL); _dbus_assert (error->message == NULL); + _dbus_assert (name != NULL); + _dbus_assert (message != NULL); real = (DBusRealError *)error; @@ -208,6 +210,48 @@ dbus_set_error_const (DBusError *error, real->const_message = TRUE; } +/** + * Checks whether the error is set and has the given + * name. + * @param error the error + * @param name the name + * @returns #TRUE if the given named error occurred + */ +dbus_bool_t +dbus_error_has_name (const DBusError *error, + const char *name) +{ + _dbus_assert (error != NULL); + _dbus_assert (name != NULL); + _dbus_assert ((error->name != NULL && error->message != NULL) || + (error->name == NULL && error->message == NULL)); + + if (error->name != NULL) + { + DBusString str1, str2; + _dbus_string_init_const (&str1, error->name); + _dbus_string_init_const (&str2, name); + return _dbus_string_equal (&str1, &str2); + } + else + return FALSE; +} + +/** + * Checks whether an error occurred (the error is set). + * + * @param error the error object + * @returns #TRUE if an error occurred + */ +dbus_bool_t +dbus_error_is_set (const DBusError *error) +{ + _dbus_assert (error != NULL); + _dbus_assert ((error->name != NULL && error->message != NULL) || + (error->name == NULL && error->message == NULL)); + return error->name != NULL; +} + /** * Assigns an error name and message to a DBusError. * Does nothing if error is #NULL. @@ -240,6 +284,8 @@ dbus_set_error (DBusError *error, /* it's a bug to pile up errors */ _dbus_assert (error->name == NULL); _dbus_assert (error->message == NULL); + _dbus_assert (name != NULL); + _dbus_assert (format != NULL); va_start (args, format); /* Measure the message length */ -- cgit