From 192f04cef946c0ebe5f90c8dbecc933b6ac3c197 Mon Sep 17 00:00:00 2001 From: David Zeuthen Date: Mon, 9 Apr 2007 18:38:20 -0400 Subject: [PATCH] remove all usage of glib from the header files This paves the way for getting rid of a glib dependency; when and if that happens is to be determined; right now it just doesn't make a lot of sense to reimplement GKeyFile, GSList, GHashTable, g_spawn_sync and other useful routines. But it might make sense if we want to get the message bus daemon to link with libpolkit so you e.g. can say to allow a caller on the system message bus to access that interface if, and only if, he can do the "acme-frobnicate" action according to PolicyKit. --- libpolkit/libpolkit-action.c | 6 +- libpolkit/libpolkit-action.h | 17 ++--- libpolkit/libpolkit-caller.c | 10 +-- libpolkit/libpolkit-caller.h | 14 ++-- libpolkit/libpolkit-context.c | 39 ++++++----- libpolkit/libpolkit-context.h | 32 ++++----- libpolkit/libpolkit-debug.c | 10 +-- libpolkit/libpolkit-debug.h | 5 -- libpolkit/libpolkit-error.c | 91 +++++++++++++++++++++++-- libpolkit/libpolkit-error.h | 27 ++++---- libpolkit/libpolkit-module.c | 78 ++++++++++----------- libpolkit/libpolkit-module.h | 20 +++--- libpolkit/libpolkit-policy-cache.c | 32 +++++---- libpolkit/libpolkit-policy-cache.h | 8 +-- libpolkit/libpolkit-policy-default.c | 57 ++++++++-------- libpolkit/libpolkit-policy-default.h | 9 +-- libpolkit/libpolkit-policy-file-entry.c | 21 ++---- libpolkit/libpolkit-policy-file-entry.h | 6 -- libpolkit/libpolkit-policy-file.c | 68 +++++++++++------- libpolkit/libpolkit-policy-file.h | 28 +++++--- libpolkit/libpolkit-resource.c | 4 +- libpolkit/libpolkit-resource.h | 9 +-- libpolkit/libpolkit-result.c | 6 +- libpolkit/libpolkit-result.h | 4 +- libpolkit/libpolkit-seat.c | 8 +-- libpolkit/libpolkit-seat.h | 7 +- libpolkit/libpolkit-session.c | 28 ++++---- libpolkit/libpolkit-session.h | 20 +++--- modules/allow-all/Makefile.am | 4 +- modules/allow-all/polkit-module-allow-all.c | 23 ++----- modules/default/Makefile.am | 4 +- modules/default/polkit-module-default.c | 23 ++----- modules/deny-all/Makefile.am | 4 +- modules/deny-all/polkit-module-deny-all.c | 23 ++----- modules/run-program/polkit-module-run-program.c | 80 ++++++++++------------ tools/Makefile.am | 2 +- tools/polkit-check-caller.c | 12 ++-- tools/polkit-check-session.c | 12 ++-- tools/polkit-policy-file-validate.c | 10 +-- 39 files changed, 451 insertions(+), 410 deletions(-) diff --git a/libpolkit/libpolkit-action.c b/libpolkit/libpolkit-action.c index d3ab2c6..19bd3dd 100644 --- a/libpolkit/libpolkit-action.c +++ b/libpolkit/libpolkit-action.c @@ -140,7 +140,7 @@ libpolkit_action_set_action_id (PolKitAction *action, const char *action_id) * * Returns: TRUE iff the value was returned. **/ -gboolean +bool libpolkit_action_get_action_id (PolKitAction *action, char **out_action_id) { g_return_val_if_fail (action != NULL, FALSE); @@ -205,7 +205,7 @@ libpolkit_action_get_param (PolKitAction *action, const char *key) typedef struct { PolKitAction *action; PolKitActionParamForeachFunc cb; - gpointer user_data; + void *user_data; } HashClosure; static void @@ -224,7 +224,7 @@ _hash_cb (gpointer key, gpointer value, gpointer user_data) * Calls the given function for each parameter on the object. **/ void -libpolkit_action_param_foreach (PolKitAction *action, PolKitActionParamForeachFunc cb, gpointer user_data) +libpolkit_action_param_foreach (PolKitAction *action, PolKitActionParamForeachFunc cb, void *user_data) { HashClosure data; diff --git a/libpolkit/libpolkit-action.h b/libpolkit/libpolkit-action.h index 4486c8a..1f7b192 100644 --- a/libpolkit/libpolkit-action.h +++ b/libpolkit/libpolkit-action.h @@ -26,10 +26,7 @@ #ifndef LIBPOLKIT_ACTION_H #define LIBPOLKIT_ACTION_H -#include -#include -#include -#include +#include struct PolKitAction; typedef struct PolKitAction PolKitAction; @@ -46,19 +43,19 @@ typedef struct PolKitAction PolKitAction; typedef void (*PolKitActionParamForeachFunc) (PolKitAction *action, const char *key, const char *value, - gpointer user_data); + void *user_data); -PolKitAction *libpolkit_action_new (void); -PolKitAction *libpolkit_action_ref (PolKitAction *action); +PolKitAction *libpolkit_action_new (void); +PolKitAction *libpolkit_action_ref (PolKitAction *action); void libpolkit_action_unref (PolKitAction *action); void libpolkit_action_set_action_id (PolKitAction *action, const char *action_id); -gboolean libpolkit_action_get_action_id (PolKitAction *action, char **out_action_id); +bool libpolkit_action_get_action_id (PolKitAction *action, char **out_action_id); void libpolkit_action_set_param (PolKitAction *action, const char *key, const char *value); const char *libpolkit_action_get_param (PolKitAction *action, const char *key); -void libpolkit_action_param_foreach (PolKitAction *action, PolKitActionParamForeachFunc cb, gpointer user_data); +void libpolkit_action_param_foreach (PolKitAction *action, PolKitActionParamForeachFunc cb, void *user_data); -void libpolkit_action_debug (PolKitAction *action); +void libpolkit_action_debug (PolKitAction *action); #endif /* LIBPOLKIT_ACTION_H */ diff --git a/libpolkit/libpolkit-caller.c b/libpolkit/libpolkit-caller.c index 56ef035..c029d41 100644 --- a/libpolkit/libpolkit-caller.c +++ b/libpolkit/libpolkit-caller.c @@ -205,7 +205,7 @@ libpolkit_caller_set_ck_session (PolKitCaller *caller, PolKitSession *session) * * Returns: TRUE iff the value is returned **/ -gboolean +bool libpolkit_caller_get_dbus_name (PolKitCaller *caller, char **out_dbus_name) { g_return_val_if_fail (caller != NULL, FALSE); @@ -223,7 +223,7 @@ libpolkit_caller_get_dbus_name (PolKitCaller *caller, char **out_dbus_name) * * Returns: TRUE iff the value is returned **/ -gboolean +bool libpolkit_caller_get_uid (PolKitCaller *caller, uid_t *out_uid) { g_return_val_if_fail (caller != NULL, FALSE); @@ -241,7 +241,7 @@ libpolkit_caller_get_uid (PolKitCaller *caller, uid_t *out_uid) * * Returns: TRUE iff the value is returned **/ -gboolean +bool libpolkit_caller_get_pid (PolKitCaller *caller, pid_t *out_pid) { g_return_val_if_fail (caller != NULL, FALSE); @@ -260,7 +260,7 @@ libpolkit_caller_get_pid (PolKitCaller *caller, pid_t *out_pid) * * Returns: TRUE iff the value is returned **/ -gboolean +bool libpolkit_caller_get_selinux_context (PolKitCaller *caller, char **out_selinux_context) { g_return_val_if_fail (caller != NULL, FALSE); @@ -279,7 +279,7 @@ libpolkit_caller_get_selinux_context (PolKitCaller *caller, char **out_selinux_c * * Returns: TRUE iff the value is returned **/ -gboolean +bool libpolkit_caller_get_ck_session (PolKitCaller *caller, PolKitSession **out_session) { g_return_val_if_fail (caller != NULL, FALSE); diff --git a/libpolkit/libpolkit-caller.h b/libpolkit/libpolkit-caller.h index 7e8bb3a..2c9d93e 100644 --- a/libpolkit/libpolkit-caller.h +++ b/libpolkit/libpolkit-caller.h @@ -26,10 +26,8 @@ #ifndef LIBPOLKIT_CALLER_H #define LIBPOLKIT_CALLER_H -#include -#include +#include #include -#include #include #include @@ -46,11 +44,11 @@ void libpolkit_caller_set_uid (PolKitCaller *caller, void libpolkit_caller_set_pid (PolKitCaller *caller, pid_t pid); void libpolkit_caller_set_selinux_context (PolKitCaller *caller, const char *selinux_context); void libpolkit_caller_set_ck_session (PolKitCaller *caller, PolKitSession *session); -gboolean libpolkit_caller_get_dbus_name (PolKitCaller *caller, char **out_dbus_name); -gboolean libpolkit_caller_get_uid (PolKitCaller *caller, uid_t *out_uid); -gboolean libpolkit_caller_get_pid (PolKitCaller *caller, pid_t *out_pid); -gboolean libpolkit_caller_get_selinux_context (PolKitCaller *caller, char **out_selinux_context); -gboolean libpolkit_caller_get_ck_session (PolKitCaller *caller, PolKitSession **out_session); +bool libpolkit_caller_get_dbus_name (PolKitCaller *caller, char **out_dbus_name); +bool libpolkit_caller_get_uid (PolKitCaller *caller, uid_t *out_uid); +bool libpolkit_caller_get_pid (PolKitCaller *caller, pid_t *out_pid); +bool libpolkit_caller_get_selinux_context (PolKitCaller *caller, char **out_selinux_context); +bool libpolkit_caller_get_ck_session (PolKitCaller *caller, PolKitSession **out_session); void libpolkit_caller_debug (PolKitCaller *caller); diff --git a/libpolkit/libpolkit-context.c b/libpolkit/libpolkit-context.c index 205bea3..61a3599 100644 --- a/libpolkit/libpolkit-context.c +++ b/libpolkit/libpolkit-context.c @@ -66,7 +66,7 @@ struct PolKitContext int refcount; PolKitContextConfigChangedCB config_changed_cb; - gpointer config_changed_user_data; + void *config_changed_user_data; PolKitContextFileMonitorAddWatch file_monitor_add_watch_func; PolKitContextFileMonitorRemoveWatch file_monitor_remove_watch_func; @@ -94,7 +94,7 @@ libpolkit_context_new (void) return pk_context; } -static gboolean +static bool unload_modules (PolKitContext *pk_context) { GSList *i; @@ -109,11 +109,11 @@ unload_modules (PolKitContext *pk_context) return TRUE; } -static gboolean -load_modules (PolKitContext *pk_context, GError **error) +static bool +load_modules (PolKitContext *pk_context, PolKitError **error) { const char *config_file; - gboolean ret; + bool ret; char *buf; char *end; char line[256]; @@ -122,17 +122,24 @@ load_modules (PolKitContext *pk_context, GError **error) gsize len; int line_number; int mod_number; + GError *g_error; ret = FALSE; buf = NULL; mod_number = 0; config_file = PACKAGE_SYSCONF_DIR "/PolicyKit/PolicyKit.conf"; + g_error = NULL; if (!g_file_get_contents (config_file, &buf, &len, - error)) { + &g_error)) { _pk_debug ("Cannot load PolicyKit configuration file at '%s'", config_file); + polkit_error_set_error (error, POLKIT_ERROR_POLICY_FILE_INVALID, + "Cannot load PolicyKit configuration file at '%s': %s", + config_file, + g_error->message); + g_error_free (g_error); goto out; } @@ -223,7 +230,7 @@ static void _config_file_events (PolKitContext *pk_context, PolKitContextFileMonitorEvent event_mask, const char *path, - gpointer user_data) + void *user_data) { _pk_debug ("Config file changed"); unload_modules (pk_context); @@ -239,7 +246,7 @@ static void _policy_dir_events (PolKitContext *pk_context, PolKitContextFileMonitorEvent event_mask, const char *path, - gpointer user_data) + void *user_data) { /* mark cache of policy files as stale.. (will be populated on-demand, see _get_cache()) */ if (pk_context->priv_cache != NULL) { @@ -265,8 +272,8 @@ _policy_dir_events (PolKitContext *pk_context, * * Returns: #FALSE if @error was set, otherwise #TRUE **/ -gboolean -libpolkit_context_init (PolKitContext *pk_context, GError **error) +bool +libpolkit_context_init (PolKitContext *pk_context, PolKitError **error) { const char *dirname; @@ -373,8 +380,8 @@ libpolkit_context_unref (PolKitContext *pk_context) **/ void libpolkit_context_set_config_changed (PolKitContext *pk_context, - PolKitContextConfigChangedCB cb, - gpointer user_data) + PolKitContextConfigChangedCB cb, + void *user_data) { g_return_if_fail (pk_context != NULL); pk_context->config_changed_cb = cb; @@ -414,7 +421,7 @@ libpolkit_context_get_policy_cache (PolKitContext *pk_context) g_return_val_if_fail (pk_context != NULL, NULL); if (pk_context->priv_cache == NULL) { - GError *error; + PolKitError *error; _pk_debug ("Populating cache from directory %s", pk_context->policy_dir); @@ -422,8 +429,8 @@ libpolkit_context_get_policy_cache (PolKitContext *pk_context) pk_context->priv_cache = libpolkit_policy_cache_new (pk_context->policy_dir, &error); if (pk_context->priv_cache == NULL) { g_warning ("Error loading policy files from %s: %s", - pk_context->policy_dir, error->message); - g_error_free (error); + pk_context->policy_dir, polkit_error_get_error_message (error)); + polkit_error_free (error); } else { libpolkit_policy_cache_debug (pk_context->priv_cache); } @@ -459,7 +466,7 @@ libpolkit_context_get_policy_cache (PolKitContext *pk_context) PolKitResult libpolkit_context_get_seat_resource_association (PolKitContext *pk_context, PolKitSeatVisitorCB visitor, - gpointer *user_data) + void *user_data) { return LIBPOLKIT_RESULT_YES; } diff --git a/libpolkit/libpolkit-context.h b/libpolkit/libpolkit-context.h index 088ec35..b16e598 100644 --- a/libpolkit/libpolkit-context.h +++ b/libpolkit/libpolkit-context.h @@ -26,11 +26,7 @@ #ifndef LIBPOLKIT_CONTEXT_H #define LIBPOLKIT_CONTEXT_H -#include -#include -#include -#include - +#include #include #include #include @@ -63,7 +59,7 @@ typedef struct PolKitContext PolKitContext; * timeframe. */ typedef void (*PolKitContextConfigChangedCB) (PolKitContext *pk_context, - gpointer user_data); + void *user_data); /** * PolKitContextFileMonitorEvent: @@ -96,7 +92,7 @@ typedef enum typedef void (*PolKitContextFileMonitorNotifyFunc) (PolKitContext *pk_context, PolKitContextFileMonitorEvent event_mask, const char *path, - gpointer user_data); + void *user_data); /** * PolKitContextFileMonitorAddWatch: @@ -114,11 +110,11 @@ typedef void (*PolKitContextFileMonitorNotifyFunc) (PolKitContext * be watched. Caller can remove the watch using the supplied function * of type #PolKitContextFileMonitorRemoveWatch and the handle. */ -typedef guint (*PolKitContextFileMonitorAddWatch) (PolKitContext *pk_context, - const char *path, - PolKitContextFileMonitorEvent event_mask, - PolKitContextFileMonitorNotifyFunc notify_cb, - gpointer user_data); +typedef int (*PolKitContextFileMonitorAddWatch) (PolKitContext *pk_context, + const char *path, + PolKitContextFileMonitorEvent event_mask, + PolKitContextFileMonitorNotifyFunc notify_cb, + void *user_data); /** * PolKitContextFileMonitorRemoveWatch: @@ -130,18 +126,18 @@ typedef guint (*PolKitContextFileMonitorAddWatch) (PolKitContext * type #PolKitContextFileMonitorAddWatch. */ typedef void (*PolKitContextFileMonitorRemoveWatch) (PolKitContext *pk_context, - guint watch_id); + int watch_id); PolKitContext *libpolkit_context_new (void); void libpolkit_context_set_config_changed (PolKitContext *pk_context, PolKitContextConfigChangedCB cb, - gpointer user_data); + void *user_data); void libpolkit_context_set_file_monitor (PolKitContext *pk_context, PolKitContextFileMonitorAddWatch add_watch_func, PolKitContextFileMonitorRemoveWatch remove_watch_func); -gboolean libpolkit_context_init (PolKitContext *pk_context, - GError **error); +bool libpolkit_context_init (PolKitContext *pk_context, + PolKitError **error); PolKitContext *libpolkit_context_ref (PolKitContext *pk_context); void libpolkit_context_unref (PolKitContext *pk_context); @@ -157,12 +153,12 @@ PolKitPolicyCache *libpolkit_context_get_policy_cache (PolKitContext *pk_context */ typedef void (*PolKitSeatVisitorCB) (PolKitSeat *seat, PolKitResource **resources_associated_with_seat, - gpointer user_data); + void *user_data); PolKitResult libpolkit_context_get_seat_resource_association (PolKitContext *pk_context, PolKitSeatVisitorCB visitor, - gpointer *user_data); + void *user_data); PolKitResult libpolkit_context_is_resource_associated_with_seat (PolKitContext *pk_context, diff --git a/libpolkit/libpolkit-debug.c b/libpolkit/libpolkit-debug.c index b4987a5..37a8fb2 100644 --- a/libpolkit/libpolkit-debug.c +++ b/libpolkit/libpolkit-debug.c @@ -34,10 +34,12 @@ # include #endif +#include #include #include #include #include +#include #include "libpolkit-debug.h" @@ -51,13 +53,13 @@ void _pk_debug (const char *format, ...) { va_list args; - static gboolean show_debug = FALSE; - static gboolean init = FALSE; + static bool show_debug = false; + static bool init = false; if (!init) { - init = TRUE; + init = true; if (getenv ("POLKIT_DEBUG") != NULL) { - show_debug = TRUE; + show_debug = true; } } diff --git a/libpolkit/libpolkit-debug.h b/libpolkit/libpolkit-debug.h index c576f11..d6c51f2 100644 --- a/libpolkit/libpolkit-debug.h +++ b/libpolkit/libpolkit-debug.h @@ -26,11 +26,6 @@ #ifndef LIBPOLKIT_DEBUG_H #define LIBPOLKIT_DEBUG_H -#include -#include -#include -#include - void _pk_debug (const char *format, ...) __attribute__((__format__ (__printf__, 1, 2))); #endif /* LIBPOLKIT_DEBUG_H */ diff --git a/libpolkit/libpolkit-error.c b/libpolkit/libpolkit-error.c index 7e6ed8d..1ca8c4e 100644 --- a/libpolkit/libpolkit-error.c +++ b/libpolkit/libpolkit-error.c @@ -34,6 +34,7 @@ # include #endif +#include #include #include #include @@ -44,18 +45,96 @@ #include #include + #include "libpolkit-error.h" +/** + * PolKitError: + * + * Objects of this class are used for error reporting. + **/ +struct PolKitError +{ + bool is_static; + PolKitErrorCode error_code; + char *error_message; +}; + +//static PolKitError _oom_error = {true, POLKIT_ERROR_OUT_OF_MEMORY, "Out of memory"}; + +/** + * polkit_error_get_error_code: + * @error: the error object + * + * Returns the error code. + * + * Returns: A value from the #PolKitErrorCode enumeration. + **/ +PolKitErrorCode +polkit_error_get_error_code (PolKitError *error) +{ + g_return_val_if_fail (error != NULL, -1); + return error->error_code; +} /** - * libpolkit_error_quark: + * polkit_error_get_error_message: + * @error: the error object * - * Returns error domain for PolicyKit library. + * Get the error message. * - * Returns: The error domain + * Returns: A string describing the error. Caller shall not free this string. **/ -GQuark -libpolkit_error_quark (void) +const char * +polkit_error_get_error_message (PolKitError *error) { - return g_quark_from_static_string ("libpolkit-error-quark"); + g_return_val_if_fail (error != NULL, NULL); + return error->error_message; } + +/** + * polkit_error_free: + * @error: the error + * + * Free an error. + **/ +void +polkit_error_free (PolKitError *error) +{ + g_return_if_fail (error != NULL); + if (!error->is_static) { + g_free (error->error_message); + g_free (error); + } +} + +/** + * polkit_error_set_error: + * @error: the error object + * @error_code: A value from the #PolKitErrorCode enumeration. + * @format: printf style formatting string + * @Varargs: printf style arguments + * + * Sets an error. If OOM, the error will be set to a pre-allocated OOM error. + **/ +void +polkit_error_set_error (PolKitError **error, PolKitErrorCode error_code, const char *format, ...) +{ + va_list args; + PolKitError *e; + + if (*error == NULL) + return; + + e = g_new0 (PolKitError, 1); + e->is_static = false; + e->error_code = error_code; + va_start (args, format); + e->error_message = g_strdup_vprintf (format, args); + va_end (args); + + *error = e; +} + + + diff --git a/libpolkit/libpolkit-error.h b/libpolkit/libpolkit-error.h index d89eade..eaaf827 100644 --- a/libpolkit/libpolkit-error.h +++ b/libpolkit/libpolkit-error.h @@ -1,7 +1,7 @@ /* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */ /*************************************************************************** * - * libpolkit-error.h : GError error codes from PolicyKit + * libpolkit-error.h : error reporting from PolicyKit * * Copyright (C) 2007 David Zeuthen, * @@ -26,28 +26,25 @@ #ifndef LIBPOLKIT_ERROR_H #define LIBPOLKIT_ERROR_H -#include - /** - * PolKitError: + * PolKitErrorCode: + * @POLKIT_ERROR_OUT_OF_MEMORY: Out of memory * @POLKIT_ERROR_POLICY_FILE_INVALID: There was an error parsing the given policy file * * Error codes returned by PolicyKit */ typedef enum { + POLKIT_ERROR_OUT_OF_MEMORY, POLKIT_ERROR_POLICY_FILE_INVALID -} PolKitError; - -/** - * POLKIT_ERROR: - * - * Error domain for PolicyKit library. Errors in this domain will be - * from the #PolKitError enumeration. See GError for details. - **/ -#define POLKIT_ERROR libpolkit_error_quark() +} PolKitErrorCode; -GQuark libpolkit_error_quark (void); +struct PolKitError; +typedef struct PolKitError PolKitError; +PolKitErrorCode polkit_error_get_error_code (PolKitError *error); +const char *polkit_error_get_error_message (PolKitError *error); +void polkit_error_free (PolKitError *error); +void polkit_error_set_error (PolKitError **error, PolKitErrorCode error_code, const char *format, ...) __attribute__((__format__ (__printf__, 3, 4))); -#endif /* LIBPOLKIT_RESULT_H */ +#endif /* LIBPOLKIT_ERROR_H */ diff --git a/libpolkit/libpolkit-module.c b/libpolkit/libpolkit-module.c index 9885caa..505a0b7 100644 --- a/libpolkit/libpolkit-module.c +++ b/libpolkit/libpolkit-module.c @@ -37,6 +37,8 @@ #include #include #include +#include +#include #include "libpolkit-debug.h" #include "libpolkit-module.h" @@ -52,7 +54,7 @@ struct PolKitModuleInterface void *dlopen_handle; char *name; - gpointer module_user_data; + void *module_user_data; PolKitModuleControl module_control; PolKitModuleInitialize func_initialize; @@ -62,7 +64,7 @@ struct PolKitModuleInterface PolKitModuleCanSessionAccessResource func_can_session_access_resource; PolKitModuleCanCallerAccessResource func_can_caller_access_resource; - gboolean builtin_have_action_regex; + bool builtin_have_action_regex; regex_t builtin_action_regex_compiled; GSList *builtin_users; @@ -107,13 +109,13 @@ _parse_builtin_remove_option (int *argc, char *argv[], int position) (*argc)--; } -static gboolean +static bool _parse_builtin (PolKitModuleInterface *mi, int *argc, char *argv[]) { int n; - gboolean ret; + bool ret; - ret = FALSE; + ret = false; for (n = 1; n < *argc; ) { if (g_str_has_prefix (argv[n], "action=")) { @@ -129,7 +131,7 @@ _parse_builtin (PolKitModuleInterface *mi, int *argc, char *argv[]) _pk_debug ("Regex '%s' didn't compile", regex); goto error; } - mi->builtin_have_action_regex = TRUE; + mi->builtin_have_action_regex = true; _pk_debug ("Compiled regex '%s' for option 'action=' OK", regex); @@ -163,7 +165,7 @@ _parse_builtin (PolKitModuleInterface *mi, int *argc, char *argv[]) } } - ret = TRUE; + ret = true; error: return ret; @@ -185,7 +187,7 @@ libpolkit_module_interface_load_module (const char *name, PolKitModuleControl mo { void *handle; PolKitModuleInterface *mi; - gboolean (*func) (PolKitModuleInterface *); + bool (*func) (PolKitModuleInterface *); mi = NULL; @@ -554,12 +556,12 @@ libpolkit_module_control_to_string_representation (PolKitModuleControl module_co * * Returns: TRUE if the textual representation was valid, otherwise FALSE **/ -gboolean +bool libpolkit_module_control_from_string_representation (const char *string, PolKitModuleControl *out_module_control) { int n; - g_return_val_if_fail (out_module_control != NULL, FALSE); + g_return_val_if_fail (out_module_control != NULL, false); for (n = 0; n < LIBPOLKIT_MODULE_CONTROL_N_CONTROLS; n++) { if (mapping[n].str == NULL) @@ -570,9 +572,9 @@ libpolkit_module_control_from_string_representation (const char *string, PolKitM } } - return FALSE; + return false; found: - return TRUE; + return true; } @@ -586,7 +588,7 @@ found: * instantiated at the same time. **/ void -libpolkit_module_set_user_data (PolKitModuleInterface *module_interface, gpointer user_data) +libpolkit_module_set_user_data (PolKitModuleInterface *module_interface, void *user_data) { g_return_if_fail (module_interface != NULL); module_interface->module_user_data = user_data; @@ -600,30 +602,30 @@ libpolkit_module_set_user_data (PolKitModuleInterface *module_interface, gpointe * * Returns: The user data set with libpolkit_module_set_user_data() **/ -gpointer +void * libpolkit_module_get_user_data (PolKitModuleInterface *module_interface) { g_return_val_if_fail (module_interface != NULL, NULL); return module_interface->module_user_data; } -static gboolean +static bool _check_action (PolKitModuleInterface *module_interface, PolKitAction *action) { - gboolean ret; + bool ret; - ret = FALSE; + ret = false; if (module_interface->builtin_have_action_regex) { char *action_name; if (libpolkit_action_get_action_id (action, &action_name)) { if (regexec (&module_interface->builtin_action_regex_compiled, action_name, 0, NULL, 0) == 0) { - ret = TRUE; + ret = true; } } } else { - ret = TRUE; + ret = true; } return ret; @@ -631,7 +633,7 @@ _check_action (PolKitModuleInterface *module_interface, PolKitAction *action) /*----*/ -static gboolean +static bool _check_uid_in_list (GSList *list, uid_t given_uid) { GSList *i; @@ -639,36 +641,36 @@ _check_uid_in_list (GSList *list, uid_t given_uid) for (i = list; i != NULL; i = g_slist_next (i)) { uid_t uid = GPOINTER_TO_INT (i->data); if (given_uid == uid) - return TRUE; + return true; } - return FALSE; + return false; } -static gboolean +static bool _check_users_for_session (PolKitModuleInterface *module_interface, PolKitSession *session) { uid_t uid; GSList *list; if ((list = module_interface->builtin_users) == NULL) - return TRUE; + return true; if (session == NULL) - return FALSE; + return false; if (!libpolkit_session_get_uid (session, &uid)) - return FALSE; + return false; return _check_uid_in_list (list, uid); } -static gboolean +static bool _check_users_for_caller (PolKitModuleInterface *module_interface, PolKitCaller *caller) { uid_t uid; GSList *list; if ((list = module_interface->builtin_users) == NULL) - return TRUE; + return true; if (caller == NULL) - return FALSE; + return false; if (!libpolkit_caller_get_uid (caller, &uid)) - return FALSE; + return false; return _check_uid_in_list (list, uid); } @@ -686,15 +688,15 @@ _check_users_for_caller (PolKitModuleInterface *module_interface, PolKitCaller * * * Returns: TRUE if, and only if, the module is confined from handling the request **/ -gboolean +bool libpolkit_module_interface_check_builtin_confinement_for_session (PolKitModuleInterface *module_interface, PolKitContext *pk_context, PolKitAction *action, PolKitResource *resource, PolKitSession *session) { - gboolean ret; - ret = TRUE; + bool ret; + ret = true; g_return_val_if_fail (module_interface != NULL, ret); @@ -704,7 +706,7 @@ libpolkit_module_interface_check_builtin_confinement_for_session (PolKitModuleIn goto out; /* not confined */ - ret = FALSE; + ret = false; out: return ret; } @@ -722,15 +724,15 @@ out: * * Returns: TRUE if, and only if, the module is confined from handling the request **/ -gboolean +bool libpolkit_module_interface_check_builtin_confinement_for_caller (PolKitModuleInterface *module_interface, PolKitContext *pk_context, PolKitAction *action, PolKitResource *resource, PolKitCaller *caller) { - gboolean ret; - ret = TRUE; + bool ret; + ret = true; g_return_val_if_fail (module_interface != NULL, ret); @@ -740,7 +742,7 @@ libpolkit_module_interface_check_builtin_confinement_for_caller (PolKitModuleInt goto out; /* not confined */ - ret = FALSE; + ret = false; out: return ret; } diff --git a/libpolkit/libpolkit-module.h b/libpolkit/libpolkit-module.h index 7f79e4f..7088491 100644 --- a/libpolkit/libpolkit-module.h +++ b/libpolkit/libpolkit-module.h @@ -26,11 +26,7 @@ #ifndef LIBPOLKIT_MODULE_H #define LIBPOLKIT_MODULE_H -#include -#include -#include -#include - +#include #include struct PolKitModuleInterface; @@ -46,7 +42,7 @@ typedef struct PolKitModuleInterface PolKitModuleInterface; * * Returns: Whether the module was initialized. **/ -typedef gboolean (*PolKitModuleInitialize) (PolKitModuleInterface *module_interface, +typedef bool (*PolKitModuleInitialize) (PolKitModuleInterface *module_interface, int argc, char *argv[]); @@ -72,7 +68,7 @@ typedef void (*PolKitModuleShutdown) (PolKitModuleInterface *module_interface); typedef PolKitResult (*PolKitModuleGetSeatResourceAssociation) (PolKitModuleInterface *module_interface, PolKitContext *pk_context, PolKitSeatVisitorCB visitor, - gpointer *user_data); + void *user_data); /** * PolKitModuleIsResourceAssociatedWithSeat: @@ -131,8 +127,8 @@ PolKitModuleInterface *libpolkit_module_interface_ref (PolKitModuleInterface * void libpolkit_module_interface_unref (PolKitModuleInterface *module_interface); const char *libpolkit_module_get_name (PolKitModuleInterface *module_interface); -void libpolkit_module_set_user_data (PolKitModuleInterface *module_interface, gpointer user_data); -gpointer libpolkit_module_get_user_data (PolKitModuleInterface *module_interface); +void libpolkit_module_set_user_data (PolKitModuleInterface *module_interface, void *user_data); +void *libpolkit_module_get_user_data (PolKitModuleInterface *module_interface); void libpolkit_module_set_func_initialize (PolKitModuleInterface *module_interface, PolKitModuleInitialize func); @@ -180,7 +176,7 @@ typedef enum const char * libpolkit_module_control_to_string_representation (PolKitModuleControl module_control); -gboolean +bool libpolkit_module_control_from_string_representation (const char *string, PolKitModuleControl *out_module_control); PolKitModuleInterface *libpolkit_module_interface_load_module (const char *name, @@ -190,14 +186,14 @@ PolKitModuleInterface *libpolkit_module_interface_load_module (const char *name, PolKitModuleControl libpolkit_module_interface_get_control (PolKitModuleInterface *module_interface); -gboolean +bool libpolkit_module_interface_check_builtin_confinement_for_session (PolKitModuleInterface *module_interface, PolKitContext *pk_context, PolKitAction *action, PolKitResource *resource, PolKitSession *session); -gboolean +bool libpolkit_module_interface_check_builtin_confinement_for_caller (PolKitModuleInterface *module_interface, PolKitContext *pk_context, PolKitAction *action, diff --git a/libpolkit/libpolkit-policy-cache.c b/libpolkit/libpolkit-policy-cache.c index a2c8d4a..f5549d0 100644 --- a/libpolkit/libpolkit-policy-cache.c +++ b/libpolkit/libpolkit-policy-cache.c @@ -64,20 +64,14 @@ struct PolKitPolicyCache static void -add_entries_from_file (PolKitPolicyCache *policy_cache, - PolKitPolicyFile *policy_file) +_append_entry (PolKitPolicyFile *policy_file, + PolKitPolicyFileEntry *policy_file_entry, + void *user_data) { - GSList *i; - - g_return_if_fail (policy_cache != NULL); - g_return_if_fail (policy_file != NULL); + PolKitPolicyCache *policy_cache = user_data; - for (i = libpolkit_policy_file_get_entries (policy_file); i != NULL; i = g_slist_next (i)) { - PolKitPolicyFileEntry *policy_file_entry = i->data; - libpolkit_policy_file_entry_ref (policy_file_entry); - policy_cache->priv_entries = g_slist_append (policy_cache->priv_entries, - policy_file_entry); - } + libpolkit_policy_file_entry_ref (policy_file_entry); + policy_cache->priv_entries = g_slist_append (policy_cache->priv_entries, policy_file_entry); } /** @@ -90,17 +84,24 @@ add_entries_from_file (PolKitPolicyCache *policy_cache, * Returns: #NULL if @error was set, otherwise the #PolKitPolicyCache object **/ PolKitPolicyCache * -libpolkit_policy_cache_new (const char *dirname, GError **error) +libpolkit_policy_cache_new (const char *dirname, PolKitError **error) { const char *file; GDir *dir; PolKitPolicyCache *pc; + GError *g_error; pc = g_new0 (PolKitPolicyCache, 1); pc->refcount = 1; - dir = g_dir_open (dirname, 0, error); + g_error = NULL; + dir = g_dir_open (dirname, 0, &g_error); if (dir == NULL) { + polkit_error_set_error (error, POLKIT_ERROR_POLICY_FILE_INVALID, + "Cannot load policy files from directory %s: %s", + dirname, + g_error->message); + g_error_free (g_error); goto out; } while ((file = g_dir_read_name (dir)) != NULL) { @@ -123,7 +124,8 @@ libpolkit_policy_cache_new (const char *dirname, GError **error) goto out; } - add_entries_from_file (pc, pf); + /* steal entries */ + libpolkit_policy_file_entry_foreach (pf, _append_entry, pc); libpolkit_policy_file_unref (pf); } g_dir_close (dir); diff --git a/libpolkit/libpolkit-policy-cache.h b/libpolkit/libpolkit-policy-cache.h index 72b626c..92378a7 100644 --- a/libpolkit/libpolkit-policy-cache.h +++ b/libpolkit/libpolkit-policy-cache.h @@ -26,18 +26,14 @@ #ifndef LIBPOLKIT_POLICY_CACHE_H #define LIBPOLKIT_POLICY_CACHE_H -#include -#include -#include -#include - +#include #include #include struct PolKitPolicyCache; typedef struct PolKitPolicyCache PolKitPolicyCache; -PolKitPolicyCache *libpolkit_policy_cache_new (const char *dirname, GError **error); +PolKitPolicyCache *libpolkit_policy_cache_new (const char *dirname, PolKitError **error); PolKitPolicyCache *libpolkit_policy_cache_ref (PolKitPolicyCache *policy_cache); void libpolkit_policy_cache_unref (PolKitPolicyCache *policy_cache); void libpolkit_policy_cache_debug (PolKitPolicyCache *policy_cache); diff --git a/libpolkit/libpolkit-policy-default.c b/libpolkit/libpolkit-policy-default.c index 3edde5f..852c3aa 100644 --- a/libpolkit/libpolkit-policy-default.c +++ b/libpolkit/libpolkit-policy-default.c @@ -64,7 +64,7 @@ struct PolKitPolicyDefault }; static gboolean -parse_default (const char *key, char *s, const char *group, PolKitResult* target, GError **error) +parse_default (const char *key, char *s, const char *group, PolKitResult* target, PolKitError **error) { gboolean ret; @@ -86,14 +86,14 @@ parse_default (const char *key, char *s, const char *group, PolKitResult* target } s2 = g_string_free (str, FALSE); - g_set_error (error, - POLKIT_ERROR, - POLKIT_ERROR_POLICY_FILE_INVALID, - "Value '%s' is not allowed for key '%s' in group '%s' - supported values are: %s", - s, - key, - group, - s2); + polkit_error_set_error (error, + POLKIT_ERROR_POLICY_FILE_INVALID, + "Value '%s' is not allowed for key '%s' in group '%s'; " + "supported values are: %s", + s, + key, + group, + s2); g_free (s2); } @@ -101,24 +101,17 @@ parse_default (const char *key, char *s, const char *group, PolKitResult* target return ret; } -/** - * libpolkit_policy_default_new: - * @key_file: a #GKeyFile object - * @action: action to look up defaults for in key_file - * @error: return location for error - * - * Create a new #PolKitPolicyDefault object. - * - * Returns: the new object or #NULL if error is set - **/ +extern PolKitPolicyDefault *_libpolkit_policy_default_new (GKeyFile *key_file, const char *action, PolKitError **error); + PolKitPolicyDefault * -libpolkit_policy_default_new (GKeyFile *key_file, const char *action, GError **error) +_libpolkit_policy_default_new (GKeyFile *key_file, const char *action, PolKitError **error) { const char *key; const char *group; char *s; char buf[256]; PolKitPolicyDefault *pd; + GError *g_error; pd = g_new0 (PolKitPolicyDefault, 1); pd->refcount = 1; @@ -126,29 +119,37 @@ libpolkit_policy_default_new (GKeyFile *key_file, const char *action, GError **e g_snprintf (buf, sizeof (buf), "Action %s", action); group = buf; + g_error = NULL; key = "AllowRemoteInactive"; - if ((s = g_key_file_get_string (key_file, group, key, error)) == NULL) + if ((s = g_key_file_get_string (key_file, group, key, &g_error)) == NULL) goto error; if (!parse_default (key, s, group, &pd->default_remote_inactive, error)) goto error; key = "AllowRemoteActive"; - if ((s = g_key_file_get_string (key_file, group, key, error)) == NULL) + if ((s = g_key_file_get_string (key_file, group, key, &g_error)) == NULL) goto error; if (!parse_default (key, s, group, &pd->default_remote_active, error)) goto error; key = "AllowLocalInactive"; - if ((s = g_key_file_get_string (key_file, group, key, error)) == NULL) + if ((s = g_key_file_get_string (key_file, group, key, &g_error)) == NULL) goto error; if (!parse_default (key, s, group, &pd->default_local_inactive, error)) goto error; key = "AllowLocalActive"; - if ((s = g_key_file_get_string (key_file, group, key, error)) == NULL) + if ((s = g_key_file_get_string (key_file, group, key, &g_error)) == NULL) goto error; if (!parse_default (key, s, group, &pd->default_local_active, error)) goto error; return pd; error: + if (g_error != NULL) { + polkit_error_set_error (error, POLKIT_ERROR_POLICY_FILE_INVALID, + "Missing key in policy file: %s", + g_error->message); + g_error_free (g_error); + } + if (pd != NULL) libpolkit_policy_default_ref (pd); return NULL; @@ -231,8 +232,8 @@ libpolkit_policy_default_can_session_access_resource (PolKitPolicyDefault *polic PolKitResource *resource, PolKitSession *session) { - gboolean is_local; - gboolean is_active; + bool is_local; + bool is_active; PolKitResult ret; ret = LIBPOLKIT_RESULT_NO; @@ -283,8 +284,8 @@ libpolkit_policy_default_can_caller_access_resource (PolKitPolicyDefault *policy PolKitResource *resource, PolKitCaller *caller) { - gboolean is_local; - gboolean is_active; + bool is_local; + bool is_active; PolKitSession *session; PolKitResult ret; diff --git a/libpolkit/libpolkit-policy-default.h b/libpolkit/libpolkit-policy-default.h index 6db6c62..9daaee1 100644 --- a/libpolkit/libpolkit-policy-default.h +++ b/libpolkit/libpolkit-policy-default.h @@ -26,22 +26,17 @@ #ifndef LIBPOLKIT_POLICY_DEFAULT_H #define LIBPOLKIT_POLICY_DEFAULT_H -#include -#include -#include -#include - #include #include #include #include #include +#include struct PolKitPolicyDefault; typedef struct PolKitPolicyDefault PolKitPolicyDefault; -PolKitPolicyDefault *libpolkit_policy_default_new (GKeyFile *key_file, const char *action, GError **error); -PolKitPolicyDefault *libpolkit_policy_default_ref (PolKitPolicyDefault *policy_default); +PolKitPolicyDefault *libpolkit_policy_default_ref (PolKitPolicyDefault *policy_default); void libpolkit_policy_default_unref (PolKitPolicyDefault *policy_default); void libpolkit_policy_default_debug (PolKitPolicyDefault *policy_default); diff --git a/libpolkit/libpolkit-policy-file-entry.c b/libpolkit/libpolkit-policy-file-entry.c index 5a042cb..e07f46e 100644 --- a/libpolkit/libpolkit-policy-file-entry.c +++ b/libpolkit/libpolkit-policy-file-entry.c @@ -62,20 +62,13 @@ struct PolKitPolicyFileEntry PolKitPolicyDefault *defaults; }; -/** - * libpolkit_policy_file_entry_new: - * @key_file: a #GKeyFile object - * @action: action to look for in key_file - * @error: return location for error - * - * Create a new #PolKitPolicyFileEntry object. If the given - * @key_file object does not contain the requisite sections, a human - * readable explanation of why will be set in @error. - * - * Returns: the new object or #NULL if error is set - **/ PolKitPolicyFileEntry * -libpolkit_policy_file_entry_new (GKeyFile *key_file, const char *action, GError **error) +_libpolkit_policy_file_entry_new (GKeyFile *key_file, const char *action, PolKitError **error); + +extern PolKitPolicyDefault *_libpolkit_policy_default_new (GKeyFile *key_file, const char *action, PolKitError **error); + +extern PolKitPolicyFileEntry * +_libpolkit_policy_file_entry_new (GKeyFile *key_file, const char *action, PolKitError **error) { PolKitPolicyFileEntry *pfe; @@ -83,7 +76,7 @@ libpolkit_policy_file_entry_new (GKeyFile *key_file, const char *action, GError pfe->refcount = 1; pfe->action = g_strdup (action); - pfe->defaults = libpolkit_policy_default_new (key_file, action, error); + pfe->defaults = _libpolkit_policy_default_new (key_file, action, error); if (pfe->defaults == NULL) goto error; diff --git a/libpolkit/libpolkit-policy-file-entry.h b/libpolkit/libpolkit-policy-file-entry.h index f183c06..1d76f83 100644 --- a/libpolkit/libpolkit-policy-file-entry.h +++ b/libpolkit/libpolkit-policy-file-entry.h @@ -26,18 +26,12 @@ #ifndef LIBPOLKIT_POLICY_FILE_ENTRY_H #define LIBPOLKIT_POLICY_FILE_ENTRY_H -#include -#include -#include -#include - #include #include struct PolKitPolicyFileEntry; typedef struct PolKitPolicyFileEntry PolKitPolicyFileEntry; -PolKitPolicyFileEntry *libpolkit_policy_file_entry_new (GKeyFile *key_file, const char *action, GError **error); PolKitPolicyFileEntry *libpolkit_policy_file_entry_ref (PolKitPolicyFileEntry *policy_file_entry); void libpolkit_policy_file_entry_unref (PolKitPolicyFileEntry *policy_file_entry); void libpolkit_policy_file_entry_debug (PolKitPolicyFileEntry *policy_file_entry); diff --git a/libpolkit/libpolkit-policy-file.c b/libpolkit/libpolkit-policy-file.c index b739166..57b6bf8 100644 --- a/libpolkit/libpolkit-policy-file.c +++ b/libpolkit/libpolkit-policy-file.c @@ -40,10 +40,11 @@ #include "libpolkit-error.h" #include "libpolkit-result.h" #include "libpolkit-policy-file.h" +#include "libpolkit-policy-file-entry.h" /** * SECTION:libpolkit-policy-file - * @short_description: Policys files. + * @short_description: Policy files. * * This class is used to represent a policy files. **/ @@ -60,6 +61,10 @@ struct PolKitPolicyFile GSList *entries; }; +extern PolKitPolicyFileEntry *_libpolkit_policy_file_entry_new (GKeyFile *keyfile, + const char *action, + PolKitError **error); + /** * libpolkit_policy_file_new: * @path: path to policy file @@ -72,29 +77,36 @@ struct PolKitPolicyFile * Returns: the new object or #NULL if error is set **/ PolKitPolicyFile * -libpolkit_policy_file_new (const char *path, GError **error) +libpolkit_policy_file_new (const char *path, PolKitError **error) { GKeyFile *key_file; PolKitPolicyFile *pf; char **groups; gsize groups_len; int n; + GError *g_error; pf = NULL; key_file = NULL; groups = NULL; if (!g_str_has_suffix (path, ".policy")) { - g_set_error (error, - POLKIT_ERROR, - POLKIT_ERROR_POLICY_FILE_INVALID, - "Policy files must have extension .policy"); + polkit_error_set_error (error, + POLKIT_ERROR_POLICY_FILE_INVALID, + "Policy files must have extension .policy; file '%s' doesn't", path); goto error; } + g_error = NULL; key_file = g_key_file_new (); - if (!g_key_file_load_from_file (key_file, path, G_KEY_FILE_NONE, error)) + if (!g_key_file_load_from_file (key_file, path, G_KEY_FILE_NONE, &g_error)) { + polkit_error_set_error (error, POLKIT_ERROR_POLICY_FILE_INVALID, + "Cannot load PolicyKit policy file at '%s': %s", + path, + g_error->message); + g_error_free (g_error); goto error; + } pf = g_new0 (PolKitPolicyFile, 1); pf->refcount = 1; @@ -108,23 +120,21 @@ libpolkit_policy_file_new (const char *path, GError **error) PolKitPolicyFileEntry *pfe; if (!g_str_has_prefix (groups[n], "Action ")) { - g_set_error (error, - POLKIT_ERROR, - POLKIT_ERROR_POLICY_FILE_INVALID, - "Unknown group of name '%s'", groups[n]); + polkit_error_set_error (error, + POLKIT_ERROR_POLICY_FILE_INVALID, + "Unknown group of name '%s'", groups[n]); goto error; } action = groups[n] + 7; /* "Action " */ if (strlen (action) == 0) { - g_set_error (error, - POLKIT_ERROR, - POLKIT_ERROR_POLICY_FILE_INVALID, - "Zero-length action name"); + polkit_error_set_error (error, + POLKIT_ERROR_POLICY_FILE_INVALID, + "Zero-length action name"); goto error; } - pfe = libpolkit_policy_file_entry_new (key_file, action, error); + pfe = _libpolkit_policy_file_entry_new (key_file, action, error); if (pfe == NULL) goto error; pf->entries = g_slist_prepend (pf->entries, pfe); @@ -184,17 +194,25 @@ libpolkit_policy_file_unref (PolKitPolicyFile *policy_file) } /** - * libpolkit_policy_file_get_entries: + * libpolkit_policy_file_entry_foreach: * @policy_file: the policy file object + * @cb: callback to invoke for each entry + * @user_data: user data * - * Get the entries stemming from the given file. - * - * Returns: A #GSList of the entries. + * Visits all entries in a policy file. **/ -GSList * -libpolkit_policy_file_get_entries (PolKitPolicyFile *policy_file) +void +libpolkit_policy_file_entry_foreach (PolKitPolicyFile *policy_file, + PolKitPolicyFileEntryForeachFunc cb, + void *user_data) { - g_return_val_if_fail (policy_file != NULL, NULL); - return policy_file->entries; -} + GSList *i; + g_return_if_fail (policy_file != NULL); + g_return_if_fail (cb != NULL); + + for (i = policy_file->entries; i != NULL; i = g_slist_next (i)) { + PolKitPolicyFileEntry *pfe = i->data; + cb (policy_file, pfe, user_data); + } +} diff --git a/libpolkit/libpolkit-policy-file.h b/libpolkit/libpolkit-policy-file.h index b77db76..b09f508 100644 --- a/libpolkit/libpolkit-policy-file.h +++ b/libpolkit/libpolkit-policy-file.h @@ -26,20 +26,30 @@ #ifndef LIBPOLKIT_POLICY_FILE_H #define LIBPOLKIT_POLICY_FILE_H -#include -#include -#include -#include - +#include #include struct PolKitPolicyFile; typedef struct PolKitPolicyFile PolKitPolicyFile; -PolKitPolicyFile *libpolkit_policy_file_new (const char *path, GError **error); -PolKitPolicyFile *libpolkit_policy_file_ref (PolKitPolicyFile *policy_file); -GSList *libpolkit_policy_file_get_entries (PolKitPolicyFile *policy_file); -void libpolkit_policy_file_unref (PolKitPolicyFile *policy_file); +/** + * PolKitPolicyFileEntryForeachFunc: + * @policy_file: the policy file + * @policy_file_entry: the entry + * @user_data: user data + * + * Type for function used in libpolkit_policy_file_entry_foreach(). + **/ +typedef void (*PolKitPolicyFileEntryForeachFunc) (PolKitPolicyFile *policy_file, + PolKitPolicyFileEntry *policy_file_entry, + void *user_data); + +PolKitPolicyFile *libpolkit_policy_file_new (const char *path, PolKitError **error); +PolKitPolicyFile *libpolkit_policy_file_ref (PolKitPolicyFile *policy_file); +void libpolkit_policy_file_unref (PolKitPolicyFile *policy_file); +void libpolkit_policy_file_entry_foreach (PolKitPolicyFile *policy_file, + PolKitPolicyFileEntryForeachFunc cb, + void *user_data); #endif /* LIBPOLKIT_POLICY_FILE_H */ diff --git a/libpolkit/libpolkit-resource.c b/libpolkit/libpolkit-resource.c index 24d4ff1..f401eb1 100644 --- a/libpolkit/libpolkit-resource.c +++ b/libpolkit/libpolkit-resource.c @@ -159,7 +159,7 @@ libpolkit_resource_set_resource_id (PolKitResource *resource, const char *resou * * Returns: TRUE iff the value was returned. **/ -gboolean +bool libpolkit_resource_get_resource_type (PolKitResource *resource, char **out_resource_type) { g_return_val_if_fail (resource != NULL, FALSE); @@ -181,7 +181,7 @@ libpolkit_resource_get_resource_type (PolKitResource *resource, char **out_resou * * Returns: TRUE iff the value was returned. **/ -gboolean +bool libpolkit_resource_get_resource_id (PolKitResource *resource, char **out_resource_id) { g_return_val_if_fail (resource != NULL, FALSE); diff --git a/libpolkit/libpolkit-resource.h b/libpolkit/libpolkit-resource.h index f50b7db..e050b86 100644 --- a/libpolkit/libpolkit-resource.h +++ b/libpolkit/libpolkit-resource.h @@ -26,10 +26,7 @@ #ifndef LIBPOLKIT_RESOURCE_H #define LIBPOLKIT_RESOURCE_H -#include -#include -#include -#include +#include struct PolKitResource; typedef struct PolKitResource PolKitResource; @@ -39,8 +36,8 @@ PolKitResource *libpolkit_resource_ref (PolKitResource *resource); void libpolkit_resource_unref (PolKitResource *resource); void libpolkit_resource_set_resource_type (PolKitResource *resource, const char *resource_type); void libpolkit_resource_set_resource_id (PolKitResource *resource, const char *resource_id); -gboolean libpolkit_resource_get_resource_type (PolKitResource *resource, char **out_resource_type); -gboolean libpolkit_resource_get_resource_id (PolKitResource *resource, char **out_resource_id); +bool libpolkit_resource_get_resource_type (PolKitResource *resource, char **out_resource_type); +bool libpolkit_resource_get_resource_id (PolKitResource *resource, char **out_resource_id); void libpolkit_resource_debug (PolKitResource *resource); diff --git a/libpolkit/libpolkit-result.c b/libpolkit/libpolkit-result.c index 2c81113..393c96d 100644 --- a/libpolkit/libpolkit-result.c +++ b/libpolkit/libpolkit-result.c @@ -94,7 +94,7 @@ libpolkit_result_to_string_representation (PolKitResult result) * * Returns: TRUE if the textual representation was valid, otherwise FALSE **/ -gboolean +bool libpolkit_result_from_string_representation (const char *string, PolKitResult *out_result) { int n; @@ -110,7 +110,7 @@ libpolkit_result_from_string_representation (const char *string, PolKitResult *o } } - return FALSE; + return false; found: - return TRUE; + return true; } diff --git a/libpolkit/libpolkit-result.h b/libpolkit/libpolkit-result.h index d4c5e3c..bb76b9b 100644 --- a/libpolkit/libpolkit-result.h +++ b/libpolkit/libpolkit-result.h @@ -26,7 +26,7 @@ #ifndef LIBPOLKIT_RESULT_H #define LIBPOLKIT_RESULT_H -#include +#include /** * PolKitResult: @@ -71,7 +71,7 @@ typedef enum const char * libpolkit_result_to_string_representation (PolKitResult result); -gboolean +bool libpolkit_result_from_string_representation (const char *string, PolKitResult *out_result); #endif /* LIBPOLKIT_RESULT_H */ diff --git a/libpolkit/libpolkit-seat.c b/libpolkit/libpolkit-seat.c index aeb0aa3..0af95dc 100644 --- a/libpolkit/libpolkit-seat.c +++ b/libpolkit/libpolkit-seat.c @@ -135,13 +135,13 @@ libpolkit_seat_set_ck_objref (PolKitSeat *seat, const char *ck_objref) * * Returns: TRUE iff the value is returned **/ -gboolean +bool libpolkit_seat_get_ck_objref (PolKitSeat *seat, char **out_ck_objref) { - g_return_val_if_fail (seat != NULL, FALSE); - g_return_val_if_fail (out_ck_objref != NULL, FALSE); + g_return_val_if_fail (seat != NULL, false); + g_return_val_if_fail (out_ck_objref != NULL, false); *out_ck_objref = seat->ck_objref; - return TRUE; + return true; } /** diff --git a/libpolkit/libpolkit-seat.h b/libpolkit/libpolkit-seat.h index 86f1bc7..046f9f6 100644 --- a/libpolkit/libpolkit-seat.h +++ b/libpolkit/libpolkit-seat.h @@ -26,10 +26,7 @@ #ifndef LIBPOLKIT_SEAT_H #define LIBPOLKIT_SEAT_H -#include -#include -#include -#include +#include struct PolKitSeat; typedef struct PolKitSeat PolKitSeat; @@ -38,7 +35,7 @@ PolKitSeat *libpolkit_seat_new (void); PolKitSeat *libpolkit_seat_ref (PolKitSeat *seat); void libpolkit_seat_unref (PolKitSeat *seat); void libpolkit_seat_set_ck_objref (PolKitSeat *seat, const char *ck_objref); -gboolean libpolkit_seat_get_ck_objref (PolKitSeat *seat, char **out_ck_objref); +bool libpolkit_seat_get_ck_objref (PolKitSeat *seat, char **out_ck_objref); void libpolkit_seat_debug (PolKitSeat *seat); diff --git a/libpolkit/libpolkit-session.c b/libpolkit/libpolkit-session.c index 9e758bb..a5d0a9f 100644 --- a/libpolkit/libpolkit-session.c +++ b/libpolkit/libpolkit-session.c @@ -60,8 +60,8 @@ struct PolKitSession uid_t uid; PolKitSeat *seat; char *ck_objref; - gboolean is_active; - gboolean is_local; + bool is_active; + bool is_local; char *remote_host; }; @@ -158,7 +158,7 @@ libpolkit_session_set_ck_objref (PolKitSession *session, const char *ck_objref) * Set whether ConsoleKit regard the session as active. **/ void -libpolkit_session_set_ck_is_active (PolKitSession *session, gboolean is_active) +libpolkit_session_set_ck_is_active (PolKitSession *session, bool is_active) { g_return_if_fail (session != NULL); session->is_active = is_active; @@ -172,7 +172,7 @@ libpolkit_session_set_ck_is_active (PolKitSession *session, gboolean is_active) * Set whether ConsoleKit regard the session as local. **/ void -libpolkit_session_set_ck_is_local (PolKitSession *session, gboolean is_local) +libpolkit_session_set_ck_is_local (PolKitSession *session, bool is_local) { g_return_if_fail (session != NULL); session->is_local = is_local; @@ -224,7 +224,7 @@ libpolkit_session_set_seat (PolKitSession *session, PolKitSeat *seat) * * Returns: TRUE iff the value is returned **/ -gboolean +bool libpolkit_session_get_uid (PolKitSession *session, uid_t *out_uid) { g_return_val_if_fail (session != NULL, FALSE); @@ -242,7 +242,7 @@ libpolkit_session_get_uid (PolKitSession *session, uid_t *out_uid) * * Returns: TRUE iff the value is returned **/ -gboolean +bool libpolkit_session_get_ck_objref (PolKitSession *session, char **out_ck_objref) { g_return_val_if_fail (session != NULL, FALSE); @@ -260,8 +260,8 @@ libpolkit_session_get_ck_objref (PolKitSession *session, char **out_ck_objref) * * Returns: TRUE iff the value is returned **/ -gboolean -libpolkit_session_get_ck_is_active (PolKitSession *session, gboolean *out_is_active) +bool +libpolkit_session_get_ck_is_active (PolKitSession *session, bool *out_is_active) { g_return_val_if_fail (session != NULL, FALSE); g_return_val_if_fail (out_is_active != NULL, FALSE); @@ -278,8 +278,8 @@ libpolkit_session_get_ck_is_active (PolKitSession *session, gboolean *out_is_act * * Returns: TRUE iff the value is returned **/ -gboolean -libpolkit_session_get_ck_is_local (PolKitSession *session, gboolean *out_is_local) +bool +libpolkit_session_get_ck_is_local (PolKitSession *session, bool *out_is_local) { g_return_val_if_fail (session != NULL, FALSE); g_return_val_if_fail (out_is_local != NULL, FALSE); @@ -298,7 +298,7 @@ libpolkit_session_get_ck_is_local (PolKitSession *session, gboolean *out_is_loca * * Returns: TRUE iff the value is returned **/ -gboolean +bool libpolkit_session_get_ck_remote_host (PolKitSession *session, char **out_remote_host) { g_return_val_if_fail (session != NULL, FALSE); @@ -317,7 +317,7 @@ libpolkit_session_get_ck_remote_host (PolKitSession *session, char **out_remote_ * * Returns: TRUE iff the value is returned **/ -gboolean +bool libpolkit_session_get_seat (PolKitSession *session, PolKitSeat **out_seat) { g_return_val_if_fail (session != NULL, FALSE); @@ -350,8 +350,8 @@ libpolkit_session_new_from_objpath (DBusConnection *con, const char *objpath, ui DBusMessage *message; DBusMessage *reply; char *str; - gboolean is_active; - gboolean is_local; + bool is_active; + bool is_local; char *remote_host; char *seat_path; diff --git a/libpolkit/libpolkit-session.h b/libpolkit/libpolkit-session.h index 1cbafec..44821a9 100644 --- a/libpolkit/libpolkit-session.h +++ b/libpolkit/libpolkit-session.h @@ -26,10 +26,8 @@ #ifndef LIBPOLKIT_SESSION_H #define LIBPOLKIT_SESSION_H -#include -#include +#include #include -#include #include #include @@ -45,15 +43,15 @@ void libpolkit_session_unref (PolKitSession *session); void libpolkit_session_set_uid (PolKitSession *session, uid_t uid); void libpolkit_session_set_seat (PolKitSession *session, PolKitSeat *seat); void libpolkit_session_set_ck_objref (PolKitSession *session, const char *ck_objref); -void libpolkit_session_set_ck_is_active (PolKitSession *session, gboolean is_active); -void libpolkit_session_set_ck_is_local (PolKitSession *session, gboolean is_local); +void libpolkit_session_set_ck_is_active (PolKitSession *session, bool is_active); +void libpolkit_session_set_ck_is_local (PolKitSession *session, bool is_local); void libpolkit_session_set_ck_remote_host (PolKitSession *session, const char *remote_host); -gboolean libpolkit_session_get_uid (PolKitSession *session, uid_t *out_uid); -gboolean libpolkit_session_get_seat (PolKitSession *session, PolKitSeat **out_seat); -gboolean libpolkit_session_get_ck_objref (PolKitSession *session, char **out_ck_objref); -gboolean libpolkit_session_get_ck_is_active (PolKitSession *session, gboolean *out_is_active); -gboolean libpolkit_session_get_ck_is_local (PolKitSession *session, gboolean *out_is_local); -gboolean libpolkit_session_get_ck_remote_host (PolKitSession *session, char **out_remote_host); +bool libpolkit_session_get_uid (PolKitSession *session, uid_t *out_uid); +bool libpolkit_session_get_seat (PolKitSession *session, PolKitSeat **out_seat); +bool libpolkit_session_get_ck_objref (PolKitSession *session, char **out_ck_objref); +bool libpolkit_session_get_ck_is_active (PolKitSession *session, bool *out_is_active); +bool libpolkit_session_get_ck_is_local (PolKitSession *session, bool *out_is_local); +bool libpolkit_session_get_ck_remote_host (PolKitSession *session, char **out_remote_host); void libpolkit_session_debug (PolKitSession *session); diff --git a/modules/allow-all/Makefile.am b/modules/allow-all/Makefile.am index 8a09890..a833468 100644 --- a/modules/allow-all/Makefile.am +++ b/modules/allow-all/Makefile.am @@ -9,7 +9,7 @@ INCLUDES = \ -DPACKAGE_LOCALSTATEDIR=\""$(localstatedir)"\" \ -DPACKAGE_LOCALE_DIR=\""$(localedir)"\" \ -D_POSIX_PTHREAD_SEMANTICS -D_REENTRANT \ - @GLIB_CFLAGS@ @DBUS_CFLAGS@ + @DBUS_CFLAGS@ polkitmoduledir = $(libdir)/PolicyKit/modules polkitmodule_LTLIBRARIES = \ @@ -19,7 +19,7 @@ polkitmodule_LTLIBRARIES = \ polkit_module_allow_all_la_SOURCES = polkit-module-allow-all.c polkit_module_allow_all_la_LDFLAGS = -no-undefined -module -avoid-version -polkit_module_allow_all_la_LIBADD = $(top_builddir)/libpolkit/libpolkit.la @GLIB_LIBS@ +polkit_module_allow_all_la_LIBADD = $(top_builddir)/libpolkit/libpolkit.la clean-local : rm -f *~ diff --git a/modules/allow-all/polkit-module-allow-all.c b/modules/allow-all/polkit-module-allow-all.c index e2b25f3..eddee16 100644 --- a/modules/allow-all/polkit-module-allow-all.c +++ b/modules/allow-all/polkit-module-allow-all.c @@ -27,24 +27,15 @@ # include #endif -#include -#include -#include -#include -#include -#include -#include -#include - #include /* The symbol that libpolkit looks up when loading this module */ -gboolean libpolkit_module_set_functions (PolKitModuleInterface *module_interface); +bool libpolkit_module_set_functions (PolKitModuleInterface *module_interface); -static gboolean +static bool _module_init (PolKitModuleInterface *module_interface, int argc, char *argv[]) { - return TRUE; + return true; } static void @@ -72,12 +63,12 @@ _module_can_caller_access_resource (PolKitModuleInterface *module_interface, return LIBPOLKIT_RESULT_YES; } -gboolean +bool libpolkit_module_set_functions (PolKitModuleInterface *module_interface) { - gboolean ret; + bool ret; - ret = FALSE; + ret = false; if (module_interface == NULL) goto out; @@ -86,7 +77,7 @@ libpolkit_module_set_functions (PolKitModuleInterface *module_interface) libpolkit_module_set_func_can_session_access_resource (module_interface, _module_can_session_access_resource); libpolkit_module_set_func_can_caller_access_resource (module_interface, _module_can_caller_access_resource); - ret = TRUE; + ret = true; out: return ret; } diff --git a/modules/default/Makefile.am b/modules/default/Makefile.am index 6167cc4..91f49d4 100644 --- a/modules/default/Makefile.am +++ b/modules/default/Makefile.am @@ -9,7 +9,7 @@ INCLUDES = \ -DPACKAGE_LOCALSTATEDIR=\""$(localstatedir)"\" \ -DPACKAGE_LOCALE_DIR=\""$(localedir)"\" \ -D_POSIX_PTHREAD_SEMANTICS -D_REENTRANT \ - @GLIB_CFLAGS@ @DBUS_CFLAGS@ + @DBUS_CFLAGS@ polkitmoduledir = $(libdir)/PolicyKit/modules polkitmodule_LTLIBRARIES = \ @@ -19,7 +19,7 @@ polkitmodule_LTLIBRARIES = \ polkit_module_default_la_SOURCES = polkit-module-default.c polkit_module_default_la_LDFLAGS = -no-undefined -module -avoid-version -polkit_module_default_la_LIBADD = $(top_builddir)/libpolkit/libpolkit.la @GLIB_LIBS@ +polkit_module_default_la_LIBADD = $(top_builddir)/libpolkit/libpolkit.la clean-local : rm -f *~ diff --git a/modules/default/polkit-module-default.c b/modules/default/polkit-module-default.c index 418c1d2..09b25e3 100644 --- a/modules/default/polkit-module-default.c +++ b/modules/default/polkit-module-default.c @@ -27,26 +27,17 @@ # include #endif -#include -#include -#include -#include -#include -#include -#include -#include - #include /* The symbol that libpolkit looks up when loading this module */ -gboolean libpolkit_module_set_functions (PolKitModuleInterface *module_interface); +bool libpolkit_module_set_functions (PolKitModuleInterface *module_interface); -static gboolean +static bool _module_init (PolKitModuleInterface *module_interface, int argc, char *argv[]) { - return TRUE; + return true; } static void @@ -96,12 +87,12 @@ _module_can_caller_access_resource (PolKitModuleInterface *module_interface, caller); } -gboolean +bool libpolkit_module_set_functions (PolKitModuleInterface *module_interface) { - gboolean ret; + bool ret; - ret = FALSE; + ret = false; if (module_interface == NULL) goto out; @@ -110,7 +101,7 @@ libpolkit_module_set_functions (PolKitModuleInterface *module_interface) libpolkit_module_set_func_can_session_access_resource (module_interface, _module_can_session_access_resource); libpolkit_module_set_func_can_caller_access_resource (module_interface, _module_can_caller_access_resource); - ret = TRUE; + ret = true; out: return ret; } diff --git a/modules/deny-all/Makefile.am b/modules/deny-all/Makefile.am index d6a134a..345dcf4 100644 --- a/modules/deny-all/Makefile.am +++ b/modules/deny-all/Makefile.am @@ -9,7 +9,7 @@ INCLUDES = \ -DPACKAGE_LOCALSTATEDIR=\""$(localstatedir)"\" \ -DPACKAGE_LOCALE_DIR=\""$(localedir)"\" \ -D_POSIX_PTHREAD_SEMANTICS -D_REENTRANT \ - @GLIB_CFLAGS@ @DBUS_CFLAGS@ + @DBUS_CFLAGS@ polkitmoduledir = $(libdir)/PolicyKit/modules polkitmodule_LTLIBRARIES = \ @@ -19,7 +19,7 @@ polkitmodule_LTLIBRARIES = \ polkit_module_deny_all_la_SOURCES = polkit-module-deny-all.c polkit_module_deny_all_la_LDFLAGS = -no-undefined -module -avoid-version -polkit_module_deny_all_la_LIBADD = $(top_builddir)/libpolkit/libpolkit.la @GLIB_LIBS@ +polkit_module_deny_all_la_LIBADD = $(top_builddir)/libpolkit/libpolkit.la clean-local : rm -f *~ diff --git a/modules/deny-all/polkit-module-deny-all.c b/modules/deny-all/polkit-module-deny-all.c index e6206fc..7562312 100644 --- a/modules/deny-all/polkit-module-deny-all.c +++ b/modules/deny-all/polkit-module-deny-all.c @@ -27,24 +27,15 @@ # include #endif -#include -#include -#include -#include -#include -#include -#include -#include - #include /* The symbol that libpolkit looks up when loading this module */ -gboolean libpolkit_module_set_functions (PolKitModuleInterface *module_interface); +bool libpolkit_module_set_functions (PolKitModuleInterface *module_interface); -static gboolean +static bool _module_init (PolKitModuleInterface *module_interface, int argc, char *argv[]) { - return TRUE; + return true; } static void @@ -72,12 +63,12 @@ _module_can_caller_access_resource (PolKitModuleInterface *module_interface, return LIBPOLKIT_RESULT_NO; } -gboolean +bool libpolkit_module_set_functions (PolKitModuleInterface *module_interface) { - gboolean ret; + bool ret; - ret = FALSE; + ret = false; if (module_interface == NULL) goto out; @@ -86,7 +77,7 @@ libpolkit_module_set_functions (PolKitModuleInterface *module_interface) libpolkit_module_set_func_can_session_access_resource (module_interface, _module_can_session_access_resource); libpolkit_module_set_func_can_caller_access_resource (module_interface, _module_can_caller_access_resource); - ret = TRUE; + ret = true; out: return ret; } diff --git a/modules/run-program/polkit-module-run-program.c b/modules/run-program/polkit-module-run-program.c index bd4738a..8f02e57 100644 --- a/modules/run-program/polkit-module-run-program.c +++ b/modules/run-program/polkit-module-run-program.c @@ -27,26 +27,18 @@ # include #endif -#include -#include -#include -#include -#include -#include -#include -#include - #include +#include /* The symbol that libpolkit looks up when loading this module */ -gboolean libpolkit_module_set_functions (PolKitModuleInterface *module_interface); +bool libpolkit_module_set_functions (PolKitModuleInterface *module_interface); typedef struct { int program_argc; char **program_argv; } UserData; -static gboolean +static bool _module_init (PolKitModuleInterface *module_interface, int argc, char *argv[]) { int n; @@ -61,18 +53,18 @@ _module_init (PolKitModuleInterface *module_interface, int argc, char *argv[]) if (!g_shell_parse_argv (program, &user_data->program_argc, &user_data->program_argv, NULL)) { - printf ("Cannot parse '%s' - skipping\n", program); + g_warning ("Cannot parse '%s' - skipping", program); goto error; } if (!g_file_test (user_data->program_argv[0], G_FILE_TEST_IS_EXECUTABLE|G_FILE_TEST_IS_REGULAR)) { - printf ("Program '%s' is not an executable file - skipping\n", - user_data->program_argv[0]); + g_warning ("Program '%s' is not an executable file - skipping", + user_data->program_argv[0]); goto error; } - printf ("program = '%s'\n", user_data->program_argv[0]); + g_debug ("program = '%s'", user_data->program_argv[0]); /* TODO: * O_o o_O... we could monitor the executable file :-) and trigger config changes! @@ -85,12 +77,12 @@ _module_init (PolKitModuleInterface *module_interface, int argc, char *argv[]) libpolkit_module_set_user_data (module_interface, user_data); - return TRUE; + return true; error: if (user_data->program_argv != NULL) g_strfreev (user_data->program_argv); g_free (user_data); - return FALSE; + return false; } static void @@ -128,7 +120,7 @@ _add_action_param_to_env (PolKitAction *action, const char *key, const char *val g_free (upper); } -static gboolean +static bool _add_action_to_env (PolKitAction *action, GPtrArray *envp) { char *p_id; @@ -137,12 +129,12 @@ _add_action_to_env (PolKitAction *action, GPtrArray *envp) g_ptr_array_add (envp, g_strdup_printf ("POLKIT_ACTION_ID=%s", p_id)); libpolkit_action_param_foreach (action, _add_action_param_to_env, envp); - return TRUE; + return true; error: - return FALSE; + return false; } -static gboolean +static bool _add_resource_to_env (PolKitResource *resource, GPtrArray *envp) { char *r_type; @@ -153,30 +145,30 @@ _add_resource_to_env (PolKitResource *resource, GPtrArray *envp) goto error; g_ptr_array_add (envp, g_strdup_printf ("POLKIT_RESOURCE_TYPE=%s", r_type)); g_ptr_array_add (envp, g_strdup_printf ("POLKIT_RESOURCE_ID=%s", r_id)); - return TRUE; + return true; error: - return FALSE; + return false; } -static gboolean +static bool _add_seat_to_env (PolKitSeat *seat, GPtrArray *envp) { char *s_ck_objref; if (!libpolkit_seat_get_ck_objref (seat, &s_ck_objref)) goto error; g_ptr_array_add (envp, g_strdup_printf ("POLKIT_SEAT_CK_OBJREF=%s", s_ck_objref)); - return TRUE; + return true; error: - return FALSE; + return false; } -static gboolean +static bool _add_session_to_env (PolKitSession *session, GPtrArray *envp) { uid_t s_uid; char *s_ck_objref; - gboolean s_ck_is_active; - gboolean s_ck_is_local; + bool s_ck_is_active; + bool s_ck_is_local; char *s_ck_remote_host; PolKitSeat *s_seat; @@ -202,12 +194,12 @@ _add_session_to_env (PolKitSession *session, GPtrArray *envp) g_ptr_array_add (envp, g_strdup_printf ("POLKIT_SESSION_CK_IS_LOCAL=%d", s_ck_is_local)); if (!s_ck_is_local) g_ptr_array_add (envp, g_strdup_printf ("POLKIT_SESSION_CK_REMOTE_HOST=%s", s_ck_remote_host)); - return TRUE; + return true; error: - return FALSE; + return false; } -static gboolean +static bool _add_caller_to_env (PolKitCaller *caller, GPtrArray *envp) { uid_t c_uid; @@ -235,23 +227,23 @@ _add_caller_to_env (PolKitCaller *caller, GPtrArray *envp) g_ptr_array_add (envp, g_strdup_printf ("POLKIT_CALLER_DBUS_NAME=%s", c_dbus_name)); if (c_selinux_context != NULL) g_ptr_array_add (envp, g_strdup_printf ("POLKIT_CALLER_SELINUX_CONTEXT=%s", c_selinux_context)); - return TRUE; + return true; error: - return FALSE; + return false; } -static gboolean +static bool _run_program (UserData *user_data, char **envp, PolKitResult *result) { int n; int exit_status; GError *g_error; char *prog_stdout; - gboolean ret; + bool ret; g_error = NULL; prog_stdout = NULL; - ret = FALSE; + ret = false; if (!g_spawn_sync ("/", user_data->program_argv, @@ -263,7 +255,7 @@ _run_program (UserData *user_data, char **envp, PolKitResult *result) NULL, &exit_status, &g_error)) { - printf ("error spawning '%s': %s\n", user_data->program_argv[0], g_error->message); + g_warning ("error spawning '%s': %s", user_data->program_argv[0], g_error->message); g_error_free (g_error); goto error; } @@ -278,11 +270,11 @@ _run_program (UserData *user_data, char **envp, PolKitResult *result) prog_stdout[n] = '\0'; if (!libpolkit_result_from_string_representation (prog_stdout, result)) { - printf ("malformed result '%s' from program\n", prog_stdout); + g_warning ("malformed result '%s' from program", prog_stdout); goto error; } - ret = TRUE; + ret = true; error: g_free (prog_stdout); return ret; @@ -364,12 +356,12 @@ error: return result; } -gboolean +bool libpolkit_module_set_functions (PolKitModuleInterface *module_interface) { - gboolean ret; + bool ret; - ret = FALSE; + ret = false; if (module_interface == NULL) goto out; @@ -378,7 +370,7 @@ libpolkit_module_set_functions (PolKitModuleInterface *module_interface) libpolkit_module_set_func_can_session_access_resource (module_interface, _module_can_session_access_resource); libpolkit_module_set_func_can_caller_access_resource (module_interface, _module_can_caller_access_resource); - ret = TRUE; + ret = true; out: return ret; } diff --git a/tools/Makefile.am b/tools/Makefile.am index cef6336..8b8475b 100644 --- a/tools/Makefile.am +++ b/tools/Makefile.am @@ -20,7 +20,7 @@ polkit_check_session_SOURCES = polkit-check-session.c polkit_check_session_LDADD = @GLIB_LIBS@ @DBUS_LIBS@ $(top_builddir)/libpolkit/libpolkit.la polkit_policy_file_validate_SOURCES = polkit-policy-file-validate.c -polkit_policy_file_validate_LDADD = @GLIB_LIBS@ $(top_builddir)/libpolkit/libpolkit.la +polkit_policy_file_validate_LDADD = $(top_builddir)/libpolkit/libpolkit.la clean-local : rm -f *~ diff --git a/tools/polkit-check-caller.c b/tools/polkit-check-caller.c index 874c7f2..49c6f03 100644 --- a/tools/polkit-check-caller.c +++ b/tools/polkit-check-caller.c @@ -37,6 +37,8 @@ #include +#include + static void usage (int argc, char *argv[]) { @@ -78,7 +80,7 @@ main (int argc, char *argv[]) PolKitResource *resource; PolKitAction *action; gboolean allowed; - GError *g_error; + PolKitError *p_error; GPtrArray *params; int n; char *param_key; @@ -166,11 +168,11 @@ main (int argc, char *argv[]) return 1; } - g_error = NULL; + p_error = NULL; pol_ctx = libpolkit_context_new (); - if (!libpolkit_context_init (pol_ctx, &g_error)) { - fprintf (stderr, "error: libpolkit_context_init: %s\n", g_error->message); - g_error_free (g_error); + if (!libpolkit_context_init (pol_ctx, &p_error)) { + fprintf (stderr, "error: libpolkit_context_init: %s\n", polkit_error_get_error_message (p_error)); + polkit_error_free (p_error); return 1; } diff --git a/tools/polkit-check-session.c b/tools/polkit-check-session.c index da5ada9..cbde113 100644 --- a/tools/polkit-check-session.c +++ b/tools/polkit-check-session.c @@ -37,6 +37,8 @@ #include +#include + static void usage (int argc, char *argv[]) { @@ -79,7 +81,7 @@ main (int argc, char *argv[]) PolKitResource *resource; PolKitAction *action; gboolean allowed; - GError *g_error; + PolKitError *p_error; GPtrArray *params; int n; char *param_key; @@ -169,11 +171,11 @@ main (int argc, char *argv[]) return 1; } - g_error = NULL; + p_error = NULL; pol_ctx = libpolkit_context_new (); - if (!libpolkit_context_init (pol_ctx, &g_error)) { - fprintf (stderr, "error: libpolkit_context_init: %s\n", g_error->message); - g_error_free (g_error); + if (!libpolkit_context_init (pol_ctx, &p_error)) { + fprintf (stderr, "error: libpolkit_context_init: %s\n", polkit_error_get_error_message (p_error)); + polkit_error_free (p_error); return 1; } diff --git a/tools/polkit-policy-file-validate.c b/tools/polkit-policy-file-validate.c index 07c59d0..604d7c4 100644 --- a/tools/polkit-policy-file-validate.c +++ b/tools/polkit-policy-file-validate.c @@ -25,6 +25,7 @@ # include #endif +#include #include #include #include @@ -53,16 +54,17 @@ usage (int argc, char *argv[]) "If not, the program exits with a non-zero exit code.\n"); } -static gboolean +static bool validate_file (const char *file) { PolKitPolicyFile *priv_file; - GError *error = NULL; + PolKitError *error; + error = NULL; priv_file = libpolkit_policy_file_new (file, &error); if (priv_file == NULL) { - printf ("%s did not validate: %s\n", file, error->message); - g_error_free (error); + printf ("%s did not validate: %s\n", file, polkit_error_get_error_message (error)); + polkit_error_free (error); return FALSE; } libpolkit_policy_file_unref (priv_file); -- 2.7.4