Returns a 'ready to print' dump of the object's data structure. If called in void context, the structure is printed to STDERR. VERBOSE is a boolean value.

Notes

As of version 0.049_8 of this module, peer_disconnect callbacks are provided with a language agnostic, numeric reason. So far, this is the list of possible disconnections:

DISCONNECT_BY_REMOTE

The connection closed by remote peer for unknown reasons

DISCONNECT_LOOPBACK

We connected to ourself according to PeerID.

DISCONNECT_NO_SUCH_TORRENT

Remote peer attempted to create a session related to a torrent we aren't currently serving. Occasionally, this will also provide an Infohash parameter for your callback.

DISCONNECT_HANDSHAKE_INFOHASH

A remote peer sent us a bad plaintext handshake. This is triggered when, after a particular infohash was implied in an encrypted handshake, the remote peer sent us a mismatched infohash in the plaintext handshake.

DISCONNECT_MALFORMED_HANDSHAKE

Bad plaintext handshake. May be malformed or, if encryption is disabled locally, the remote peer attempted an encrypted handshake.

Already connected to this peer. When there are too many established connections with a particular peer (as determined by their PeerID), we disconnect further connections with the reason. This reason provides the remote peer's PeerID when triggered.

DISCONNECT_TOO_MANY

Enough peers already! We've hit the hard limit for the number of peers allowed globally or per torrent.

DISCONNECT_HASHCHECKING

This reason is given when a remote peer connects to us while the torrent they're seeking is busy being hash checked (potentially in another thread).

DISCONNECT_SEED

This is given when we and the remote peer are both seeds.

DISCONNECT_TIMEOUT_HANDSHAKE

Peer failed to complete plaintext or encrypted handshake within 30s.

DISCONNECT_USELESS_PEER

Peer has been connected for at least 3m and is neither interested nor interesting.

DISCONNECT_HANDSHAKE_SYNC_DH5

Failed to sync MSE handshake at stage five.

To import this list of keywords into your namespace, use the disconnect tag. Please note that this API tweak is experimental and may change or be removed in a future version. ...it's also probably incomplete.

Author

Sanko Robinson <sanko@cpan.org> - http://sankorobinson.com/

CPAN ID: SANKO

License and Legal

Copyright (C) 2008-2009 by Sanko Robinson <sanko@cpan.org>

This program is free software; you can redistribute it and/or modify it under the terms of The Artistic License 2.0. See the LICENSE file included with this distribution or http://www.perlfoundation.org/artistic_license_2_0. For clarification, see http://www.perlfoundation.org/artistic_2_0_notes.

When separated from the distribution, all POD documentation is covered by the Creative Commons Attribution-Share Alike 3.0 License. See http://creativecommons.org/licenses/by-sa/3.0/us/legalcode. For clarification, see http://creativecommons.org/licenses/by-sa/3.0/us/.

Neither this module nor the Author is affiliated with BitTorrent, Inc.

Module Install Instructions

To install Net::BitTorrent::Peer, simply copy and paste either of the commands in to your terminal