made max half open connections default to 8 on windows and added query function for that limit on session.
This commit is contained in:
parent
0d02fe0539
commit
ee5ce50502
|
@ -215,12 +215,18 @@ with the libtorrent package.</li>
|
|||
</ul>
|
||||
</td>
|
||||
</tr>
|
||||
<tr><td><tt class="docutils literal"><span class="pre">pe-support</span></tt></td>
|
||||
<tr><td><tt class="docutils literal"><span class="pre">openssl</span></tt></td>
|
||||
<td><ul class="first last simple">
|
||||
<li><tt class="docutils literal"><span class="pre">on</span></tt> - turns on support for encrypted
|
||||
<li><tt class="docutils literal"><span class="pre">pe</span></tt> - turns on support for encrypted
|
||||
connections. requires openssl (libcrypto)</li>
|
||||
<li><tt class="docutils literal"><span class="pre">sha-1</span></tt> - openssl will be used instead of the
|
||||
public domain SHA-1 implementation shipped with
|
||||
libtorrent. <tt class="docutils literal"><span class="pre">libcrypto.a</span></tt> will be required for
|
||||
linking. Encryption support is still turned off.</li>
|
||||
<li><tt class="docutils literal"><span class="pre">off</span></tt> - turns off support for encrypted
|
||||
connections. openssl is not linked in.</li>
|
||||
connections. openssl is not linked in. The
|
||||
shipped public domain SHA-1 implementation is
|
||||
used.</li>
|
||||
</ul>
|
||||
</td>
|
||||
</tr>
|
||||
|
@ -254,18 +260,6 @@ information.</li>
|
|||
</ul>
|
||||
</td>
|
||||
</tr>
|
||||
<tr><td><tt class="docutils literal"><span class="pre">openssl</span></tt></td>
|
||||
<td><ul class="first last simple">
|
||||
<li><tt class="docutils literal"><span class="pre">on</span></tt> - openssl will be used instead of the
|
||||
public domain SHA-1 implementation shipped with
|
||||
libtorrent. <tt class="docutils literal"><span class="pre">crypto.lib</span></tt> or <tt class="docutils literal"><span class="pre">libcrypto.a</span></tt>
|
||||
will be required for linking.</li>
|
||||
<li><tt class="docutils literal"><span class="pre">off</span></tt> - the shipped SHA-1 implementation will
|
||||
be used, and there will be no dependency on
|
||||
openssl.</li>
|
||||
</ul>
|
||||
</td>
|
||||
</tr>
|
||||
<tr><td><tt class="docutils literal"><span class="pre">character-set</span></tt></td>
|
||||
<td><p class="first">This setting will only have an affect on windows.
|
||||
Other platforms are expected to support UTF-8.</p>
|
||||
|
@ -292,7 +286,8 @@ sure all build variants will actually compile), you can invoke this command:</p>
|
|||
<pre class="literal-block">
|
||||
bjam debug release link=shared link=static logging=verbose logging=default \
|
||||
logging=none dht-support=on dht-support=logging dht-support=off pe-support=on \
|
||||
pe-support=off zlib=shipped zlib=system
|
||||
pe-support=off zlib=shipped zlib=system openssl=on openssl=off \
|
||||
character-set=ansi character-set=unicode
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -504,6 +499,13 @@ torrents will be disabled.</td>
|
|||
<td>This will enable verbose logging of the DHT
|
||||
protocol traffic.</td>
|
||||
</tr>
|
||||
<tr><td><tt class="docutils literal"><span class="pre">TORRENT_DISABLE_ENCRYPTION</span></tt></td>
|
||||
<td>This will disable any encryption support and
|
||||
the openssl dependency that comes with it.
|
||||
Encryption support is the peer connection
|
||||
encrypted supported by clients such as
|
||||
uTorrent, Azureus and KTorrent.</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<p>If you experience that libtorrent uses unreasonable amounts of cpu, it will
|
||||
|
|
|
@ -141,8 +141,8 @@ client than relying on the peer id encoding.</td>
|
|||
<td>A string containing the compact representation of the ip
|
||||
address this peer sees you as. i.e. this is the
|
||||
receiver's external ip address (no port is included).
|
||||
This may be both an IPv4 (4 bytes) or an IPv6 (16 bytes)
|
||||
address.</td>
|
||||
This may be either an IPv4 (4 bytes) or an IPv6
|
||||
(16 bytes) address.</td>
|
||||
</tr>
|
||||
<tr><td>reqq</td>
|
||||
<td>An integer, the number of outstanding request messages
|
||||
|
|
|
@ -35,7 +35,7 @@
|
|||
<li><a class="reference" href="#set-upload-rate-limit-set-download-rate-limit-upload-rate-limit-download-rate-limit" id="id24" name="id24">set_upload_rate_limit() set_download_rate_limit() upload_rate_limit() download_rate_limit()</a></li>
|
||||
<li><a class="reference" href="#set-max-uploads-set-max-connections" id="id25" name="id25">set_max_uploads() set_max_connections()</a></li>
|
||||
<li><a class="reference" href="#num-uploads-num-connections" id="id26" name="id26">num_uploads() num_connections()</a></li>
|
||||
<li><a class="reference" href="#set-max-half-open-connections" id="id27" name="id27">set_max_half_open_connections()</a></li>
|
||||
<li><a class="reference" href="#set-max-half-open-connections-max-half-open-connections" id="id27" name="id27">set_max_half_open_connections() max_half_open_connections()</a></li>
|
||||
<li><a class="reference" href="#set-ip-filter" id="id28" name="id28">set_ip_filter()</a></li>
|
||||
<li><a class="reference" href="#status" id="id29" name="id29">status()</a></li>
|
||||
<li><a class="reference" href="#is-listening-listen-port-listen-on" id="id30" name="id30">is_listening() listen_port() listen_on()</a></li>
|
||||
|
@ -272,6 +272,7 @@ class session: public boost::noncopyable
|
|||
void set_max_uploads(int limit);
|
||||
void set_max_connections(int limit);
|
||||
void set_max_half_open_connections(int limit);
|
||||
int max_half_open_connections() const;
|
||||
|
||||
void set_peer_proxy(proxy_settings const& s);
|
||||
void set_web_seed_proxy(proxy_settings const& s);
|
||||
|
@ -477,10 +478,11 @@ int num_connections() const;
|
|||
(including half-open ones) respectively.</p>
|
||||
</div>
|
||||
<div class="section">
|
||||
<h2><a id="set-max-half-open-connections" name="set-max-half-open-connections">set_max_half_open_connections()</a></h2>
|
||||
<h2><a id="set-max-half-open-connections-max-half-open-connections" name="set-max-half-open-connections-max-half-open-connections">set_max_half_open_connections() max_half_open_connections()</a></h2>
|
||||
<blockquote>
|
||||
<pre class="literal-block">
|
||||
void set_max_half_open_connections(int limit);
|
||||
int max_half_open_connections() const;
|
||||
</pre>
|
||||
</blockquote>
|
||||
<p>Sets the maximum number of half-open connections libtorrent will have when
|
||||
|
@ -492,6 +494,8 @@ other network applications on that system. The default is to have no limit,
|
|||
and passing -1 as the limit, means to have no limit. When limiting the number
|
||||
of simultaneous connection attempts, peers will be put in a queue waiting for
|
||||
their turn to get connected.</p>
|
||||
<p><tt class="docutils literal"><span class="pre">max_half_open_connections()</span></tt> returns the set limit. This limit defaults
|
||||
to 8 on windows.</p>
|
||||
</div>
|
||||
<div class="section">
|
||||
<h2><a id="set-ip-filter" name="set-ip-filter">set_ip_filter()</a></h2>
|
||||
|
|
|
@ -102,6 +102,7 @@ The ``session`` class has the following synopsis::
|
|||
void set_max_uploads(int limit);
|
||||
void set_max_connections(int limit);
|
||||
void set_max_half_open_connections(int limit);
|
||||
int max_half_open_connections() const;
|
||||
|
||||
void set_peer_proxy(proxy_settings const& s);
|
||||
void set_web_seed_proxy(proxy_settings const& s);
|
||||
|
@ -323,12 +324,13 @@ Returns the number of currently unchoked peers and the number of connections
|
|||
(including half-open ones) respectively.
|
||||
|
||||
|
||||
set_max_half_open_connections()
|
||||
-------------------------------
|
||||
set_max_half_open_connections() max_half_open_connections()
|
||||
-----------------------------------------------------------
|
||||
|
||||
::
|
||||
|
||||
void set_max_half_open_connections(int limit);
|
||||
int max_half_open_connections() const;
|
||||
|
||||
Sets the maximum number of half-open connections libtorrent will have when
|
||||
connecting to peers. A half-open connection is one where connect() has been
|
||||
|
@ -340,6 +342,9 @@ and passing -1 as the limit, means to have no limit. When limiting the number
|
|||
of simultaneous connection attempts, peers will be put in a queue waiting for
|
||||
their turn to get connected.
|
||||
|
||||
``max_half_open_connections()`` returns the set limit. This limit defaults
|
||||
to 8 on windows.
|
||||
|
||||
|
||||
set_ip_filter()
|
||||
---------------
|
||||
|
|
|
@ -275,6 +275,7 @@ namespace libtorrent
|
|||
|
||||
int max_connections() const { return m_max_connections; }
|
||||
int max_uploads() const { return m_max_uploads; }
|
||||
int max_half_open_connections() const { return m_half_open.limit(); }
|
||||
|
||||
int num_uploads() const { return m_num_unchoked; }
|
||||
int num_connections() const
|
||||
|
|
|
@ -237,6 +237,7 @@ namespace libtorrent
|
|||
|
||||
int upload_rate_limit() const;
|
||||
int download_rate_limit() const;
|
||||
int max_half_open_connections() const;
|
||||
|
||||
void set_upload_rate_limit(int bytes_per_second);
|
||||
void set_download_rate_limit(int bytes_per_second);
|
||||
|
|
|
@ -349,6 +349,11 @@ namespace libtorrent
|
|||
m_impl->set_max_connections(limit);
|
||||
}
|
||||
|
||||
int session::max_half_open_connections() const
|
||||
{
|
||||
return m_impl->max_half_open_connections();
|
||||
}
|
||||
|
||||
void session::set_max_half_open_connections(int limit)
|
||||
{
|
||||
m_impl->set_max_half_open_connections(limit);
|
||||
|
|
|
@ -532,6 +532,11 @@ namespace detail
|
|||
, m_next_connect_torrent(0)
|
||||
, m_checker_impl(*this)
|
||||
{
|
||||
#ifdef WIN32
|
||||
// windows XP has a limit of 10 simultaneous connections
|
||||
m_half_open.limit(8);
|
||||
#endif
|
||||
|
||||
m_bandwidth_manager[peer_connection::download_channel] = &m_download_channel;
|
||||
m_bandwidth_manager[peer_connection::upload_channel] = &m_upload_channel;
|
||||
|
||||
|
@ -1254,29 +1259,7 @@ namespace detail
|
|||
assert(false);
|
||||
#endif
|
||||
}; // msvc 7.1 seems to require this
|
||||
/*
|
||||
void session_impl::connection_completed(
|
||||
boost::intrusive_ptr<peer_connection> const& p) try
|
||||
{
|
||||
mutex_t::scoped_lock l(m_mutex);
|
||||
|
||||
connection_map::iterator i = m_half_open.find(p->get_socket());
|
||||
m_connections.insert(std::make_pair(p->get_socket(), p));
|
||||
assert(i != m_half_open.end());
|
||||
if (i != m_half_open.end()) m_half_open.erase(i);
|
||||
|
||||
if (m_abort) return;
|
||||
|
||||
process_connection_queue();
|
||||
}
|
||||
catch (std::exception& e)
|
||||
{
|
||||
#ifndef NDEBUG
|
||||
std::cerr << e.what() << std::endl;
|
||||
assert(false);
|
||||
#endif
|
||||
};
|
||||
*/
|
||||
void session_impl::operator()()
|
||||
{
|
||||
eh_initializer();
|
||||
|
|
Loading…
Reference in New Issue