Trung Thanh Tran | 30 Jun 19:10 2016
Picon

file_completed_alert is not fired in libtorrent 1.1.0

Hi all,
When I download a torrent having a couple of files and catch file_completed_alert to know the downloaded
file, this type does not exist anymore in libtorrent 1.1.0. Everything is ok in libtorrent 1.0.6. Below is
my code

alerts = self.get_libtorrent_session.pop_alerts()
for alert in alerts:
    alert_type = type(alert).__name__
    #self.logger.info("Alert type " + alert_type)
    if alert_type == "file_completed_alert":
        torrent_handle = alert.handle
        info_hash = torrent_handle.info_hash()

Please correct me if I am wrong.

Best regards,

------------------------------------------------------------------------------
Attend Shape: An AT&T Tech Expo July 15-16. Meet us at AT&T Park in San
Francisco, CA to explore cutting-edge tech and listen to tech luminaries
present their vision of the future. This family event has something for
everyone, including kids. Get more information and register today.
http://sdm.link/attshape
Arvid Norberg | 30 Jun 05:43 2016
Picon

cppcon 2016

If anyone here is going to cppcon, hit me up.

--

-- 
Arvid Norberg
------------------------------------------------------------------------------
Attend Shape: An AT&T Tech Expo July 15-16. Meet us at AT&T Park in San
Francisco, CA to explore cutting-edge tech and listen to tech luminaries
present their vision of the future. This family event has something for
everyone, including kids. Get more information and register today.
http://sdm.link/attshape
Bedeho Mender | 29 Jun 14:58 2016
Picon

Speed limiting

1) Is it correct that up/down speed limits can only be directly set on
individual torrents
(torrent_handle::set_upload/download_limit), not session wide, or on
individual peer connections?

2) Is it correct that this upload limit also applies to
peer_connection::send_buffer
?

Bedeho
ᐧ
------------------------------------------------------------------------------
Attend Shape: An AT&T Tech Expo July 15-16. Meet us at AT&T Park in San
Francisco, CA to explore cutting-edge tech and listen to tech luminaries
present their vision of the future. This family event has something for
everyone, including kids. Get more information and register today.
http://sdm.link/attshape
_______________________________________________
Libtorrent-discuss mailing list
Libtorrent-discuss <at> lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/libtorrent-discuss
Grigoriy Roghkov | 26 Jun 23:49 2016
Picon

direct P2P connection

Hi,
I am new to libtorrent and have some questions.
Is there any way to establish direct long-lived connection between 2 peers?
Where I can find a tracker that is compatible with a library?
Can the library be used in a non-free software with a closed code?

Thank you!
Grigoriy
------------------------------------------------------------------------------
Attend Shape: An AT&T Tech Expo July 15-16. Meet us at AT&T Park in San
Francisco, CA to explore cutting-edge tech and listen to tech luminaries
present their vision of the future. This family event has something for
everyone, including kids. Get more information and register today.
http://sdm.link/attshape
Ben K | 20 Jun 14:47 2016
Picon

libtorrent - "file too short"

hello everyone,
I'm using libtorrent 1.0.9 on windows.
i'm facing a "file too short" error , while im in "seed mode" . my cache
size is set to 0 on purpse, and i'm willing to know if there is a way to
fix it or avoid it so my upload won't fail.

Thanks,
Ben.
------------------------------------------------------------------------------
Attend Shape: An AT&T Tech Expo July 15-16. Meet us at AT&T Park in San
Francisco, CA to explore cutting-edge tech and listen to tech luminaries
present their vision of the future. This family event has something for
everyone, including kids. Get more information and register today.
http://sdm.link/attshape
Arvid Norberg | 14 Jun 02:34 2016
Picon

lazy bitfields

I'm considering retiring this feature. I find it hard to believe that it
provides any value anymore. Please speak up if you think it does.

the lazy_bitfield feature was the very first traffic-shaping
countermeasure. Shapers that were trained to spot an all-ones bitfield
message (to identify a seed and throttle or disconnect) could be tricked.
By seeds always sending a BITFIELD with some pieces missing, it would not
be identified as a seed by the shaper, but it would then immediately fill
in those gaps with HAVE messages.

The protocol encryption/obfuscation was the next level of countermeasure,
which I would expect entirely covers anyone trying to match all-ones
bitfield messages.

--

-- 
Arvid Norberg
------------------------------------------------------------------------------
What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
patterns at an interface-level. Reveals which users, apps, and protocols are 
consuming the most bandwidth. Provides multi-vendor support for NetFlow, 
J-Flow, sFlow and other flows. Make informed decisions using capacity 
planning reports. https://ad.doubleclick.net/ddm/clk/305295220;132659582;e
Angel Leon | 31 May 02:48 2016
Picon
Gravatar

Question about session::listen_port() / interfaces and bound ports

I'm trying to add the new `x.pe=` parameters to magnet uris, in there I'd
like to put all the interfaces on which my libtorrent client might be
listening on (may them be IPv4 or IPv6)

In session I see the `listen_port()` method, documented as follows:

*// ``listen_port()`` returns the port we ended up listening on. If the*
*// port specified in settings_pack::listen_interfaces failed, libtorrent*
*// will try to bind to the next port, and so on. If it fails*
*// settings_pack::max_retry_port_bind times, it will bind to port 0*
*// (meaning the OS picks the port). *
*// The only way to know which port it ended up binding to is to ask for it
by calling ``listen_port()``*.

However, when I look at portmap alerts, I see that it attempts to port map
on 3 different interfaces (2 are IPv6, one is IPv4, one of the IPv6 fails,
this is on android)
but at the end, what seems to be a successful portmap response, has a port
number different than the one being returned by session::listen_port.

So if I use the port from session, I'm probably not sending the right port
on the magnet, it perhaps might work if I send the magnet to a peer on the
local network, but someone outside will never be able to take advantage of
those x.pe= parameters to try and establish a connection to my mapped port,
because I have the port of the wrong interface.

So my question is the following, is there a way to find out which are my
listening tcp::endpoint's/udp::endpoint's once the session has started?

I wish I had something like this:
(Continue reading)

Michael Mckeown | 29 May 20:04 2016

torrent_file

When adding with a magnet/hash I'm looking to get the details from the
torrent_file on the state_changed_alert but:

torrent_handle handle = state_changed_alert->handle;
torrent_status status = handle.status ( );
boost::weak_ptr<const torrent_info> weak_pointer = status.torrent_file;

gives all blank/zero in the torrent_info or:

torrent_handle handle = state_changed_alert->handle;
boost::shared_ptr<const torrent_info> shared_pointer =
handle.torrent_file ( );

does the same, how is it you access the metadata from magnet/hash torrents?

has_metadata returns true on both occasions.

Thanks.

Also, the new read_resume_data() function, where exactly is it and how
is it used?

Thanks again.

------------------------------------------------------------------------------
What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
patterns at an interface-level. Reveals which users, apps, and protocols are 
consuming the most bandwidth. Provides multi-vendor support for NetFlow, 
J-Flow, sFlow and other flows. Make informed decisions using capacity 
planning reports. https://ad.doubleclick.net/ddm/clk/305295220;132659582;e
(Continue reading)

Parthib Dutta | 27 May 07:21 2016
Picon

DHT implementation problem with traversal algorithm

Hi everyone, 
My name is Parthib and I'm currently doing a project where I have to implement the Bittorrent DHT.  I have
gone through the specs and understood almost all of it. But the traversal algorithm is the one I'm finding
very challenging to understand. According to my understanding suppose I'm downloading a torrent and I
have a few nodes in my routing table. Say 3.  So i send find_node query to the nodes in my routing table
including the target key as my own node id. I will recursively call this to find nodes closest to my node id. 
     After that I send get_peers query to the nodes that are closest to the info hash. If i get a list of peers
i will send announce to the peers else if i receive a list compact node info list i will recursively call
get_peers on them. 
   Is my reasoning correct? The part I'm not understanding is why we have to use find_node when get_peers
request already returns us the node info of closest nodes to the info hash? I hope someone will help me
clarify this doubt. 

Sent from Yahoo Mail on Android
------------------------------------------------------------------------------
What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
patterns at an interface-level. Reveals which users, apps, and protocols are 
consuming the most bandwidth. Provides multi-vendor support for NetFlow, 
J-Flow, sFlow and other flows. Make informed decisions using capacity 
planning reports. https://ad.doubleclick.net/ddm/clk/305295220;132659582;e
_______________________________________________
Libtorrent-discuss mailing list
Libtorrent-discuss <at> lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/libtorrent-discuss
Calum Lind | 26 May 22:44 2016
Picon
Gravatar

flag_update_subscribe

Hi Arvid,

I saw you mention flag_update_subscribe for add_torrent_params and I was
curious of it's intended usage? I assume it can't be changed after the
torrent is added?

Thanks,

Calum
------------------------------------------------------------------------------
Mobile security can be enabling, not merely restricting. Employees who
bring their own devices (BYOD) to work are irked by the imposition of MDM
restrictions. Mobile Device Manager Plus allows you to control only the
apps on BYO-devices by containerizing them, leaving personal data untouched!
https://ad.doubleclick.net/ddm/clk/304595813;131938128;j
Michael Mckeown | 26 May 15:09 2016

state_update_alert

Hi again, with state_update_alert I get 'state_update_alert state 
updates for 0 torrents' with the vector of torrent_status having a count 
of zero despite torrents running.

Pretty sure I'm doing it right:

session->post_torrent_updates ( );
session->pop_alerts ( &alerts );

for ( libtorrent::alert const* a : alerts ) {
  if ( auto state = libtorrent::alert_cast< 
libtorrent::state_update_alert >( a ) )
  {
   std::cout << "state_update_alert " << a->message ( ) << "\n";
   for ( std::vector<torrent_status>::const_iterator it = 
state->status.begin ( ) , end ( state->status.end ( ) ); it != end; ++it )
   {
   }
  }
}

built with master from last night with:

toolset=msvc-14.0 boost-link=static runtime-link=static 
deprecated-functions=off encryption=on link=static dht=on logging=off 
i2p=on variant=release

Thanks.
------------------------------------------------------------------------------
Mobile security can be enabling, not merely restricting. Employees who
(Continue reading)


Gmane