bt_peer_connection.hpp   bt_peer_connection.hpp 
skipping to change at line 107 skipping to change at line 107
// with this constructor we have been contacted and we still don't // with this constructor we have been contacted and we still don't
// know which torrent the connection belongs to // know which torrent the connection belongs to
bt_peer_connection( bt_peer_connection(
aux::session_impl& ses aux::session_impl& ses
, boost::shared_ptr<socket_type> s , boost::shared_ptr<socket_type> s
, tcp::endpoint const& remote , tcp::endpoint const& remote
, policy::peer* peerinfo); , policy::peer* peerinfo);
void start(); void start();
enum { upload_only_msg = 2 }; enum {
upload_only_msg = 2,
dont_have_msg = 5
};
~bt_peer_connection(); ~bt_peer_connection();
#ifndef TORRENT_DISABLE_ENCRYPTION #ifndef TORRENT_DISABLE_ENCRYPTION
bool supports_encryption() const bool supports_encryption() const
{ return m_encrypted; } { return m_encrypted; }
#endif #endif
enum message_type enum message_type
{ {
skipping to change at line 375 skipping to change at line 378
}; };
static bool range_below_zero(const range& r) static bool range_below_zero(const range& r)
{ return r.start < 0; } { return r.start < 0; }
std::vector<range> m_payloads; std::vector<range> m_payloads;
#ifndef TORRENT_DISABLE_EXTENSIONS #ifndef TORRENT_DISABLE_EXTENSIONS
// the message ID for upload only message // the message ID for upload only message
// 0 if not supported // 0 if not supported
int m_upload_only_id; int m_upload_only_id;
// the message ID for don't-have message
boost::uint8_t m_dont_have_id;
char m_reserved_bits[8]; char m_reserved_bits[8];
// this is set to true if the handshake from // this is set to true if the handshake from
// the peer indicated that it supports the // the peer indicated that it supports the
// extension protocol // extension protocol
bool m_supports_extensions:1; bool m_supports_extensions:1;
#endif #endif
bool m_supports_dht_port:1; bool m_supports_dht_port:1;
bool m_supports_fast:1; bool m_supports_fast:1;
#ifndef TORRENT_DISABLE_ENCRYPTION #ifndef TORRENT_DISABLE_ENCRYPTION
 End of changes. 2 change blocks. 
1 lines changed or deleted 7 lines changed or added


 config.hpp   config.hpp 
skipping to change at line 39 skipping to change at line 39
POSSIBILITY OF SUCH DAMAGE. POSSIBILITY OF SUCH DAMAGE.
*/ */
#ifndef TORRENT_CONFIG_HPP_INCLUDED #ifndef TORRENT_CONFIG_HPP_INCLUDED
#define TORRENT_CONFIG_HPP_INCLUDED #define TORRENT_CONFIG_HPP_INCLUDED
#include <boost/config.hpp> #include <boost/config.hpp>
#include <boost/version.hpp> #include <boost/version.hpp>
#include <stdio.h> // for snprintf #include <stdio.h> // for snprintf
#include <limits.h> // for IOV_MAX
#ifndef WIN32 #ifndef WIN32
#define __STDC_FORMAT_MACROS #define __STDC_FORMAT_MACROS
#include <inttypes.h> #include <inttypes.h>
#endif #endif
#ifndef PRId64 #ifndef PRId64
// MinGW uses microsofts runtime // MinGW uses microsofts runtime
#if defined _MSC_VER || defined __MINGW32__ #if defined _MSC_VER || defined __MINGW32__
#define PRId64 "I64d" #define PRId64 "I64d"
skipping to change at line 158 skipping to change at line 159
#else #else
#define TORRENT_USE_RLIMIT 0 #define TORRENT_USE_RLIMIT 0
#endif #endif
#ifndef TORRENT_HAS_FALLOCATE #ifndef TORRENT_HAS_FALLOCATE
#define TORRENT_HAS_FALLOCATE 1 #define TORRENT_HAS_FALLOCATE 1
#endif #endif
// should wpath or path be used? // should wpath or path be used?
#if defined UNICODE && !defined BOOST_FILESYSTEM_NARROW_ONLY \ #if defined UNICODE && !defined BOOST_FILESYSTEM_NARROW_ONLY \
&& BOOST_VERSION >= 103400 && !defined __APPLE__ && !defined TORRENT && BOOST_VERSION >= 103400 && !defined __APPLE__ \
_MINGW && !defined TORRENT_MINGW \
&& !defined TORRENT_SOLARIS
#define TORRENT_USE_WPATH 1 #define TORRENT_USE_WPATH 1
#else #else
#define TORRENT_USE_WPATH 0 #define TORRENT_USE_WPATH 0
#endif #endif
// set this to 1 to disable all floating point operations // set this to 1 to disable all floating point operations
// (disables some float-dependent APIs) // (disables some float-dependent APIs)
#define TORRENT_NO_FPU 0 #define TORRENT_NO_FPU 0
// make sure NAME_MAX is defined // make sure NAME_MAX is defined
skipping to change at line 213 skipping to change at line 216
#define TORRENT_UPNP_LOGGING #define TORRENT_UPNP_LOGGING
#endif #endif
#if !TORRENT_USE_WPATH && (defined TORRENT_LINUX || defined TORRENT_MINGW) #if !TORRENT_USE_WPATH && (defined TORRENT_LINUX || defined TORRENT_MINGW)
// libiconv presence, not implemented yet // libiconv presence, not implemented yet
#define TORRENT_USE_LOCALE_FILENAMES 1 #define TORRENT_USE_LOCALE_FILENAMES 1
#else #else
#define TORRENT_USE_LOCALE_FILENAMES 0 #define TORRENT_USE_LOCALE_FILENAMES 0
#endif #endif
#if !defined TORRENT_IOV_MAX
#ifdef IOV_MAX
#define TORRENT_IOV_MAX IOV_MAX
#else
#define TORRENT_IOV_MAX INT_MAX
#endif
#endif
#if !defined(TORRENT_READ_HANDLER_MAX_SIZE) #if !defined(TORRENT_READ_HANDLER_MAX_SIZE)
# define TORRENT_READ_HANDLER_MAX_SIZE 256 # define TORRENT_READ_HANDLER_MAX_SIZE 256
#endif #endif
#if !defined(TORRENT_WRITE_HANDLER_MAX_SIZE) #if !defined(TORRENT_WRITE_HANDLER_MAX_SIZE)
# define TORRENT_WRITE_HANDLER_MAX_SIZE 256 # define TORRENT_WRITE_HANDLER_MAX_SIZE 256
#endif #endif
#ifndef TORRENT_ICONV_ARG #ifndef TORRENT_ICONV_ARG
#define TORRENT_ICONV_ARG (char**) #define TORRENT_ICONV_ARG (char**)
 End of changes. 3 change blocks. 
2 lines changed or deleted 12 lines changed or added


 error_code.hpp   error_code.hpp 
skipping to change at line 169 skipping to change at line 169
metadata_too_large, metadata_too_large,
invalid_metadata_request, invalid_metadata_request,
invalid_metadata_size, invalid_metadata_size,
invalid_metadata_offset, invalid_metadata_offset,
invalid_metadata_message, invalid_metadata_message,
pex_message_too_large, pex_message_too_large,
invalid_pex_message, invalid_pex_message,
invalid_lt_tracker_message, invalid_lt_tracker_message,
reserved108, reserved108,
reserved109, reserved109,
reserved110, invalid_dont_have,
reserved111, reserved111,
reserved112, reserved112,
reserved113, reserved113,
reserved114, reserved114,
reserved115, reserved115,
reserved116, reserved116,
reserved117, reserved117,
reserved118, reserved118,
reserved119, reserved119,
 End of changes. 1 change blocks. 
1 lines changed or deleted 1 lines changed or added


 extensions.hpp   extensions.hpp 
skipping to change at line 134 skipping to change at line 134
virtual bool on_interested() virtual bool on_interested()
{ return false; } { return false; }
virtual bool on_not_interested() virtual bool on_not_interested()
{ return false; } { return false; }
virtual bool on_have(int index) virtual bool on_have(int index)
{ return false; } { return false; }
virtual bool on_dont_have(int index)
{ return false; }
virtual bool on_bitfield(bitfield const& bitfield) virtual bool on_bitfield(bitfield const& bitfield)
{ return false; } { return false; }
virtual bool on_have_all() virtual bool on_have_all()
{ return false; } { return false; }
virtual bool on_have_none() virtual bool on_have_none()
{ return false; } { return false; }
virtual bool on_allowed_fast(int index) virtual bool on_allowed_fast(int index)
 End of changes. 1 change blocks. 
0 lines changed or deleted 3 lines changed or added


 peer_connection.hpp   peer_connection.hpp 
skipping to change at line 416 skipping to change at line 416
// received, then it will no longer // received, then it will no longer
// be called. i.e. most handlers need // be called. i.e. most handlers need
// to check how much of the packet they // to check how much of the packet they
// have received before any processing // have received before any processing
void incoming_keepalive(); void incoming_keepalive();
void incoming_choke(); void incoming_choke();
void incoming_unchoke(); void incoming_unchoke();
void incoming_interested(); void incoming_interested();
void incoming_not_interested(); void incoming_not_interested();
void incoming_have(int piece_index); void incoming_have(int piece_index);
void incoming_dont_have(int piece_index);
void incoming_bitfield(bitfield const& bits); void incoming_bitfield(bitfield const& bits);
void incoming_request(peer_request const& r); void incoming_request(peer_request const& r);
void incoming_piece(peer_request const& p, disk_buffer_holde r& data); void incoming_piece(peer_request const& p, disk_buffer_holde r& data);
void incoming_piece(peer_request const& p, char const* data) ; void incoming_piece(peer_request const& p, char const* data) ;
void incoming_piece_fragment(int bytes); void incoming_piece_fragment(int bytes);
void start_receive_piece(peer_request const& r); void start_receive_piece(peer_request const& r);
void incoming_cancel(peer_request const& r); void incoming_cancel(peer_request const& r);
void incoming_dht_port(int listen_port); void incoming_dht_port(int listen_port);
 End of changes. 1 change blocks. 
0 lines changed or deleted 1 lines changed or added


 session_impl.hpp   session_impl.hpp 
skipping to change at line 318 skipping to change at line 318
{ return m_peer_proxy; } { return m_peer_proxy; }
proxy_settings const& web_seed_proxy() const proxy_settings const& web_seed_proxy() const
{ return m_web_seed_proxy; } { return m_web_seed_proxy; }
proxy_settings const& tracker_proxy() const proxy_settings const& tracker_proxy() const
{ return m_tracker_proxy; } { return m_tracker_proxy; }
#ifndef TORRENT_DISABLE_DHT #ifndef TORRENT_DISABLE_DHT
void set_dht_proxy(proxy_settings const& s) void set_dht_proxy(proxy_settings const& s)
{ {
m_dht_proxy = s; m_dht_proxy = s;
m_dht_socket.set_proxy_settings(s); m_dht_socket->set_proxy_settings(s);
} }
proxy_settings const& dht_proxy() const proxy_settings const& dht_proxy() const
{ return m_dht_proxy; } { return m_dht_proxy; }
#endif #endif
#ifndef TORRENT_DISABLE_GEO_IP #ifndef TORRENT_DISABLE_GEO_IP
std::string as_name_for_ip(address const& a); std::string as_name_for_ip(address const& a);
int as_for_ip(address const& a); int as_for_ip(address const& a);
std::pair<const int, int>* lookup_as(int as); std::pair<const int, int>* lookup_as(int as);
bool load_asnum_db(char const* file); bool load_asnum_db(char const* file);
skipping to change at line 666 skipping to change at line 666
// if this is set to true, the dht listen port // if this is set to true, the dht listen port
// will be set to the same as the tcp listen port // will be set to the same as the tcp listen port
// and will be synchronlized with it as it changes // and will be synchronlized with it as it changes
// it defaults to true // it defaults to true
bool m_dht_same_port; bool m_dht_same_port;
// see m_external_listen_port. This is the same // see m_external_listen_port. This is the same
// but for the udp port used by the DHT. // but for the udp port used by the DHT.
int m_external_udp_port; int m_external_udp_port;
rate_limited_udp_socket m_dht_socket; boost::intrusive_ptr<rate_limited_udp_socket> m_dht_ socket;
// these are used when starting the DHT // these are used when starting the DHT
// (and bootstrapping it), and then erased // (and bootstrapping it), and then erased
std::list<udp::endpoint> m_dht_router_nodes; std::list<udp::endpoint> m_dht_router_nodes;
void on_receive_udp(error_code const& e void on_receive_udp(error_code const& e
, udp::endpoint const& ep, char const* buf, int len); , udp::endpoint const& ep, char const* buf, int len);
#endif #endif
#ifndef TORRENT_DISABLE_ENCRYPTION #ifndef TORRENT_DISABLE_ENCRYPTION
 End of changes. 2 change blocks. 
2 lines changed or deleted 2 lines changed or added


 torrent.hpp   torrent.hpp 
skipping to change at line 284 skipping to change at line 284
void prioritize_pieces(std::vector<int> const& pieces); void prioritize_pieces(std::vector<int> const& pieces);
void piece_priorities(std::vector<int>&) const; void piece_priorities(std::vector<int>&) const;
void set_file_priority(int index, int priority); void set_file_priority(int index, int priority);
int file_priority(int index) const; int file_priority(int index) const;
void prioritize_files(std::vector<int> const& files); void prioritize_files(std::vector<int> const& files);
void file_priorities(std::vector<int>&) const; void file_priorities(std::vector<int>&) const;
void set_piece_deadline(int piece, int t, int flags); void set_piece_deadline(int piece, int t, int flags);
void reset_piece_deadline(int piece);
void update_piece_priorities(); void update_piece_priorities();
torrent_status status() const; torrent_status status() const;
void file_progress(std::vector<size_type>& fp, int flags = 0 ) const; void file_progress(std::vector<size_type>& fp, int flags = 0 ) const;
void use_interface(const char* net_interface); void use_interface(const char* net_interface);
tcp::endpoint const& get_interface() const { return m_net_in terface; } tcp::endpoint const& get_interface() const { return m_net_in terface; }
void connect_to_url_seed(web_seed_entry const& url); void connect_to_url_seed(web_seed_entry const& url);
 End of changes. 1 change blocks. 
0 lines changed or deleted 1 lines changed or added


 torrent_handle.hpp   torrent_handle.hpp 
skipping to change at line 399 skipping to change at line 399
void add_piece(int piece, char const* data, int flags = 0) c onst; void add_piece(int piece, char const* data, int flags = 0) c onst;
void read_piece(int piece) const; void read_piece(int piece) const;
void get_full_peer_list(std::vector<peer_list_entry>& v) con st; void get_full_peer_list(std::vector<peer_list_entry>& v) con st;
void get_peer_info(std::vector<peer_info>& v) const; void get_peer_info(std::vector<peer_info>& v) const;
torrent_status status() const; torrent_status status() const;
void get_download_queue(std::vector<partial_piece_info>& que ue) const; void get_download_queue(std::vector<partial_piece_info>& que ue) const;
enum deadline_flags { alert_when_available = 1 }; enum deadline_flags { alert_when_available = 1 };
void set_piece_deadline(int index, int deadline, int flags = 0) const; void set_piece_deadline(int index, int deadline, int flags = 0) const;
void reset_piece_deadline(int index) const;
void set_priority(int prio) const; void set_priority(int prio) const;
#ifndef TORRENT_NO_DEPRECATE #ifndef TORRENT_NO_DEPRECATE
#if !TORRENT_NO_FPU #if !TORRENT_NO_FPU
// fills the specified vector with the download progress [0, 1] // fills the specified vector with the download progress [0, 1]
// of each file in the torrent. The files are ordered as in // of each file in the torrent. The files are ordered as in
// the torrent_info. // the torrent_info.
TORRENT_DEPRECATED_PREFIX TORRENT_DEPRECATED_PREFIX
void file_progress(std::vector<float>& progress) const TORRE NT_DEPRECATED; void file_progress(std::vector<float>& progress) const TORRE NT_DEPRECATED;
 End of changes. 1 change blocks. 
0 lines changed or deleted 1 lines changed or added


 udp_socket.hpp   udp_socket.hpp 
skipping to change at line 39 skipping to change at line 39
POSSIBILITY OF SUCH DAMAGE. POSSIBILITY OF SUCH DAMAGE.
*/ */
#ifndef TORRENT_UDP_SOCKET_HPP_INCLUDED #ifndef TORRENT_UDP_SOCKET_HPP_INCLUDED
#define TORRENT_UDP_SOCKET_HPP_INCLUDED #define TORRENT_UDP_SOCKET_HPP_INCLUDED
#include "libtorrent/socket.hpp" #include "libtorrent/socket.hpp"
#include "libtorrent/session_settings.hpp" #include "libtorrent/session_settings.hpp"
#include "libtorrent/buffer.hpp" #include "libtorrent/buffer.hpp"
#include "libtorrent/intrusive_ptr_base.hpp"
#include <deque> #include <deque>
#include <boost/function.hpp> #include <boost/function.hpp>
#include <boost/thread/mutex.hpp> #include <boost/thread/mutex.hpp>
namespace libtorrent namespace libtorrent
{ {
class connection_queue; class connection_queue;
class udp_socket class udp_socket : public intrusive_ptr_base<udp_socket>
{ {
public: public:
typedef boost::function<void(error_code const& ec typedef boost::function<void(error_code const& ec
, udp::endpoint const&, char const* buf, int size)> callback_t; , udp::endpoint const&, char const* buf, int size)> callback_t;
udp_socket(io_service& ios, callback_t const& c, connection_ queue& cc); udp_socket(io_service& ios, callback_t const& c, connection_ queue& cc);
~udp_socket(); virtual ~udp_socket();
bool is_open() const bool is_open() const
{ {
return m_ipv4_sock.is_open() return m_ipv4_sock.is_open()
#if TORRENT_USE_IPV6 #if TORRENT_USE_IPV6
|| m_ipv6_sock.is_open() || m_ipv6_sock.is_open()
#endif #endif
; ;
} }
io_service& get_io_service() { return m_ipv4_sock.get_io_ser vice(); } io_service& get_io_service() { return m_ipv4_sock.get_io_ser vice(); }
 End of changes. 3 change blocks. 
2 lines changed or deleted 3 lines changed or added


 udp_tracker_connection.hpp   udp_tracker_connection.hpp 
skipping to change at line 115 skipping to change at line 115
void send_udp_connect(); void send_udp_connect();
void send_udp_announce(); void send_udp_announce();
void send_udp_scrape(); void send_udp_scrape();
virtual void on_timeout(error_code const& ec); virtual void on_timeout(error_code const& ec);
tracker_manager& m_man; tracker_manager& m_man;
udp::resolver m_name_lookup; udp::resolver m_name_lookup;
udp_socket m_socket; boost::intrusive_ptr<udp_socket> m_socket;
udp::endpoint m_target; udp::endpoint m_target;
std::list<udp::endpoint> m_endpoints; std::list<udp::endpoint> m_endpoints;
int m_transaction_id; int m_transaction_id;
aux::session_impl const& m_ses; aux::session_impl const& m_ses;
int m_attempts; int m_attempts;
struct connection_cache_entry struct connection_cache_entry
{ {
boost::int64_t connection_id; boost::int64_t connection_id;
 End of changes. 1 change blocks. 
1 lines changed or deleted 1 lines changed or added


 variant_stream.hpp   variant_stream.hpp 
skipping to change at line 772 skipping to change at line 772
); );
} }
io_service& get_io_service() io_service& get_io_service()
{ {
return m_io_service; return m_io_service;
} }
lowest_layer_type& lowest_layer() lowest_layer_type& lowest_layer()
{ {
TORRENT_ASSERT(instantiated()); // this is called by the ssl_socket to get the io_service, which
// is ok even when it's not instantiated
// TORRENT_ASSERT(instantiated());
return boost::apply_visitor( return boost::apply_visitor(
aux::lowest_layer_visitor<lowest_layer_type>(), m_variant aux::lowest_layer_visitor<lowest_layer_type>(), m_variant
); );
} }
private: private:
io_service& m_io_service; io_service& m_io_service;
variant_type m_variant; variant_type m_variant;
}; };
 End of changes. 1 change blocks. 
1 lines changed or deleted 3 lines changed or added


 version.hpp   version.hpp 
skipping to change at line 38 skipping to change at line 38
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE. POSSIBILITY OF SUCH DAMAGE.
*/ */
#ifndef TORRENT_VERSION_HPP_INCLUDED #ifndef TORRENT_VERSION_HPP_INCLUDED
#define TORRENT_VERSION_HPP_INCLUDED #define TORRENT_VERSION_HPP_INCLUDED
#define LIBTORRENT_VERSION_MAJOR 0 #define LIBTORRENT_VERSION_MAJOR 0
#define LIBTORRENT_VERSION_MINOR 15 #define LIBTORRENT_VERSION_MINOR 15
#define LIBTORRENT_VERSION_TINY 7 #define LIBTORRENT_VERSION_TINY 8
#define LIBTORRENT_VERSION "0.15.7.0" #define LIBTORRENT_VERSION "0.15.8.0"
#define LIBTORRENT_REVISION "$Rev: 5839 $" #define LIBTORRENT_REVISION "$Rev: 6001 $"
#endif #endif
 End of changes. 2 change blocks. 
3 lines changed or deleted 3 lines changed or added

This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/