[PATCH] server: Add an API to get the socket fd for a client
박성진
sj76.park at samsung.com
Mon Jan 11 03:59:28 PST 2016
>From 3bdb494aa2be26ed2b8ba9115994fd5f4939d5fa Mon Sep 17 00:00:00 2001
From: Sung-Jin Park <input.hacker at gmail.com>
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 <input.hacker at gmail.com>
---
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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/wayland-devel/attachments/20160111/0ea93118/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-server-Add-an-API-to-get-the-socket-fd-for-a-client.patch
Type: application/octet-stream
Size: 2067 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/wayland-devel/attachments/20160111/0ea93118/attachment-0001.obj>
More information about the wayland-devel
mailing list