PolicyKit: Branch 'master'

David Zeuthen david at kemper.freedesktop.org
Sat Oct 20 18:43:08 PDT 2007


 polkit-dbus/polkit-dbus.h         |    3 ++
 polkit-grant/polkit-grant.h       |    3 ++
 polkit/polkit-action.h            |    4 +++
 polkit/polkit-caller.h            |    4 +++
 polkit/polkit-config.h            |    5 ++++
 polkit/polkit-context.h           |    4 +++
 polkit/polkit-error.h             |    6 +++++
 polkit/polkit-grant-database.h    |    4 +++
 polkit/polkit-policy-cache.c      |   42 ++++++++++++++++++++++++++++++++++++++
 polkit/polkit-policy-cache.h      |   10 +++++++++
 polkit/polkit-policy-default.h    |    5 ++++
 polkit/polkit-policy-file-entry.h |    4 +++
 polkit/polkit-policy-file.h       |    5 ++++
 polkit/polkit-result.h            |    4 +++
 polkit/polkit-seat.h              |    4 +++
 polkit/polkit-session.h           |    4 +++
 polkit/polkit-types.h             |   12 ++++++++++
 polkit/polkit-utils.h             |    4 +++
 polkit/polkit.h                   |    1 
 19 files changed, 128 insertions(+)

New commits:
commit f455c2f6077225d8b87a9a9e9d7e237c36a7ca13
Author: David Zeuthen <davidz at redhat.com>
Date:   Sat Oct 20 21:42:43 2007 -0400

    add C++ include guards and a new method to get pfe's by annotation

diff --git a/polkit-dbus/polkit-dbus.h b/polkit-dbus/polkit-dbus.h
index 10b5c90..95166a5 100644
--- a/polkit-dbus/polkit-dbus.h
+++ b/polkit-dbus/polkit-dbus.h
@@ -30,6 +30,8 @@
 #include <polkit/polkit.h>
 #include <dbus/dbus.h>
 
+POLKIT_BEGIN_DECLS
+
 PolKitSession *polkit_session_new_from_objpath   (DBusConnection *con, const char *objpath, uid_t uid, DBusError *error);
 PolKitSession *polkit_session_new_from_cookie    (DBusConnection *con, const char *cookie, DBusError *error);
 
@@ -54,6 +56,7 @@ PolKitCaller  *polkit_tracker_get_caller_from_dbus_name  (PolKitTracker *pk_trac
 
 PolKitCaller  *polkit_tracker_get_caller_from_pid        (PolKitTracker *pk_tracker, pid_t pid, DBusError *error);
 
+POLKIT_END_DECLS
 
 #endif /* POLKIT_DBUS_H */
 
diff --git a/polkit-grant/polkit-grant.h b/polkit-grant/polkit-grant.h
index 630d0ae..2fdf6a4 100644
--- a/polkit-grant/polkit-grant.h
+++ b/polkit-grant/polkit-grant.h
@@ -28,6 +28,8 @@
 
 #include <polkit/polkit.h>
 
+POLKIT_BEGIN_DECLS
+
 struct _PolKitGrant;
 typedef struct _PolKitGrant PolKitGrant;
 
@@ -360,6 +362,7 @@ void          polkit_grant_cancel_auth   (PolKitGrant *polkit_grant);
 void          polkit_grant_io_func       (PolKitGrant *polkit_grant, int fd);
 void          polkit_grant_child_func    (PolKitGrant *polkit_grant, pid_t pid, int exit_code);
 
+POLKIT_END_DECLS
 
 #endif /* POLKIT_GRANT_H */
 
diff --git a/polkit/polkit-action.h b/polkit/polkit-action.h
index 19e911d..d062124 100644
--- a/polkit/polkit-action.h
+++ b/polkit/polkit-action.h
@@ -32,6 +32,8 @@
 
 #include <polkit/polkit-types.h>
 
+POLKIT_BEGIN_DECLS
+
 struct _PolKitAction;
 typedef struct _PolKitAction PolKitAction;
 
@@ -46,6 +48,8 @@ polkit_bool_t polkit_action_validate      (PolKitAction *action);
 
 polkit_bool_t polkit_action_validate_id   (const char   *action_id);
 
+POLKIT_END_DECLS
+
 #endif /* POLKIT_ACTION_H */
 
 
diff --git a/polkit/polkit-caller.h b/polkit/polkit-caller.h
index b6b63eb..ad52102 100644
--- a/polkit/polkit-caller.h
+++ b/polkit/polkit-caller.h
@@ -34,6 +34,8 @@
 #include <polkit/polkit-session.h>
 #include <sys/types.h>
 
+POLKIT_BEGIN_DECLS
+
 struct _PolKitCaller;
 typedef struct _PolKitCaller PolKitCaller;
 
@@ -54,4 +56,6 @@ polkit_bool_t     polkit_caller_get_ck_session      (PolKitCaller   *caller, Pol
 void              polkit_caller_debug               (PolKitCaller   *caller);
 polkit_bool_t     polkit_caller_validate            (PolKitCaller   *caller);
 
+POLKIT_END_DECLS
+
 #endif /* POLKIT_H */
diff --git a/polkit/polkit-config.h b/polkit/polkit-config.h
index 40f1590..aed5655 100644
--- a/polkit/polkit-config.h
+++ b/polkit/polkit-config.h
@@ -32,6 +32,7 @@
 
 #include <sys/types.h>
 #include <regex.h>
+#include <polkit/polkit-types.h>
 #include <polkit/polkit-error.h>
 #include <polkit/polkit-types.h>
 #include <polkit/polkit-result.h>
@@ -39,6 +40,8 @@
 #include <polkit/polkit-session.h>
 #include <polkit/polkit-caller.h>
 
+POLKIT_BEGIN_DECLS
+
 struct _PolKitConfig;
 typedef struct _PolKitConfig PolKitConfig;
 
@@ -78,6 +81,8 @@ polkit_bool_t polkit_config_determine_admin_auth_type (PolKitConfig
                                                        PolKitConfigAdminAuthType   *out_admin_auth_type,
                                                        const char                 **out_data);
 
+POLKIT_END_DECLS
+
 #endif /* POLKIT_CONFIG_H */
 
 
diff --git a/polkit/polkit-context.h b/polkit/polkit-context.h
index 867265a..5c66514 100644
--- a/polkit/polkit-context.h
+++ b/polkit/polkit-context.h
@@ -41,6 +41,8 @@
 #include <polkit/polkit-policy-cache.h>
 #include <polkit/polkit-config.h>
 
+POLKIT_BEGIN_DECLS
+
 struct _PolKitContext;
 typedef struct _PolKitContext PolKitContext;
 
@@ -165,6 +167,8 @@ PolKitResult polkit_context_can_caller_do_action     (PolKitContext   *pk_contex
 
 PolKitConfig *polkit_context_get_config (PolKitContext *pk_context, PolKitError **error);
 
+POLKIT_END_DECLS
+
 #endif /* POLKIT_CONTEXT_H */
 
 
diff --git a/polkit/polkit-error.h b/polkit/polkit-error.h
index cd5fc71..91d85cc 100644
--- a/polkit/polkit-error.h
+++ b/polkit/polkit-error.h
@@ -30,6 +30,10 @@
 #ifndef POLKIT_ERROR_H
 #define POLKIT_ERROR_H
 
+#include <polkit/polkit-types.h>
+
+POLKIT_BEGIN_DECLS
+
 /**
  * PolKitErrorCode:
  * @POLKIT_ERROR_OUT_OF_MEMORY: Out of memory
@@ -51,4 +55,6 @@ 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)));
 
+POLKIT_END_DECLS
+
 #endif /* POLKIT_ERROR_H */
diff --git a/polkit/polkit-grant-database.h b/polkit/polkit-grant-database.h
index 33a6654..e04dac5 100644
--- a/polkit/polkit-grant-database.h
+++ b/polkit/polkit-grant-database.h
@@ -28,6 +28,8 @@
 
 #include <polkit/polkit.h>
 
+POLKIT_BEGIN_DECLS
+
 PolKitResult _polkit_grantdb_check_can_caller_do_action (PolKitContext         *pk_context,
                                                          PolKitAction          *action,
                                                          PolKitCaller          *caller);
@@ -78,4 +80,6 @@ void _polkit_grantdb_foreach (PolKitGrantDbForeachFunc callback, void *user_data
 
 polkit_bool_t _polkit_grantdb_delete_for_user (uid_t uid);
 
+POLKIT_END_DECLS
+
 #endif /* POLKIT_GRANT_DATABASE_H */
diff --git a/polkit/polkit-policy-cache.c b/polkit/polkit-policy-cache.c
index d4e4a06..0fcd9c2 100644
--- a/polkit/polkit-policy-cache.c
+++ b/polkit/polkit-policy-cache.c
@@ -301,3 +301,45 @@ polkit_policy_cache_foreach (PolKitPolicyCache *policy_cache,
                 callback (policy_cache, pfe, user_data);
         }
 }
+
+/**
+ * polkit_policy_cache_get_entry_by_annotation:
+ * @policy_cache: the policy cache
+ * @annotation_key: the key to check for
+ * @annotation_value: the value to check for
+ *
+ * Find the first policy file entry where a given annotation matches a
+ * given value. Note that there is nothing preventing the existence of
+ * multiple policy file entries matching this criteria; it would
+ * however be a packaging bug if this situation occured.
+ *
+ * Returns: The first #PolKitPolicyFileEntry matching the search
+ * criteria. The caller shall not unref this object. Returns #NULL if
+ * there are no policy file entries matching the search criteria.
+ */
+PolKitPolicyFileEntry* 
+polkit_policy_cache_get_entry_by_annotation (PolKitPolicyCache *policy_cache, 
+                                             const char *annotation_key,
+                                             const char *annotation_value)
+{
+        GSList *i;
+
+        g_return_val_if_fail (policy_cache != NULL, NULL);
+        g_return_val_if_fail (annotation_key != NULL, NULL);
+        g_return_val_if_fail (annotation_value != NULL, NULL);
+
+        for (i = policy_cache->priv_entries; i != NULL; i = g_slist_next (i)) {
+                const char *value;
+                PolKitPolicyFileEntry *pfe = i->data;
+
+                value = polkit_policy_file_entry_get_annotation (pfe, annotation_key);
+                if (value == NULL)
+                        continue;
+
+                if (strcmp (annotation_value, value) == 0) {
+                        return pfe;
+                }
+        }
+
+        return NULL;
+}
diff --git a/polkit/polkit-policy-cache.h b/polkit/polkit-policy-cache.h
index 535f7e0..e7e5662 100644
--- a/polkit/polkit-policy-cache.h
+++ b/polkit/polkit-policy-cache.h
@@ -30,10 +30,13 @@
 #ifndef POLKIT_POLICY_CACHE_H
 #define POLKIT_POLICY_CACHE_H
 
+#include <polkit/polkit-types.h>
 #include <polkit/polkit-error.h>
 #include <polkit/polkit-action.h>
 #include <polkit/polkit-policy-file-entry.h>
 
+POLKIT_BEGIN_DECLS
+
 struct _PolKitPolicyCache;
 typedef struct _PolKitPolicyCache PolKitPolicyCache;
 
@@ -56,10 +59,17 @@ PolKitPolicyFileEntry* polkit_policy_cache_get_entry (PolKitPolicyCache *policy_
                                                       PolKitAction *action);
 PolKitPolicyFileEntry* polkit_policy_cache_get_entry_by_id (PolKitPolicyCache *policy_cache, 
                                                             const char *action_id);
+
+PolKitPolicyFileEntry* polkit_policy_cache_get_entry_by_annotation (PolKitPolicyCache *policy_cache, 
+                                                                    const char *annotation_key,
+                                                                    const char *annotation_value);
+
 void                   polkit_policy_cache_foreach   (PolKitPolicyCache *policy_cache, 
                                                       PolKitPolicyCacheForeachFunc callback,
                                                       void *user_data);
 
+POLKIT_END_DECLS
+
 #endif /* POLKIT_POLICY_CACHE_H */
 
 
diff --git a/polkit/polkit-policy-default.h b/polkit/polkit-policy-default.h
index b2dced8..a9f6146 100644
--- a/polkit/polkit-policy-default.h
+++ b/polkit/polkit-policy-default.h
@@ -30,12 +30,15 @@
 #ifndef POLKIT_POLICY_DEFAULT_H
 #define POLKIT_POLICY_DEFAULT_H
 
+#include <polkit/polkit-types.h>
 #include <polkit/polkit-result.h>
 #include <polkit/polkit-action.h>
 #include <polkit/polkit-session.h>
 #include <polkit/polkit-caller.h>
 #include <polkit/polkit-error.h>
 
+POLKIT_BEGIN_DECLS
+
 struct _PolKitPolicyDefault;
 typedef struct _PolKitPolicyDefault PolKitPolicyDefault;
 
@@ -57,6 +60,8 @@ PolKitResult polkit_policy_default_get_allow_active (PolKitPolicyDefault *policy
 
 /* TODO: export knobs for "default policy" */
 
+POLKIT_END_DECLS
+
 #endif /* POLKIT_POLICY_DEFAULT_H */
 
 
diff --git a/polkit/polkit-policy-file-entry.h b/polkit/polkit-policy-file-entry.h
index 2046330..8eb88a9 100644
--- a/polkit/polkit-policy-file-entry.h
+++ b/polkit/polkit-policy-file-entry.h
@@ -30,9 +30,12 @@
 #ifndef POLKIT_POLICY_FILE_ENTRY_H
 #define POLKIT_POLICY_FILE_ENTRY_H
 
+#include <polkit/polkit-types.h>
 #include <polkit/polkit-result.h>
 #include <polkit/polkit-policy-default.h>
 
+POLKIT_BEGIN_DECLS
+
 struct _PolKitPolicyFileEntry;
 typedef struct _PolKitPolicyFileEntry PolKitPolicyFileEntry;
 
@@ -66,6 +69,7 @@ void                   polkit_policy_file_entry_annotations_foreach (PolKitPolic
 const char            *polkit_policy_file_entry_get_annotation (PolKitPolicyFileEntry *policy_file_entry,
                                                                 const char *key);
 
+POLKIT_END_DECLS
 
 #endif /* POLKIT_POLICY_FILE_ENTRY_H */
 
diff --git a/polkit/polkit-policy-file.h b/polkit/polkit-policy-file.h
index 85e89b0..ac590c3 100644
--- a/polkit/polkit-policy-file.h
+++ b/polkit/polkit-policy-file.h
@@ -30,9 +30,12 @@
 #ifndef POLKIT_POLICY_FILE_H
 #define POLKIT_POLICY_FILE_H
 
+#include <polkit/polkit-types.h>
 #include <polkit/polkit-error.h>
 #include <polkit/polkit-policy-file-entry.h>
 
+POLKIT_BEGIN_DECLS
+
 struct _PolKitPolicyFile;
 typedef struct _PolKitPolicyFile PolKitPolicyFile;
 
@@ -57,6 +60,8 @@ void              polkit_policy_file_entry_foreach (PolKitPolicyFile
                                                        PolKitPolicyFileEntryForeachFunc  cb,
                                                        void                              *user_data);
 
+POLKIT_END_DECLS
+
 #endif /* POLKIT_POLICY_FILE_H */
 
 
diff --git a/polkit/polkit-result.h b/polkit/polkit-result.h
index 92c6a8e..3ebd17d 100644
--- a/polkit/polkit-result.h
+++ b/polkit/polkit-result.h
@@ -32,6 +32,8 @@
 
 #include <polkit/polkit-types.h>
 
+POLKIT_BEGIN_DECLS
+
 /**
  * PolKitResult:
  * @POLKIT_RESULT_UNKNOWN: The result is unknown / cannot be
@@ -88,4 +90,6 @@ polkit_result_to_string_representation (PolKitResult result);
 polkit_bool_t
 polkit_result_from_string_representation (const char *string, PolKitResult *out_result);
 
+POLKIT_END_DECLS
+
 #endif /* POLKIT_RESULT_H */
diff --git a/polkit/polkit-seat.h b/polkit/polkit-seat.h
index 5f322a8..ecb9958 100644
--- a/polkit/polkit-seat.h
+++ b/polkit/polkit-seat.h
@@ -32,6 +32,8 @@
 
 #include <polkit/polkit-types.h>
 
+POLKIT_BEGIN_DECLS
+
 struct _PolKitSeat;
 typedef struct _PolKitSeat PolKitSeat;
 
@@ -44,6 +46,8 @@ polkit_bool_t polkit_seat_get_ck_objref (PolKitSeat *seat, char       **out_ck_o
 void          polkit_seat_debug         (PolKitSeat *seat);
 polkit_bool_t polkit_seat_validate      (PolKitSeat *seat);
 
+POLKIT_END_DECLS
+
 #endif /* POLKIT_SEAT_H */
 
 
diff --git a/polkit/polkit-session.h b/polkit/polkit-session.h
index 390666d..b1a2abe 100644
--- a/polkit/polkit-session.h
+++ b/polkit/polkit-session.h
@@ -35,6 +35,8 @@
 
 #include <sys/types.h>
 
+POLKIT_BEGIN_DECLS
+
 struct _PolKitSession;
 typedef struct _PolKitSession PolKitSession;
 
@@ -57,4 +59,6 @@ polkit_bool_t  polkit_session_get_ck_remote_host (PolKitSession *session, char
 void           polkit_session_debug              (PolKitSession *session);
 polkit_bool_t  polkit_session_validate           (PolKitSession *session);
 
+POLKIT_END_DECLS
+
 #endif /* POLKIT_SESSION_H */
diff --git a/polkit/polkit-types.h b/polkit/polkit-types.h
index 97a7ab2..529b18d 100644
--- a/polkit/polkit-types.h
+++ b/polkit/polkit-types.h
@@ -30,6 +30,16 @@
 #ifndef POLKIT_TYPES_H
 #define POLKIT_TYPES_H
 
+#ifdef __cplusplus
+#  define POLKIT_BEGIN_DECLS extern "C" {
+#  define POLKIT_END_DECLS }
+#else
+#  define POLKIT_BEGIN_DECLS
+#  define POLKIT_END_DECLS
+#endif
+
+POLKIT_BEGIN_DECLS
+
 /**
  * SECTION:polkit-types
  * @title: Basic types
@@ -59,6 +69,8 @@ typedef unsigned long long polkit_uint64_t;
 #  define FALSE 0
 #endif
 
+POLKIT_END_DECLS
+
 #endif /* POLKIT_TYPES_H */
 
 
diff --git a/polkit/polkit-utils.h b/polkit/polkit-utils.h
index 5dee853..910033a 100644
--- a/polkit/polkit-utils.h
+++ b/polkit/polkit-utils.h
@@ -28,10 +28,14 @@
 
 #include <polkit/polkit-types.h>
 
+POLKIT_BEGIN_DECLS
+
 polkit_bool_t _pk_validate_identifier (const char *identifier);
 
 polkit_bool_t _pk_validate_unique_bus_name (const char *unique_bus_name);
 
+POLKIT_END_DECLS
+
 #endif /* POLKIT_UTILS_H */
 
 
diff --git a/polkit/polkit.h b/polkit/polkit.h
index 581fbe3..096e72b 100644
--- a/polkit/polkit.h
+++ b/polkit/polkit.h
@@ -39,6 +39,7 @@
 #include <polkit/polkit-policy-file.h>
 #include <polkit/polkit-policy-cache.h>
 #include <polkit/polkit-policy-default.h>
+#include <polkit/polkit-config.h>
 #undef _POLKIT_INSIDE_POLKIT_H
 
 #endif /* POLKIT_H */


More information about the hal-commit mailing list