From ae94a89c442c51232d2ed9298d021edf10f6981b Mon Sep 17 00:00:00 2001 From: Will Thompson Date: Sat, 8 Aug 2009 14:29:12 +0100 Subject: [PATCH] Add an accessor for the loader's corruption reason --- dbus/dbus-message-internal.h | 2 ++ dbus/dbus-message.c | 15 +++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/dbus/dbus-message-internal.h b/dbus/dbus-message-internal.h index 5c616a124..870934b91 100644 --- a/dbus/dbus-message-internal.h +++ b/dbus/dbus-message-internal.h @@ -23,6 +23,7 @@ #ifndef DBUS_MESSAGE_INTERNAL_H #define DBUS_MESSAGE_INTERNAL_H +#include #include #include #include @@ -73,6 +74,7 @@ void _dbus_message_loader_putback_message_link (DBusMessageLoader DBusList *link); dbus_bool_t _dbus_message_loader_get_is_corrupted (DBusMessageLoader *loader); +DBusValidity _dbus_message_loader_get_corruption_reason (DBusMessageLoader *loader); void _dbus_message_loader_set_max_message_size (DBusMessageLoader *loader, long size); diff --git a/dbus/dbus-message.c b/dbus/dbus-message.c index 88f195a8b..e5c0a1e3f 100644 --- a/dbus/dbus-message.c +++ b/dbus/dbus-message.c @@ -4229,6 +4229,21 @@ _dbus_message_loader_get_is_corrupted (DBusMessageLoader *loader) return loader->corrupted; } +/** + * Checks what kind of bad data confused the loader. + * + * @param loader the loader + * @returns why the loader is hosed, or DBUS_VALID if it isn't. + */ +DBusValidity +_dbus_message_loader_get_corruption_reason (DBusMessageLoader *loader) +{ + _dbus_assert ((loader->corrupted && loader->corruption_reason != DBUS_VALID) || + (!loader->corrupted && loader->corruption_reason == DBUS_VALID)); + + return loader->corruption_reason; +} + /** * Sets the maximum size message we allow. * -- 2.47.3