Add hook for privileges check
authorMarcel Holtmann <marcel@holtmann.org>
Wed, 13 Aug 2008 04:45:07 +0000 (06:45 +0200)
committerMarcel Holtmann <marcel@holtmann.org>
Wed, 13 Aug 2008 04:45:07 +0000 (06:45 +0200)
src/connman.h
src/security.c

index fde2bd3..19322fa 100644 (file)
@@ -56,6 +56,8 @@ void __connman_plugin_cleanup(void);
 
 #include <connman/security.h>
 
+int __connman_security_check_privileges(DBusMessage *message);
+
 #include <connman/driver.h>
 #include <connman/element.h>
 
index 4539ba1..cf4ae7a 100644 (file)
@@ -60,3 +60,32 @@ void connman_security_unregister(struct connman_security *security)
 
        g_static_rw_lock_writer_unlock(&security_lock);
 }
+
+int __connman_security_check_privileges(DBusMessage *message)
+{
+       GSList *list;
+       const char *sender;
+       int err = -EPERM;
+
+       DBG("message %p", message);
+
+       sender = dbus_message_get_sender(message);
+
+       g_static_rw_lock_reader_lock(&security_lock);
+
+       for (list = security_list; list; list = list->next) {
+               struct connman_security *security = list->data;
+               int err;
+
+               DBG("%s", security->name);
+
+               if (security->authorize_sender) {
+                       err = security->authorize_sender(sender);
+                       break;
+               }
+       }
+
+       g_static_rw_lock_reader_unlock(&security_lock);
+
+       return err;
+}