126
check_priv (DBusConnection *connection, DBusMessage *message, const char *udi, const char *privilege)
131
const char *invoked_by_syscon_name;
136
polkit_result = NULL;
138
invoked_by_syscon_name = dbus_message_get_sender (message);
140
dbus_error_init (&error);
141
polkit_result = libhal_device_is_caller_privileged (halctx,
144
invoked_by_syscon_name,
146
if (polkit_result == NULL) {
147
reply = dbus_message_new_error_printf (message,
148
"org.freedesktop.Hal.Device.Error",
149
"Cannot determine if caller is privileged",
150
privilege, polkit_result);
151
dbus_connection_send (connection, reply, NULL);
154
if (strcmp (polkit_result, "yes") != 0) {
156
reply = dbus_message_new_error_printf (message,
157
"org.freedesktop.Hal.Device.PermissionDeniedByPolicy",
158
"%s %s <-- (privilege, result)",
159
privilege, polkit_result);
160
dbus_connection_send (connection, reply, NULL);
167
if (polkit_result != NULL)
168
libhal_free_string (polkit_result);
125
178
/* DBus filter function */
126
179
static DBusHandlerResult
127
180
filter_function (DBusConnection *connection, DBusMessage *message, void *userdata)
130
183
DBusMessage *reply;
185
if (!check_priv (connection, message, dbus_message_get_path (message), "org.freedesktop.hal.power-management.lcd-panel")) {
186
return DBUS_HANDLER_RESULT_HANDLED;
132
189
#ifdef DEBUG_OMAP_BL
133
190
dbg ("filter_function: sender=%s destination=%s obj_path=%s interface=%s method=%s",
134
191
dbus_message_get_sender (message),