Существуют ли какие-либо API или документация для облегчения анализа файла авторизации для X-сервера?
Я использую xcb
для подключения к дисплею. Он принимает структуру xcb_auth_info_t
для информации об авторизации. Однако я не могу найти никакой информации о том, как построить эту структуру. Похоже, что нет никакой документации по формату файлов авторизации X-сервера.
Решение, с которым я согласился:
Оказывается, для авторитетных файлов MIT-MAGIC-COOKIE-1
типа X элементы структуры Xauth
(из X11/Xauth.h
) напрямую сопоставляются с элементами xcb_auth_info_t
. Итак, просто прочитайте структуру Xauth
из вашего авторитетного файла X, используя XauReadAuth
. Затем скопируйте элементы name
, name_length
, data
и data_length
.
Если вам нужен более переносимый способ анализа авторитетного файла X, вы можете обратиться к исходному коду xcb
. Это довольно грязно, но адаптировать их исходный код для ваших целей не должно быть слишком сложно. См. xcb_util.c
для получения подробной информации о том, как открыть сокет для дисплея. Получив сокет, вы можете использовать методы из xcb_auth.c
для создания структуры xcb_auth_info_t
(см. методы _xcb_get_auth_info
, get_auth_ptr
и compute_auth
).
Мне нужно было подключаться только через сокеты unix (AF_UNIX
), поэтому код, который я портировал, был довольно минимальным. В основном я просто использовал метод compute_auth
(и его зависимости).
-auth authorization_file
, но я не могу найти много информации о том, как форматируется этот файл. - person Azmisov   schedule 19.02.2015