在给定Xauthority文件的情况下,调用xcb_connect_to_display_with_auth_info()的正确方法是什么?

时间:2014-10-17 12:52:20

标签: c xorg xcb

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

  1. 只需致电xcb_connect(dpy, NULL)
  2. 即可
  3. 将环境变量DISPLAY设置为dpy的值并调用xcb_connect(NULL, NULL)
  4. 但是,如果我的X服务器需要Xauthority文件,我只能在设置环境XAUTHORITY Xauthority文件路径后建立XCB连接,然后调用xcb_connect(dpy, NULL)

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

    我怎么能这样做?

1 个答案:

答案 0 :(得分:0)

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

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

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

如果你想避免使用XAUTHORITY env var,但是有一个.Xauthority文件,我想你可以使用XauReadAuth来解析.Xauthority文件并找到与你显示对应的条目正在连接,并提取身份验证方法和数据。