summaryrefslogtreecommitdiffstats
path: root/dbus/dbus-errors.c
diff options
context:
space:
mode:
authorHavoc Pennington <hp@redhat.com>2002-11-25 05:13:09 +0000
committerHavoc Pennington <hp@redhat.com>2002-11-25 05:13:09 +0000
commit041b0767b284034aee09e9a0de2a3844b8cc546a (patch)
tree8ef9cce16d743350971696ff6333ce43686c7ac0 /dbus/dbus-errors.c
parent576cdb6e0b1274e9fa5276e01337aef330dd4e8c (diff)
2002-11-24 Havoc Pennington <hp@pobox.com>
* test/echo-client.c, test/echo-server.c: cheesy test clients. * configure.in (AC_CHECK_FUNCS): check for writev * dbus/dbus-message.c (_dbus_message_get_network_data): new function * dbus/dbus-list.c (_dbus_list_foreach): new function * dbus/dbus-internals.c (_dbus_verbose): new function * dbus/dbus-server.c, dbus/dbus-server.h: public object representing a server that listens for connections. * dbus/.cvsignore: create * dbus/dbus-errors.h, dbus/dbus-errors.c: public API for reporting errors * dbus/dbus-connection.h, dbus/dbus-connection.c: public object representing a connection that sends/receives messages. (Same object used for both client and server.) * dbus/dbus-transport.h, dbus/dbus-transport.c: Basic abstraction for different kinds of stream that we might read/write messages from.
Diffstat (limited to 'dbus/dbus-errors.c')
-rw-r--r--dbus/dbus-errors.c109
1 files changed, 109 insertions, 0 deletions
diff --git a/dbus/dbus-errors.c b/dbus/dbus-errors.c
new file mode 100644
index 00000000..1214c1f5
--- /dev/null
+++ b/dbus/dbus-errors.c
@@ -0,0 +1,109 @@
+/* -*- mode: C; c-file-style: "gnu" -*- */
+/* dbus-errors.c Error reporting
+ *
+ * Copyright (C) 2002 Red Hat Inc.
+ *
+ * Licensed under the Academic Free License version 1.2
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ */
+#include "dbus-errors.h"
+
+/**
+ * @defgroup DBusErrors Error reporting
+ * @ingroup DBus
+ * @brief Error reporting
+ *
+ * Types and functions related to reporting errors.
+ *
+ *
+ * In essence D-BUS error reporting works as follows:
+ *
+ * @code
+ * DBusResultCode result = DBUS_RESULT_SUCCESS;
+ * dbus_some_function (arg1, arg2, &result);
+ * if (result != DBUS_RESULT_SUCCESS)
+ * printf ("an error occurred\n");
+ * @endcode
+ *
+ * @{
+ */
+
+/**
+ * Set a result code at a result code location,
+ * if code_address is not #NULL.
+ *
+ * @param code_address place to store the result code.
+ * @param code the result code itself.
+ */
+void
+dbus_set_result (DBusResultCode *code_address,
+ DBusResultCode code)
+{
+ if (code_address)
+ *code_address = code;
+}
+
+/**
+ * Returns a string describing the given result code.
+ *
+ * @param code the result code to describe.
+ * @returns a constant string describing the code.
+ */
+const char*
+dbus_result_to_string (DBusResultCode code)
+{
+ /* This is a switch to the compiler will complain if we
+ * aren't handling some codes
+ */
+ switch (code)
+ {
+ case DBUS_RESULT_SUCCESS:
+ return "Success";
+ case DBUS_RESULT_FAILED:
+ return "Unknown error";
+ case DBUS_RESULT_NO_MEMORY:
+ return "Not enough memory available";
+ case DBUS_RESULT_IO_ERROR:
+ return "Error reading or writing data";
+ case DBUS_RESULT_BAD_ADDRESS:
+ return "Could not parse address";
+ case DBUS_RESULT_NOT_SUPPORTED:
+ return "Feature not supported";
+ case DBUS_RESULT_LIMITS_EXCEEDED:
+ return "Resource limits exceeded";
+ case DBUS_RESULT_ACCESS_DENIED:
+ return "Permission denied";
+ case DBUS_RESULT_AUTH_FAILED:
+ return "Could not authenticate to server";
+ case DBUS_RESULT_NO_SERVER:
+ return "No server";
+ case DBUS_RESULT_TIMEOUT:
+ return "Connection timed out";
+ case DBUS_RESULT_NO_NETWORK:
+ return "Network unavailable";
+ case DBUS_RESULT_ADDRESS_IN_USE:
+ return "Address already in use";
+ case DBUS_RESULT_DISCONNECTED:
+ return "Disconnected.";
+
+ /* no default, it would break our compiler warnings */
+ }
+
+ return "Invalid error code";
+}
+
+/** @} */