summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWill Thompson <will.thompson@collabora.co.uk>2009-08-08 14:29:12 +0100
committerColin Walters <walters@verbum.org>2010-01-28 17:01:23 -0500
commit3171383ce9bac0c2718da4ce288db890d5d7bfda (patch)
tree2152b84a58ba1d891bdab215e8107e249aa00a4e
parent7cf332d34ea974b9781f47f4af4efca4de71b96a (diff)
downloaddbus-3171383ce9bac0c2718da4ce288db890d5d7bfda.tar.gz
Add an accessor for the loader's corruption reason
-rw-r--r--dbus/dbus-message-internal.h2
-rw-r--r--dbus/dbus-message.c15
2 files changed, 17 insertions, 0 deletions
diff --git a/dbus/dbus-message-internal.h b/dbus/dbus-message-internal.h
index 7cd88d56..0134f8db 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 <dbus/dbus-marshal-validate.h>
#include <dbus/dbus-message.h>
#include <dbus/dbus-resources.h>
#include <dbus/dbus-list.h>
@@ -62,6 +63,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 0b81806f..272592e8 100644
--- a/dbus/dbus-message.c
+++ b/dbus/dbus-message.c
@@ -3785,6 +3785,21 @@ _dbus_message_loader_get_is_corrupted (DBusMessageLoader *loader)
}
/**
+ * 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.
*
* @param loader the loader