2012-03-12 1 views
0

Это function кажется довольно простым, но я не могу заставить его возвращать результаты. Я написал небольшую вспомогательную программу, чтобы попытаться выяснить, какие параметры он хочет:Как использовать XauGetAuthByAddr

#include <iostream> 
#include <string.h> 

#include <X11/X.h> 
#include <X11/Xauth.h> 

int main(int argc, char * argv[]) 
{ 
    Xauth * xauth_ptr = XauGetAuthByAddr(FamilyInternet, 
             strlen(argv[1]), 
             argv[1], 
             strlen(argv[2]), 
             argv[2], 
             strlen("MIT-MAGIC-COOKIE-1"), 
             "MIT-MAGIC-COOKIE-1"); 
    if (!xauth_ptr) 
    { 
     std::cerr << "Could not look up " << argv[1] << ":" << argv[2] << std::endl; 
     return -1; 
    } 

    std::cout << "Name: " << xauth_ptr->name << std::endl; 
    return 0; 
} 

xauth list отображает то, что я должен быть в состоянии посмотреть:

$ xauth list 
ubuntu/unix:17 MIT-MAGIC-COOKIE-1 181bc2c2aa5c9e7b8d5bde61d2dbe6bb 
ubuntu/unix:18 MIT-MAGIC-COOKIE-1 7ef7984fb5d2f18083ffc8b16f675c66 
ubuntu/unix:15 MIT-MAGIC-COOKIE-1 c6c31dc60627288c0b3b4d1768cc490d 
ubuntu/unix:16 MIT-MAGIC-COOKIE-1 05dfde3b782fda7df4aaf8a840645bba 

Я кормить мою программу «127.0. 0.1 ', мой фактический IP, «localhost», «ubuntu», «ubuntu/unix» безрезультатно. Спасибо за помощь.

ответ

1

Вы указали FamilyInternet (с указанием адреса TCP), но все ваши выборки адреса из списка XAUTH отмечены /unix, указывая, что они сокеты Unix адресуются через FamilyLocal, как вы можете видеть в dump_entry function in the xauth sources.

Смежные вопросы