connection: kdbus_ep_policy_check_own_access() -> kdbus_conn_policy_own_name()
authorDavid Herrmann <dh.herrmann@gmail.com>
Fri, 19 Dec 2014 11:08:28 +0000 (12:08 +0100)
committerDavid Herrmann <dh.herrmann@gmail.com>
Fri, 19 Dec 2014 11:08:28 +0000 (12:08 +0100)
The OWN access check is not a property of an endpoint, but of a
connection. Move the function to connection.c and drop the "endpoint"
argument.

Furthermore, prepare for further renamed and use the common
kdbus_conn_policy() prefix.

Signed-off-by: David Herrmann <dh.herrmann@gmail.com>
connection.c
connection.h
endpoint.c
endpoint.h
names.c

index 0df3730350c2c9a8de2a4fa2c27d94556e4d7958..7c5575f625dfa8f57148f585ae2a5ac6b95e0b3d 100644 (file)
@@ -1900,3 +1900,30 @@ bool kdbus_conn_has_name(struct kdbus_conn *conn, const char *name)
 
        return match;
 }
+
+/**
+ * kdbus_conn_policy_own_name() - verify a connection can own the given name
+ * @conn:              Connection
+ * @name:              Name
+ *
+ * This verifies that @conn is allowed to acquire the well-known name @name.
+ *
+ * Return: 0 if allowed, negative error code if not.
+ */
+int kdbus_conn_policy_own_name(struct kdbus_conn *conn, const char *name)
+{
+       int ret;
+
+       if (conn->ep->has_policy) {
+               ret = kdbus_policy_check_own_access(&conn->ep->policy_db,
+                                                   conn->cred, name);
+               if (ret < 0)
+                       return ret;
+       }
+
+       if (conn->privileged)
+               return 0;
+
+       return kdbus_policy_check_own_access(&conn->ep->bus->policy_db,
+                                            conn->cred, name);
+}
index 5b5073c3ef3472c754a1a3f2e5c8775d55f93993..43b19c6ed5e5fb05b3f0d65e531e51dc2e1958b6 100644 (file)
@@ -136,6 +136,8 @@ int kdbus_conn_move_messages(struct kdbus_conn *conn_dst,
                             u64 name_id);
 bool kdbus_conn_has_name(struct kdbus_conn *conn, const char *name);
 
+int kdbus_conn_policy_own_name(struct kdbus_conn *conn, const char *name);
+
 /* command dispatcher */
 int kdbus_cmd_msg_recv(struct kdbus_conn *conn,
                       struct kdbus_cmd_recv *recv);
index dafe2fb64ae4bc1ec21b130e75bd8d3291270d2e..6b9c914a702e5aee885949cf36085618f02da09d 100644 (file)
@@ -445,35 +445,3 @@ int kdbus_ep_policy_check_talk_access(struct kdbus_ep *ep,
        return kdbus_policy_check_talk_access(&ep->bus->policy_db,
                                              conn_src, conn_dst);
 }
-
-/**
- * kdbus_ep_policy_check_own_access() - verify a connection can own the passed
- *                                     name
- * @ep:                        Endpoint to operate on
- * @conn:              Connection that acquires a name
- * @name:              Name that is about to be acquired
- *
- * This verifies that @conn is allowed to acquire the well-known name @name via
- * the endpoint @ep.
- *
- * Return: 0 if allowed, negative error code if not.
- */
-int kdbus_ep_policy_check_own_access(struct kdbus_ep *ep,
-                                    const struct kdbus_conn *conn,
-                                    const char *name)
-{
-       int ret;
-
-       if (ep->has_policy) {
-               ret = kdbus_policy_check_own_access(&ep->policy_db,
-                                                   conn->cred, name);
-               if (ret < 0)
-                       return ret;
-       }
-
-       if (conn->privileged)
-               return 0;
-
-       return kdbus_policy_check_own_access(&ep->bus->policy_db,
-                                            conn->cred, name);
-}
index 07bdb899e29a0d71e60304636920c60e47de1d62..002f3c2eab84371b42c824ca86799f47531c6db3 100644 (file)
@@ -79,8 +79,5 @@ int kdbus_ep_policy_check_src_names(struct kdbus_ep *ep,
 int kdbus_ep_policy_check_talk_access(struct kdbus_ep *ep,
                                      struct kdbus_conn *conn_src,
                                      struct kdbus_conn *conn_dst);
-int kdbus_ep_policy_check_own_access(struct kdbus_ep *ep,
-                                    const struct kdbus_conn *conn,
-                                    const char *name);
 
 #endif
diff --git a/names.c b/names.c
index 6147dac2a6e05374806f5f184f2e9a547607b52c..11550c9184b56d16c4f5daaff0a178d22a9b5cd4 100644 (file)
--- a/names.c
+++ b/names.c
@@ -657,7 +657,7 @@ int kdbus_cmd_name_acquire(struct kdbus_name_registry *reg,
                goto out_dec;
        }
 
-       ret = kdbus_ep_policy_check_own_access(conn->ep, conn, name);
+       ret = kdbus_conn_policy_own_name(conn, name);
        if (ret < 0)
                goto out_dec;