diff options
author | Havoc Pennington <hp@redhat.com> | 2003-03-05 02:01:34 +0000 |
---|---|---|
committer | Havoc Pennington <hp@redhat.com> | 2003-03-05 02:01:34 +0000 |
commit | 7e050c88719553d0c74e3dc68caf7bc50ae99590 (patch) | |
tree | f7a9abccae6591849e58e71d45dded9aa76512ec /dbus/dbus-errors.c | |
parent | 6bea42d2b84121152e4e5c719d23ed22901a972a (diff) |
2003-03-04 Havoc Pennington <hp@pobox.com>
* 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.
Diffstat (limited to 'dbus/dbus-errors.c')
-rw-r--r-- | dbus/dbus-errors.c | 46 |
1 files changed, 46 insertions, 0 deletions
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; @@ -209,6 +211,48 @@ dbus_set_error_const (DBusError *error, } /** + * 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 */ |