return -1;
}
-static int
+static void
_tbm_drm_auth_socket_init(struct wayland_tbm_drm_auth_server *tbm_drm_auth_srv)
{
const char *dir = NULL;
uid_t uid;
gid_t gid;
- if (wl_display_add_socket(tbm_drm_auth_srv->display, "tbm-drm-auth")) {
- TBM_LOG_E("createing a tdm-socket failed\n");
- return 0;
- }
-
dir = getenv("XDG_RUNTIME_DIR");
if (!dir) {
- TBM_LOG_E("getting XDG_RUNTIME_DIR failed\n");
- return 0;
+ TBM_LOG_W("getting XDG_RUNTIME_DIR failed\n");
+ return;
}
snprintf(socket_path, sizeof(socket_path), "%s/%s", dir, "tbm-drm-auth");
ret = chmod(socket_path, 509);
if (ret < 0) {
- TBM_LOG_E("changing modes of socket file failed:%s (%m)\n", socket_path);
- return 0;
+ TBM_LOG_W("changing modes of socket file failed:%s (%m)\n", socket_path);
+ return;
}
- /* if not super user, we don't need to change owner and group */
- if (getuid() != 0)
- return 1;
-
ret = _tbm_getgrnam_r("root");
if (ret < 0) {
- TBM_LOG_E("getting uid failed\n");
- return 0;
+ TBM_LOG_W("getting uid failed\n");
+ return;
}
uid = ret;
ret = _tbm_getgrnam_r("display");
if (ret < 0) {
- TBM_LOG_E("getting gid failed\n");
- return 0;
+ TBM_LOG_W("getting gid failed\n");
+ return;
}
gid = ret;
ret = chown(socket_path, uid, gid);
if (ret < 0) {
- TBM_LOG_E("changing owner of socket file failed:%s (%m)\n", socket_path);
- return 0;
+ TBM_LOG_W("changing owner of socket file failed:%s (%m)\n", socket_path);
+ return;
}
-
- return 1;
}
int
tbm_drm_auth_srv->fd = fd;
tbm_drm_auth_srv->flags = flags;
- if (!_tbm_drm_auth_socket_init(tbm_drm_auth_srv)) {
- TBM_LOG_E("[TBM_DRM] fail to _tbm_drm_auth_socket_init\n");
+ if (wl_display_add_socket(tbm_drm_auth_srv->display, "tbm-drm-auth")) {
+ TBM_LOG_E("[TBM_DRM] fail to add socket\n");
if (tbm_drm_auth_srv->device_name)
free(tbm_drm_auth_srv->device_name);
return 0;
}
+ _tbm_drm_auth_socket_init(tbm_drm_auth_srv);
+
/* init the client resource list */
tbm_drm_auth_srv->wl_tbm_drm_auth_global = wl_global_create(tbm_drm_auth_srv->display, &wl_tbm_drm_auth_interface, 1,
tbm_drm_auth_srv, _wayland_tbm_drm_auth_server_bind_cb);