|
|
|
@@ -11,7 +11,7 @@ int read_message(stream_socket& s, char* buffer)
|
|
|
|
|
{
|
|
|
|
|
using namespace libtorrent::detail;
|
|
|
|
|
error_code ec;
|
|
|
|
|
asio::read(s, asio::buffer(buffer, 4), asio::transfer_all(), ec);
|
|
|
|
|
libtorrent::asio::read(s, libtorrent::asio::buffer(buffer, 4), libtorrent::asio::transfer_all(), ec);
|
|
|
|
|
if (ec)
|
|
|
|
|
{
|
|
|
|
|
std::cout << ec.message() << std::endl;
|
|
|
|
@@ -20,7 +20,7 @@ int read_message(stream_socket& s, char* buffer)
|
|
|
|
|
char* ptr = buffer;
|
|
|
|
|
int length = read_int32(ptr);
|
|
|
|
|
|
|
|
|
|
asio::read(s, asio::buffer(buffer, length), asio::transfer_all(), ec);
|
|
|
|
|
libtorrent::asio::read(s, libtorrent::asio::buffer(buffer, length), libtorrent::asio::transfer_all(), ec);
|
|
|
|
|
if (ec)
|
|
|
|
|
{
|
|
|
|
|
std::cout << ec.message() << std::endl;
|
|
|
|
@@ -41,7 +41,7 @@ void send_allow_fast(stream_socket& s, int piece)
|
|
|
|
|
char* ptr = msg + 5;
|
|
|
|
|
write_int32(piece, ptr);
|
|
|
|
|
error_code ec;
|
|
|
|
|
asio::write(s, asio::buffer(msg, 9), asio::transfer_all(), ec);
|
|
|
|
|
libtorrent::asio::write(s, libtorrent::asio::buffer(msg, 9), libtorrent::asio::transfer_all(), ec);
|
|
|
|
|
if (ec)
|
|
|
|
|
{
|
|
|
|
|
std::cout << ec.message() << std::endl;
|
|
|
|
@@ -57,7 +57,7 @@ void send_suggest_piece(stream_socket& s, int piece)
|
|
|
|
|
char* ptr = msg + 5;
|
|
|
|
|
write_int32(piece, ptr);
|
|
|
|
|
error_code ec;
|
|
|
|
|
asio::write(s, asio::buffer(msg, 9), asio::transfer_all(), ec);
|
|
|
|
|
libtorrent::asio::write(s, libtorrent::asio::buffer(msg, 9), libtorrent::asio::transfer_all(), ec);
|
|
|
|
|
if (ec)
|
|
|
|
|
{
|
|
|
|
|
std::cout << ec.message() << std::endl;
|
|
|
|
@@ -70,7 +70,7 @@ void send_unchoke(stream_socket& s)
|
|
|
|
|
std::cout << "send unchoke" << std::endl;
|
|
|
|
|
char msg[] = "\0\0\0\x01\x01";
|
|
|
|
|
error_code ec;
|
|
|
|
|
asio::write(s, asio::buffer(msg, 5), asio::transfer_all(), ec);
|
|
|
|
|
libtorrent::asio::write(s, libtorrent::asio::buffer(msg, 5), libtorrent::asio::transfer_all(), ec);
|
|
|
|
|
if (ec)
|
|
|
|
|
{
|
|
|
|
|
std::cout << ec.message() << std::endl;
|
|
|
|
@@ -87,7 +87,7 @@ void do_handshake(stream_socket& s, sha1_hash const& ih, char* buffer)
|
|
|
|
|
std::cout << "send handshake" << std::endl;
|
|
|
|
|
error_code ec;
|
|
|
|
|
std::memcpy(handshake + 28, ih.begin(), 20);
|
|
|
|
|
asio::write(s, asio::buffer(handshake, sizeof(handshake) - 1), asio::transfer_all(), ec);
|
|
|
|
|
libtorrent::asio::write(s, libtorrent::asio::buffer(handshake, sizeof(handshake) - 1), libtorrent::asio::transfer_all(), ec);
|
|
|
|
|
if (ec)
|
|
|
|
|
{
|
|
|
|
|
std::cout << ec.message() << std::endl;
|
|
|
|
@@ -95,7 +95,7 @@ void do_handshake(stream_socket& s, sha1_hash const& ih, char* buffer)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// read handshake
|
|
|
|
|
asio::read(s, asio::buffer(buffer, 68), asio::transfer_all(), ec);
|
|
|
|
|
libtorrent::asio::read(s, libtorrent::asio::buffer(buffer, 68), libtorrent::asio::transfer_all(), ec);
|
|
|
|
|
if (ec)
|
|
|
|
|
{
|
|
|
|
|
std::cout << ec.message() << std::endl;
|
|
|
|
@@ -172,13 +172,13 @@ void test_reject_fast()
|
|
|
|
|
// send reject request
|
|
|
|
|
recv_buffer[0] = 0x10;
|
|
|
|
|
error_code ec;
|
|
|
|
|
asio::write(s, asio::buffer("\0\0\0\x0d", 4), asio::transfer_all(), ec);
|
|
|
|
|
libtorrent::asio::write(s, libtorrent::asio::buffer("\0\0\0\x0d", 4), libtorrent::asio::transfer_all(), ec);
|
|
|
|
|
if (ec)
|
|
|
|
|
{
|
|
|
|
|
std::cout << ec.message() << std::endl;
|
|
|
|
|
exit(1);
|
|
|
|
|
}
|
|
|
|
|
asio::write(s, asio::buffer(recv_buffer, 13), asio::transfer_all(), ec);
|
|
|
|
|
libtorrent::asio::write(s, libtorrent::asio::buffer(recv_buffer, 13), libtorrent::asio::transfer_all(), ec);
|
|
|
|
|
std::cout << ec.message() << std::endl;
|
|
|
|
|
if (ec)
|
|
|
|
|
{
|
|
|
|
@@ -240,13 +240,13 @@ void test_respect_suggest()
|
|
|
|
|
// send reject request
|
|
|
|
|
recv_buffer[0] = 0x10;
|
|
|
|
|
error_code ec;
|
|
|
|
|
asio::write(s, asio::buffer("\0\0\0\x0d", 4), asio::transfer_all(), ec);
|
|
|
|
|
libtorrent::asio::write(s, libtorrent::asio::buffer("\0\0\0\x0d", 4), libtorrent::asio::transfer_all(), ec);
|
|
|
|
|
if (ec)
|
|
|
|
|
{
|
|
|
|
|
std::cout << ec.message() << std::endl;
|
|
|
|
|
exit(1);
|
|
|
|
|
}
|
|
|
|
|
asio::write(s, asio::buffer(recv_buffer, 13), asio::transfer_all(), ec);
|
|
|
|
|
libtorrent::asio::write(s, libtorrent::asio::buffer(recv_buffer, 13), libtorrent::asio::transfer_all(), ec);
|
|
|
|
|
if (ec)
|
|
|
|
|
{
|
|
|
|
|
std::cout << ec.message() << std::endl;
|
|
|
|
|