forked from premiere/premiere-libtorrent
merged string function cleanup from RC_0_16
This commit is contained in:
parent
2665d2a4e1
commit
fdc25967c2
|
@ -21,6 +21,7 @@ set(sources
|
||||||
file_storage
|
file_storage
|
||||||
lazy_bdecode
|
lazy_bdecode
|
||||||
escape_string
|
escape_string
|
||||||
|
string_util
|
||||||
file
|
file
|
||||||
gzip
|
gzip
|
||||||
http_connection
|
http_connection
|
||||||
|
|
1
Jamfile
1
Jamfile
|
@ -479,6 +479,7 @@ SOURCES =
|
||||||
file_storage
|
file_storage
|
||||||
lazy_bdecode
|
lazy_bdecode
|
||||||
escape_string
|
escape_string
|
||||||
|
string_util
|
||||||
file
|
file
|
||||||
gzip
|
gzip
|
||||||
http_connection
|
http_connection
|
||||||
|
|
|
@ -99,6 +99,7 @@ nobase_include_HEADERS = \
|
||||||
stat.hpp \
|
stat.hpp \
|
||||||
storage.hpp \
|
storage.hpp \
|
||||||
storage_defs.hpp \
|
storage_defs.hpp \
|
||||||
|
string_util.hpp \
|
||||||
struct_debug.hpp \
|
struct_debug.hpp \
|
||||||
thread.hpp \
|
thread.hpp \
|
||||||
time.hpp \
|
time.hpp \
|
||||||
|
|
|
@ -144,9 +144,6 @@ POSSIBILITY OF SUCH DAMAGE.
|
||||||
#pragma warning(disable:4251)
|
#pragma warning(disable:4251)
|
||||||
// '_vsnprintf': This function or variable may be unsafe
|
// '_vsnprintf': This function or variable may be unsafe
|
||||||
#pragma warning(disable:4996)
|
#pragma warning(disable:4996)
|
||||||
// 'strdup': The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _strdup
|
|
||||||
#pragma warning(disable: 4996)
|
|
||||||
#define strdup _strdup
|
|
||||||
|
|
||||||
#define TORRENT_DEPRECATED_PREFIX __declspec(deprecated)
|
#define TORRENT_DEPRECATED_PREFIX __declspec(deprecated)
|
||||||
|
|
||||||
|
@ -445,10 +442,6 @@ inline int snprintf(char* buf, int len, char const* fmt, ...)
|
||||||
#define TORRENT_USE_I2P 1
|
#define TORRENT_USE_I2P 1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef TORRENT_HAS_STRDUP
|
|
||||||
#define TORRENT_HAS_STRDUP 1
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if !defined TORRENT_IOV_MAX
|
#if !defined TORRENT_IOV_MAX
|
||||||
#ifdef IOV_MAX
|
#ifdef IOV_MAX
|
||||||
#define TORRENT_IOV_MAX IOV_MAX
|
#define TORRENT_IOV_MAX IOV_MAX
|
||||||
|
@ -502,17 +495,6 @@ inline int snprintf(char* buf, int len, char const* fmt, ...)
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if !TORRENT_HAS_STRDUP
|
|
||||||
inline char* strdup(char const* str)
|
|
||||||
{
|
|
||||||
if (str == 0) return 0;
|
|
||||||
char* tmp = (char*)malloc(strlen(str) + 1);
|
|
||||||
if (tmp == 0) return 0;
|
|
||||||
strcpy(tmp, str);
|
|
||||||
return tmp;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// for non-exception builds
|
// for non-exception builds
|
||||||
#ifdef BOOST_NO_EXCEPTIONS
|
#ifdef BOOST_NO_EXCEPTIONS
|
||||||
#define TORRENT_TRY if (true)
|
#define TORRENT_TRY if (true)
|
||||||
|
|
|
@ -47,7 +47,7 @@ POSSIBILITY OF SUCH DAMAGE.
|
||||||
#include <boost/system/error_code.hpp>
|
#include <boost/system/error_code.hpp>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include <string.h> // strdup
|
#include "libtorrent/string_util.hpp" // for allocate_string_copy
|
||||||
#include <stdlib.h> // free
|
#include <stdlib.h> // free
|
||||||
|
|
||||||
namespace libtorrent
|
namespace libtorrent
|
||||||
|
@ -383,7 +383,7 @@ namespace libtorrent
|
||||||
if (!m_msg)
|
if (!m_msg)
|
||||||
{
|
{
|
||||||
std::string msg = m_error.message();
|
std::string msg = m_error.message();
|
||||||
m_msg = strdup(msg.c_str());
|
m_msg = allocate_string_copy(msg.c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
return m_msg;
|
return m_msg;
|
||||||
|
|
|
@ -43,17 +43,6 @@ POSSIBILITY OF SUCH DAMAGE.
|
||||||
namespace libtorrent
|
namespace libtorrent
|
||||||
{
|
{
|
||||||
TORRENT_EXTRA_EXPORT boost::array<char, 4 + std::numeric_limits<size_type>::digits10> to_string(size_type n);
|
TORRENT_EXTRA_EXPORT boost::array<char, 4 + std::numeric_limits<size_type>::digits10> to_string(size_type n);
|
||||||
TORRENT_EXTRA_EXPORT bool is_alpha(char c);
|
|
||||||
TORRENT_EXPORT bool is_digit(char c);
|
|
||||||
TORRENT_EXTRA_EXPORT bool is_print(char c);
|
|
||||||
TORRENT_EXTRA_EXPORT bool is_space(char c);
|
|
||||||
TORRENT_EXTRA_EXPORT char to_lower(char c);
|
|
||||||
|
|
||||||
TORRENT_EXTRA_EXPORT int split_string(char const** tags, int buf_size, char* in);
|
|
||||||
TORRENT_EXTRA_EXPORT bool string_begins_no_case(char const* s1, char const* s2);
|
|
||||||
TORRENT_EXTRA_EXPORT bool string_equal_no_case(char const* s1, char const* s2);
|
|
||||||
|
|
||||||
TORRENT_EXTRA_EXPORT void url_random(char* begin, char* end);
|
|
||||||
|
|
||||||
TORRENT_EXTRA_EXPORT std::string unescape_string(std::string const& s, error_code& ec);
|
TORRENT_EXTRA_EXPORT std::string unescape_string(std::string const& s, error_code& ec);
|
||||||
// replaces all disallowed URL characters by their %-encoding
|
// replaces all disallowed URL characters by their %-encoding
|
||||||
|
|
|
@ -35,6 +35,7 @@ POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
#include <deque>
|
#include <deque>
|
||||||
|
#include "libtorrent/string_util.hpp" // for allocate_string_copy
|
||||||
|
|
||||||
#include "libtorrent/peer.hpp"
|
#include "libtorrent/peer.hpp"
|
||||||
#include "libtorrent/piece_picker.hpp"
|
#include "libtorrent/piece_picker.hpp"
|
||||||
|
@ -487,7 +488,7 @@ namespace libtorrent
|
||||||
|
|
||||||
#if TORRENT_USE_I2P
|
#if TORRENT_USE_I2P
|
||||||
inline policy::i2p_peer::i2p_peer(char const* dest, bool connectable, int src)
|
inline policy::i2p_peer::i2p_peer(char const* dest, bool connectable, int src)
|
||||||
: peer(0, connectable, src), destination(strdup(dest))
|
: peer(0, connectable, src), destination(allocate_string_copy(dest))
|
||||||
{
|
{
|
||||||
#if TORRENT_USE_IPV6
|
#if TORRENT_USE_IPV6
|
||||||
is_v6_addr = false;
|
is_v6_addr = false;
|
||||||
|
|
|
@ -0,0 +1,58 @@
|
||||||
|
/*
|
||||||
|
|
||||||
|
Copyright (c) 2012, Arvid Norberg
|
||||||
|
All rights reserved.
|
||||||
|
|
||||||
|
Redistribution and use in source and binary forms, with or without
|
||||||
|
modification, are permitted provided that the following conditions
|
||||||
|
are met:
|
||||||
|
|
||||||
|
* Redistributions of source code must retain the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer.
|
||||||
|
* Redistributions in binary form must reproduce the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer in
|
||||||
|
the documentation and/or other materials provided with the distribution.
|
||||||
|
* Neither the name of the author nor the names of its
|
||||||
|
contributors may be used to endorse or promote products derived
|
||||||
|
from this software without specific prior written permission.
|
||||||
|
|
||||||
|
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||||
|
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||||
|
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
|
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||||
|
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||||
|
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||||
|
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||||
|
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||||
|
POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef TORRENT_STRING_UTIL_HPP_INCLUDED
|
||||||
|
#define TORRENT_STRING_UTIL_HPP_INCLUDED
|
||||||
|
|
||||||
|
namespace libtorrent
|
||||||
|
{
|
||||||
|
TORRENT_EXTRA_EXPORT bool is_alpha(char c);
|
||||||
|
TORRENT_EXPORT bool is_digit(char c);
|
||||||
|
TORRENT_EXTRA_EXPORT bool is_print(char c);
|
||||||
|
TORRENT_EXTRA_EXPORT bool is_space(char c);
|
||||||
|
TORRENT_EXTRA_EXPORT char to_lower(char c);
|
||||||
|
|
||||||
|
TORRENT_EXTRA_EXPORT int split_string(char const** tags, int buf_size, char* in);
|
||||||
|
TORRENT_EXTRA_EXPORT bool string_begins_no_case(char const* s1, char const* s2);
|
||||||
|
TORRENT_EXTRA_EXPORT bool string_equal_no_case(char const* s1, char const* s2);
|
||||||
|
|
||||||
|
TORRENT_EXTRA_EXPORT void url_random(char* begin, char* end);
|
||||||
|
|
||||||
|
// strdup is not part of the C standard. Some systems
|
||||||
|
// don't have it and it won't be available when building
|
||||||
|
// in strict ansi mode
|
||||||
|
char* allocate_string_copy(char const* str);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
|
@ -84,6 +84,7 @@ libtorrent_rasterbar_la_SOURCES = \
|
||||||
socks5_stream.cpp \
|
socks5_stream.cpp \
|
||||||
stat.cpp \
|
stat.cpp \
|
||||||
storage.cpp \
|
storage.cpp \
|
||||||
|
string_util.cpp \
|
||||||
thread.cpp \
|
thread.cpp \
|
||||||
torrent.cpp \
|
torrent.cpp \
|
||||||
torrent_handle.cpp \
|
torrent_handle.cpp \
|
||||||
|
|
|
@ -84,87 +84,6 @@ namespace libtorrent
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool is_alpha(char c)
|
|
||||||
{
|
|
||||||
return (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z');
|
|
||||||
}
|
|
||||||
|
|
||||||
bool is_digit(char c)
|
|
||||||
{
|
|
||||||
return c >= '0' && c <= '9';
|
|
||||||
}
|
|
||||||
|
|
||||||
bool is_print(char c)
|
|
||||||
{
|
|
||||||
return c >= 32 && c < 127;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool is_space(char c)
|
|
||||||
{
|
|
||||||
const static char* ws = " \t\n\r\f\v";
|
|
||||||
return std::strchr(ws, c) != 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
// generate a url-safe random string
|
|
||||||
void url_random(char* begin, char* end)
|
|
||||||
{
|
|
||||||
// http-accepted characters:
|
|
||||||
// excluding ', since some buggy trackers don't support that
|
|
||||||
static char const printable[] = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
|
|
||||||
"abcdefghijklmnopqrstuvwxyz-_.!~*()";
|
|
||||||
|
|
||||||
// the random number
|
|
||||||
while (begin != end)
|
|
||||||
*begin++ = printable[random() % (sizeof(printable)-1)];
|
|
||||||
}
|
|
||||||
|
|
||||||
char to_lower(char c)
|
|
||||||
{
|
|
||||||
return (c >= 'A' && c <= 'Z') ? c - 'A' + 'a' : c;
|
|
||||||
}
|
|
||||||
|
|
||||||
int split_string(char const** tags, int buf_size, char* in)
|
|
||||||
{
|
|
||||||
int ret = 0;
|
|
||||||
char* i = in;
|
|
||||||
for (;*i; ++i)
|
|
||||||
{
|
|
||||||
if (!is_print(*i) || is_space(*i))
|
|
||||||
{
|
|
||||||
*i = 0;
|
|
||||||
if (ret == buf_size) return ret;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
if (i == in || i[-1] == 0)
|
|
||||||
{
|
|
||||||
tags[ret++] = i;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool string_begins_no_case(char const* s1, char const* s2)
|
|
||||||
{
|
|
||||||
while (*s1 != 0)
|
|
||||||
{
|
|
||||||
if (to_lower(*s1) != to_lower(*s2)) return false;
|
|
||||||
++s1;
|
|
||||||
++s2;
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool string_equal_no_case(char const* s1, char const* s2)
|
|
||||||
{
|
|
||||||
while (to_lower(*s1) == to_lower(*s2))
|
|
||||||
{
|
|
||||||
if (*s1 == 0) return true;
|
|
||||||
++s1;
|
|
||||||
++s2;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
std::string unescape_string(std::string const& s, error_code& ec)
|
std::string unescape_string(std::string const& s, error_code& ec)
|
||||||
{
|
{
|
||||||
std::string ret;
|
std::string ret;
|
||||||
|
|
|
@ -33,6 +33,7 @@ POSSIBILITY OF SUCH DAMAGE.
|
||||||
#include "libtorrent/pch.hpp"
|
#include "libtorrent/pch.hpp"
|
||||||
|
|
||||||
#include "libtorrent/file_storage.hpp"
|
#include "libtorrent/file_storage.hpp"
|
||||||
|
#include "libtorrent/string_util.hpp" // for allocate_string_copy
|
||||||
#include "libtorrent/file.hpp"
|
#include "libtorrent/file.hpp"
|
||||||
#include "libtorrent/utf8.hpp"
|
#include "libtorrent/utf8.hpp"
|
||||||
#include <boost/bind.hpp>
|
#include <boost/bind.hpp>
|
||||||
|
@ -147,7 +148,7 @@ namespace libtorrent
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
name = borrow_chars ? n : strdup(n);
|
name = borrow_chars ? n : allocate_string_copy(n);
|
||||||
}
|
}
|
||||||
name_len = borrow_chars;
|
name_len = borrow_chars;
|
||||||
}
|
}
|
||||||
|
|
|
@ -48,7 +48,7 @@ POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
#include "libtorrent/identify_client.hpp"
|
#include "libtorrent/identify_client.hpp"
|
||||||
#include "libtorrent/fingerprint.hpp"
|
#include "libtorrent/fingerprint.hpp"
|
||||||
#include "libtorrent/escape_string.hpp"
|
#include "libtorrent/string_util.hpp"
|
||||||
|
|
||||||
namespace
|
namespace
|
||||||
{
|
{
|
||||||
|
|
|
@ -0,0 +1,133 @@
|
||||||
|
/*
|
||||||
|
|
||||||
|
Copyright (c) 2012, Arvid Norberg
|
||||||
|
All rights reserved.
|
||||||
|
|
||||||
|
Redistribution and use in source and binary forms, with or without
|
||||||
|
modification, are permitted provided that the following conditions
|
||||||
|
are met:
|
||||||
|
|
||||||
|
* Redistributions of source code must retain the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer.
|
||||||
|
* Redistributions in binary form must reproduce the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer in
|
||||||
|
the documentation and/or other materials provided with the distribution.
|
||||||
|
* Neither the name of the author nor the names of its
|
||||||
|
contributors may be used to endorse or promote products derived
|
||||||
|
from this software without specific prior written permission.
|
||||||
|
|
||||||
|
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||||
|
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||||
|
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
|
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||||
|
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||||
|
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||||
|
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||||
|
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||||
|
POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "libtorrent/config.hpp"
|
||||||
|
#include "libtorrent/string_util.hpp"
|
||||||
|
|
||||||
|
#include <stdlib.h> // for malloc/free
|
||||||
|
#include <string.h> // for strcpy/strlen
|
||||||
|
|
||||||
|
namespace libtorrent
|
||||||
|
{
|
||||||
|
|
||||||
|
bool is_alpha(char c)
|
||||||
|
{
|
||||||
|
return (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z');
|
||||||
|
}
|
||||||
|
|
||||||
|
bool is_digit(char c)
|
||||||
|
{
|
||||||
|
return c >= '0' && c <= '9';
|
||||||
|
}
|
||||||
|
|
||||||
|
bool is_print(char c)
|
||||||
|
{
|
||||||
|
return c >= 32 && c < 127;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool is_space(char c)
|
||||||
|
{
|
||||||
|
const static char* ws = " \t\n\r\f\v";
|
||||||
|
return strchr(ws, c) != 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
char to_lower(char c)
|
||||||
|
{
|
||||||
|
return (c >= 'A' && c <= 'Z') ? c - 'A' + 'a' : c;
|
||||||
|
}
|
||||||
|
|
||||||
|
int split_string(char const** tags, int buf_size, char* in)
|
||||||
|
{
|
||||||
|
int ret = 0;
|
||||||
|
char* i = in;
|
||||||
|
for (;*i; ++i)
|
||||||
|
{
|
||||||
|
if (!is_print(*i) || is_space(*i))
|
||||||
|
{
|
||||||
|
*i = 0;
|
||||||
|
if (ret == buf_size) return ret;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (i == in || i[-1] == 0)
|
||||||
|
{
|
||||||
|
tags[ret++] = i;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool string_begins_no_case(char const* s1, char const* s2)
|
||||||
|
{
|
||||||
|
while (*s1 != 0)
|
||||||
|
{
|
||||||
|
if (to_lower(*s1) != to_lower(*s2)) return false;
|
||||||
|
++s1;
|
||||||
|
++s2;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool string_equal_no_case(char const* s1, char const* s2)
|
||||||
|
{
|
||||||
|
while (to_lower(*s1) == to_lower(*s2))
|
||||||
|
{
|
||||||
|
if (*s1 == 0) return true;
|
||||||
|
++s1;
|
||||||
|
++s2;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// generate a url-safe random string
|
||||||
|
void url_random(char* begin, char* end)
|
||||||
|
{
|
||||||
|
// http-accepted characters:
|
||||||
|
// excluding ', since some buggy trackers don't support that
|
||||||
|
static char const printable[] = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
|
||||||
|
"abcdefghijklmnopqrstuvwxyz-_.!~*()";
|
||||||
|
|
||||||
|
// the random number
|
||||||
|
while (begin != end)
|
||||||
|
*begin++ = printable[random() % (sizeof(printable)-1)];
|
||||||
|
}
|
||||||
|
|
||||||
|
char* allocate_string_copy(char const* str)
|
||||||
|
{
|
||||||
|
if (str == 0) return 0;
|
||||||
|
char* tmp = (char*)malloc(strlen(str) + 1);
|
||||||
|
if (tmp == 0) return 0;
|
||||||
|
strcpy(tmp, str);
|
||||||
|
return tmp;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
|
@ -81,6 +81,7 @@ POSSIBILITY OF SUCH DAMAGE.
|
||||||
#include "libtorrent/http_connection.hpp"
|
#include "libtorrent/http_connection.hpp"
|
||||||
#include "libtorrent/gzip.hpp" // for inflate_gzip
|
#include "libtorrent/gzip.hpp" // for inflate_gzip
|
||||||
#include "libtorrent/random.hpp"
|
#include "libtorrent/random.hpp"
|
||||||
|
#include "libtorrent/string_util.hpp" // for allocate_string_copy
|
||||||
|
|
||||||
#ifdef TORRENT_USE_OPENSSL
|
#ifdef TORRENT_USE_OPENSSL
|
||||||
#include "libtorrent/ssl_stream.hpp"
|
#include "libtorrent/ssl_stream.hpp"
|
||||||
|
@ -2129,7 +2130,7 @@ namespace libtorrent
|
||||||
INVARIANT_CHECK;
|
INVARIANT_CHECK;
|
||||||
m_net_interfaces.clear();
|
m_net_interfaces.clear();
|
||||||
|
|
||||||
char* str = strdup(net_interfaces.c_str());
|
char* str = allocate_string_copy(net_interfaces.c_str());
|
||||||
char* ptr = str;
|
char* ptr = str;
|
||||||
|
|
||||||
while (ptr)
|
while (ptr)
|
||||||
|
|
|
@ -34,9 +34,9 @@ POSSIBILITY OF SUCH DAMAGE.
|
||||||
#include "libtorrent/socket.hpp"
|
#include "libtorrent/socket.hpp"
|
||||||
#include "libtorrent/udp_socket.hpp"
|
#include "libtorrent/udp_socket.hpp"
|
||||||
#include "libtorrent/connection_queue.hpp"
|
#include "libtorrent/connection_queue.hpp"
|
||||||
#include "libtorrent/escape_string.hpp"
|
|
||||||
#include "libtorrent/socket_io.hpp"
|
#include "libtorrent/socket_io.hpp"
|
||||||
#include "libtorrent/error.hpp"
|
#include "libtorrent/error.hpp"
|
||||||
|
#include "libtorrent/string_util.hpp" // for allocate_string_copy
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <boost/bind.hpp>
|
#include <boost/bind.hpp>
|
||||||
#include <boost/array.hpp>
|
#include <boost/array.hpp>
|
||||||
|
@ -144,7 +144,7 @@ void udp_socket::send_hostname(char const* hostname, int port
|
||||||
m_queue.push_back(queued_packet());
|
m_queue.push_back(queued_packet());
|
||||||
queued_packet& qp = m_queue.back();
|
queued_packet& qp = m_queue.back();
|
||||||
qp.ep.port(port);
|
qp.ep.port(port);
|
||||||
qp.hostname = strdup(hostname);
|
qp.hostname = allocate_string_copy(hostname);
|
||||||
qp.buf.insert(qp.buf.begin(), p, p + len);
|
qp.buf.insert(qp.buf.begin(), p, p + len);
|
||||||
qp.flags = 0;
|
qp.flags = 0;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue