Libtorrent Session_Status не обновляется
Я пытаюсь обновить Session_Status, но по какой-либо причине значения структуры никогда не обновляются, сессия запускается так:
using namespace libtorrent;
session* Session;
session_status* Session_Status;
session_settings* Session_Settings;
bool Start_Client_Sess ( )
{
using namespace libtorrent;
Session = new session;
Session_Status = new session_status;
Session_Settings = new session_settings;
Session->settings ( );
Session->set_settings ( *Session_Settings );
Session->add_extension ( create_ut_pex_plugin );
Session->add_extension ( create_ut_metadata_plugin );
Session->add_extension ( create_lt_trackers_plugin );
Session->add_extension ( create_smart_ban_plugin );
Session->start_upnp ( );
Session->start_natpmp ( );
Session->start_dht ( );
Session->start_lsd ( );
error_code e;
Session->listen_on ( std::make_pair ( 6881 , 6889 ) , e );
if ( e )
{
return false;
}
return true;
}
затем на Windows 1 секундный таймер я делаю это:
void RunTimer ( )
{
using namespace libtorrent;
Session->status ( );
if ( Session->is_listening ( ) )
{
if ( Session_Status->has_incoming_connections )
{
INT x = 2;
std::cout << x << "\n";
}
else
{
INT x = 1;
std::cout << x << "\n";
}
}
else
{
INT x = 0;
std::cout << x << "\n";
}
}
но независимо от того, что сеанс всегда слушает, даже если брандмауэр блокирует Libtorrent, и всегда есть соединения, даже если интернет отключен.
1 ответ
Решение
Я полагаю, что вы хотели присвоить статус сеанса вашему объекту Session_Status:
*Session_Status = Session->status();
Я бы посоветовал вам не выделять кучу объектов session_status или session_settings.