[glib] GDBus: Add new call flag to allow interactive authorization
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [glib] GDBus: Add new call flag to allow interactive authorization
- Date: Fri, 5 Jun 2015 18:43:20 +0000 (UTC)
commit b31a873fb3bd1b67af9f7cc88bf44f8b5a941cec
Author: Jan Safranek <jsafrane redhat com>
Date: Tue Nov 4 11:54:00 2014 +0000
GDBus: Add new call flag to allow interactive authorization
DBus has recently introduced new message flag
DBUS_HEADER_FLAG_ALLOW_INTERACTIVE_AUTHORIZATION, which tells that
caller is willing to wait for unspecified amount of time for the call
to return, as the service may perform interactive authorization (e.g.
using polkit).
https://bugzilla.gnome.org/show_bug.cgi?id=739616
gio/gdbusconnection.c | 8 +++++++-
gio/gioenums.h | 11 +++++++++--
2 files changed, 16 insertions(+), 3 deletions(-)
---
diff --git a/gio/gdbusconnection.c b/gio/gdbusconnection.c
index 4465562..d50e4c7 100644
--- a/gio/gdbusconnection.c
+++ b/gio/gdbusconnection.c
@@ -5265,8 +5265,14 @@ static void
add_call_flags (GDBusMessage *message,
GDBusCallFlags flags)
{
+ GDBusMessageFlags msg_flags = 0;
+
if (flags & G_DBUS_CALL_FLAGS_NO_AUTO_START)
- g_dbus_message_set_flags (message, G_DBUS_MESSAGE_FLAGS_NO_AUTO_START);
+ msg_flags |= G_DBUS_MESSAGE_FLAGS_NO_AUTO_START;
+ if (flags & G_DBUS_CALL_FLAGS_ALLOW_INTERACTIVE_AUTHORIZATION)
+ msg_flags |= G_DBUS_MESSAGE_FLAGS_ALLOW_INTERACTIVE_AUTHORIZATION;
+ if (msg_flags)
+ g_dbus_message_set_flags (message, msg_flags);
}
static GVariant *
diff --git a/gio/gioenums.h b/gio/gioenums.h
index 55a70b1..24e7d65 100644
--- a/gio/gioenums.h
+++ b/gio/gioenums.h
@@ -1212,6 +1212,8 @@ typedef enum {
* @G_DBUS_CALL_FLAGS_NO_AUTO_START: The bus must not launch
* an owner for the destination name in response to this method
* invocation.
+ * @G_DBUS_CALL_FLAGS_ALLOW_INTERACTIVE_AUTHORIZATION: the caller is prepared to
+ * wait for interactive authorization. Since 2.46.
*
* Flags used in g_dbus_connection_call() and similar APIs.
*
@@ -1219,7 +1221,8 @@ typedef enum {
*/
typedef enum {
G_DBUS_CALL_FLAGS_NONE = 0,
- G_DBUS_CALL_FLAGS_NO_AUTO_START = (1<<0)
+ G_DBUS_CALL_FLAGS_NO_AUTO_START = (1<<0),
+ G_DBUS_CALL_FLAGS_ALLOW_INTERACTIVE_AUTHORIZATION = (1<<1)
} GDBusCallFlags;
/* (1<<31) is reserved for internal use by GDBusConnection, do not use it. */
@@ -1249,6 +1252,9 @@ typedef enum {
* @G_DBUS_MESSAGE_FLAGS_NO_REPLY_EXPECTED: A reply is not expected.
* @G_DBUS_MESSAGE_FLAGS_NO_AUTO_START: The bus must not launch an
* owner for the destination name in response to this message.
+ * @G_DBUS_MESSAGE_FLAGS_ALLOW_INTERACTIVE_AUTHORIZATION: If set on a method
+ * call, this flag means that the caller is prepared to wait for interactive
+ * authorization. Since 2.46.
*
* Message flags used in #GDBusMessage.
*
@@ -1257,7 +1263,8 @@ typedef enum {
typedef enum {
G_DBUS_MESSAGE_FLAGS_NONE = 0,
G_DBUS_MESSAGE_FLAGS_NO_REPLY_EXPECTED = (1<<0),
- G_DBUS_MESSAGE_FLAGS_NO_AUTO_START = (1<<1)
+ G_DBUS_MESSAGE_FLAGS_NO_AUTO_START = (1<<1),
+ G_DBUS_MESSAGE_FLAGS_ALLOW_INTERACTIVE_AUTHORIZATION = (1<<2)
} GDBusMessageFlags;
/**
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]