【问题标题】:What's the right way to call xcb_connect_to_display_with_auth_info() given a Xauthority file?给定 Xauthority 文件,调用 xcb_connect_to_display_with_auth_info() 的正确方法是什么?
【发布时间】:2014-10-17 12:52:20
【问题描述】:

当我尝试与存储在字符串中的给定显示器建立 XCB 连接时,例如dpy,我知道我可以通过两种不同的方式做到这一点:

  1. 只需致电xcb_connect(dpy, NULL),或
  2. 将环境变量DISPLAY设置为dpy的值并调用xcb_connect(NULL, NULL)

但是,如果我的X服务器需要Xauthority文件,只有设置环境XAUTHORITYXauthority文件路径,然后调用xcb_connect(dpy, NULL),才能建立XCB连接。

我想建立这个连接而不需要设置环境变量XAUTHORITY。我知道 XCB API 中有一个名为 xcb_connect_to_display_with_auth_info() 的函数,它接收 xcb_auth_info_t 结构,但我完全不知道如何在给定 Xauthority 文件路径的情况下构建这个结构。

我该怎么做?

【问题讨论】:

标签: c xorg xcb


【解决方案1】:

xcb_auth_info_t 结构的内容与XSetAuthorization 的参数相同。

不幸的是,这也没有很好的记录。

name 是授权方法名称(例如“MIT-MAGIC-COOKIE-1”),data 是身份验证数据(例如 128 位 cookie)。

如果您想避免使用 XAUTHORITY 环境变量,但有一个 .Xauthority 文件,我认为您可以使用 XauReadAuth 解析 .Xauthority 文件并找到与您连接的显示器相对应的条目,并提取认证方法和数据。

【讨论】:

    猜你喜欢
    • 2022-12-18
    • 1970-01-01
    • 2011-11-19
    • 1970-01-01
    • 1970-01-01
    • 2015-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多