2015-10-16 4 views
0

У меня есть рабочий код, в котором два одноранговых узла подключаются через ретранслятор (coturn), и все кажется прекрасным по сравнению с псевдо-tcp. Я успешно проверил обмен сообщениями с nice_agent_attach_recv() и nice_agent_get_io_stream().«Поддержка TLS недоступна» при создании GTlsClientConnection с libnice

Но когда я пытаюсь создать GTlsClientConnection я вернусь: 0:TLS support is not available

Вот некоторые частичный код:

if(!nice_agent_set_relay_info(agent, stream_id, 
     NICE_COMPONENT_TYPE_RTP, 
     "my.coturn.server", 
     5349, //tls-listener-port (I also tried the non tls port: 3478) 
     username.c_str(), 
     password.c_str(), 
     NICE_RELAY_TYPE_TURN_TCP)) 
    { 
     printf("error setting up relay info\n"); 
    } 

    ... 

    //after state has changed to NICE_COMPONENT_STATE_READY 

    ... 

    io_stream = nice_agent_get_io_stream (agent, stream_id, component_id); 
    input = g_io_stream_get_input_stream (G_IO_STREAM (io_stream)); 
    output = g_io_stream_get_output_stream (G_IO_STREAM (io_stream)); 

    GIOStream* tlsConnection = g_tls_client_connection_new 
           (G_IO_STREAM (io_stream), NULL, &error); 

    ///////////////////////// 
    /// error == 0 (TLS support is not available) 

Я новичок в libnice и бойкий. Так что, возможно, я пропустил что-то основное.

ответ

1

Возможно, установлен пакет glib-networking.

+0

интересный. Таким образом, он все равно будет компилироваться и связываться, но не сможет создать поддержку TLS? Я попробую. – mateuscb

+0

Классы Tls в Gio просто полагаются на общий интерфейс, но не содержат никакой реализации. glib-networking обеспечивает реализацию, которая зависит от внешних библиотек TLS. – TingPing

+0

это сделал. Теперь мне просто нужно получить все сертификаты и потоки. Но заставил меня пройти мимо моей проблемы с новичком. благодаря! – mateuscb