>From 3bdb494aa2be26ed2b8ba9115994fd5f4939d5fa Mon Sep 17 00:00:00 2001

From: Sung-Jin Park <[email protected]>

Date: Mon, 11 Jan 2016 18:51:21 +0900

Subject: [PATCH] server: Add an API to get the socket fd for a client

 

This adds an API to get the socket fd for a client.

The client socket fd can be used for a wayland compositor to validate a
request

from a client.

For instance, this will be helpful in some linux distributions, in which
SELinux

or SMACK is enabled. In those environments, each file (including socket)
will have

each security context in its inode as xattr member variable. A wayland
compositor

can validate a client request by getting socket fd of the client and by
checking

the security context associated with the socket fd.

 

Signed-off-by: Sung-Jin Park <[email protected]>

---

src/wayland-server-core.h |  3 +++

src/wayland-server.c      | 15 +++++++++++++++

2 files changed, 18 insertions(+)

 

diff --git a/src/wayland-server-core.h b/src/wayland-server-core.h

index 1700cd3..0d5fbc1 100644

--- a/src/wayland-server-core.h

+++ b/src/wayland-server-core.h

@@ -182,6 +182,9 @@ void

wl_client_get_credentials(struct wl_client *client,

                                 pid_t *pid, uid_t *uid, gid_t *gid);

+int

+wl_client_get_socket_fd(struct wl_client *client);

+

void

wl_client_add_destroy_listener(struct wl_client *client,

                                      struct wl_listener *listener);

diff --git a/src/wayland-server.c b/src/wayland-server.c

index 55c0cf9..973a71c 100644

--- a/src/wayland-server.c

+++ b/src/wayland-server.c

@@ -491,6 +491,21 @@ wl_client_get_credentials(struct wl_client *client,

                    *gid = client->ucred.gid;

}

+/** Get the socket fd for the client

+ *

+ * \param client The display object

+ * \return fd The fd to use for the connection

+ *

+ * This function returns the client socket fd for the given client.

+ *

+ * \memberof wl_client

+ */

+WL_EXPORT int

+wl_client_get_socket_fd(struct wl_client *client)

+{

+         return client->connection->fd;

+}

+

/** Look up an object in the client name space

  *

  * \param client The client object

-- 

1.9.1

Attachment: 0001-server-Add-an-API-to-get-the-socket-fd-for-a-client.patch
Description: Binary data

_______________________________________________
wayland-devel mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/wayland-devel

Reply via email to