trim tracker urls and renamed isprint to is_print

This commit is contained in:
Arvid Norberg 2009-06-23 01:53:47 +00:00
parent fffda3c738
commit ad1e575a6e
8 changed files with 24 additions and 13 deletions

View File

@ -45,7 +45,8 @@ namespace libtorrent
{
boost::array<char, 3 + std::numeric_limits<size_type>::digits10> TORRENT_EXPORT to_string(size_type n);
bool TORRENT_EXPORT is_digit(char c);
bool TORRENT_EXPORT isprint(char c);
bool TORRENT_EXPORT is_print(char c);
bool TORRENT_EXPORT is_space(char c);
char TORRENT_EXPORT to_lower(char c);
bool TORRENT_EXPORT string_begins_no_case(char const* s1, char const* s2);

View File

@ -152,6 +152,12 @@ namespace libtorrent
{
return fails == 0;
}
void trim()
{
while (!url.empty() && is_space(url[0]))
url.erase(url.begin());
}
};
#ifndef BOOST_NO_EXCEPTIONS

View File

@ -49,6 +49,7 @@ POSSIBILITY OF SUCH DAMAGE.
#include "libtorrent/extensions.hpp"
#include "libtorrent/aux_/session_impl.hpp"
#include "libtorrent/broadcast_socket.hpp"
#include "libtorrent/escape_string.hpp"
#ifndef TORRENT_DISABLE_ENCRYPTION
#include "libtorrent/pe_crypto.hpp"
@ -2728,7 +2729,7 @@ namespace libtorrent
char ascii_pid[21];
for (int i = 0; i != 20; ++i)
{
if (isprint(recv_buffer.begin[i])) ascii_pid[i] = recv_buffer.begin[i];
if (is_print(recv_buffer.begin[i])) ascii_pid[i] = recv_buffer.begin[i];
else ascii_pid[i] = '.';
}
char msg[200];

View File

@ -43,10 +43,6 @@ POSSIBILITY OF SUCH DAMAGE.
#include "libtorrent/escape_string.hpp"
#if defined(_MSC_VER)
namespace std
{
using ::isprint;
}
#define for if (false) {} else for
#endif
@ -370,7 +366,7 @@ namespace libtorrent
bool binary_string = false;
for (std::string::const_iterator i = string().begin(); i != string().end(); ++i)
{
if (!std::isprint(static_cast<unsigned char>(*i)))
if (!is_print(static_cast<unsigned char>(*i)))
{
binary_string = true;
break;
@ -395,7 +391,7 @@ namespace libtorrent
bool binary_string = false;
for (std::string::const_iterator k = i->first.begin(); k != i->first.end(); ++k)
{
if (!std::isprint(static_cast<unsigned char>(*k)))
if (!is_print(static_cast<unsigned char>(*k)))
{
binary_string = true;
break;

View File

@ -87,11 +87,16 @@ namespace libtorrent
return c >= '0' && c <= '9';
}
bool isprint(char c)
bool is_print(char c)
{
return c >= 32 && c < 127;
}
bool is_space(char c)
{
return c == ' ' || c == '\t';
}
char to_lower(char c)
{
return (c >= 'A' && c <= 'Z') ? c - 'A' + 'a' : c;

View File

@ -69,7 +69,7 @@ namespace
{
fingerprint ret("..", 0, 0, 0, 0);
if (id[0] != '-' || !isprint(id[1]) || (id[2] < '0')
if (id[0] != '-' || !is_print(id[1]) || (id[2] < '0')
|| (id[3] < '0') || (id[4] < '0')
|| (id[5] < '0') || (id[6] < '0')
|| id[7] != '-')
@ -131,7 +131,7 @@ namespace
ret.tag_version = 0;
if (sscanf(ids, "%c%d-%d-%d--", &ret.name[0], &ret.major_version, &ret.minor_version
, &ret.revision_version) != 4
|| !isprint(ret.name[0]))
|| !is_print(ret.name[0]))
return boost::optional<fingerprint>();
return boost::optional<fingerprint>(ret);
@ -384,7 +384,7 @@ namespace libtorrent
std::string unknown("Unknown [");
for (peer_id::const_iterator i = p.begin(); i != p.end(); ++i)
{
unknown += isprint(char(*i))?*i:'.';
unknown += is_print(char(*i))?*i:'.';
}
unknown += "]";
return unknown;

View File

@ -391,7 +391,7 @@ namespace libtorrent
for (int i = 0; i < e.string_length(); ++i)
{
using namespace std;
if (isprint((unsigned char)str[i])) continue;
if (is_print((unsigned char)str[i])) continue;
printable = false;
break;
}

View File

@ -776,6 +776,7 @@ namespace libtorrent
e.tier = j;
e.fail_limit = 0;
e.source = announce_entry::source_torrent;
e.trim();
m_urls.push_back(e);
}
}
@ -805,6 +806,7 @@ namespace libtorrent
announce_entry e(torrent_file.dict_find_string_value("announce"));
e.fail_limit = 0;
e.source = announce_entry::source_torrent;
e.trim();
if (!e.url.empty()) m_urls.push_back(e);
}