merged RC_1_1 into master

This commit is contained in:
arvidn 2018-04-04 19:48:26 +02:00
commit 32b2de8f17
18 changed files with 65 additions and 68 deletions

View File

@ -56,19 +56,15 @@ before_install:
- 'if [[ $TRAVIS_OS_NAME == "osx" && ( "$tests" == "1" || "$sim" == 1 || "$examples" == "1" || "$tools" == "1" || "$python" == "1" ) ]]; then - 'if [[ $TRAVIS_OS_NAME == "osx" && ( "$tests" == "1" || "$sim" == 1 || "$examples" == "1" || "$tools" == "1" || "$python" == "1" ) ]]; then
travis_retry brew update > /dev/null && brew install ccache boost-build; travis_retry brew update > /dev/null && brew install ccache boost-build;
fi' fi'
- 'if [[ $TRAVIS_OS_NAME == "osx" && "$python" == "1" ]]; then travis_retry brew install boost-python python2; fi'
# we have to use python from brew rather than the system provided python # we have to use python from brew rather than the system provided python
# because of OSX System Integrity Protection, which prevents injecting # because of OSX System Integrity Protection, which prevents injecting
# user-libraries (i.e. python modules) into system binaries (i.e. /usr/bin/python) # user-libraries (i.e. python modules) into system binaries (i.e. /usr/bin/python)
- 'if [ "$docs" = "1" ]; then - 'if [ "$docs" = "1" ]; then
easy_install --user docutils; pip install docutils;
mkdir -p /Users/travis/Library/Python/2.7/lib/python/site-packages; pip install Pygments;
echo ''import site; site.addsitedir("/usr/local/lib/python2.7/site-packages")'' >> /Users/travis/Library/Python/2.7/lib/python/site-packages/homebrew.pth;
easy_install --user Pygments;
easy_install --user aafigure;
travis_retry brew install graphviz hunspell; travis_retry brew install graphviz hunspell;
easy_install --user Pillow;
fi' fi'
- 'if [[ $TRAVIS_OS_NAME == "osx" && "$python" == "1" ]]; then travis_retry brew install boost-python python2; fi'
- if [ "$coverage" == "1" ]; then - if [ "$coverage" == "1" ]; then
pip install --user codecov; pip install --user codecov;
@ -130,7 +126,7 @@ install:
<linkflags>\"-arch armv7\" <linkflags>\"-arch armv7\"
<linkflags>-fobjc-abi-version=2 ;" >>~/user-config.jam' <linkflags>-fobjc-abi-version=2 ;" >>~/user-config.jam'
- 'echo "using python : 2.7 ;" >> ~/user-config.jam' - 'echo "using python : 2.7 ;" >> ~/user-config.jam'
- if [ "$docs" == "1" ]; then /Users/travis/Library/Python/2.7/bin/rst2html.py --version; fi - if [ "$docs" == "1" ]; then rst2html.py --version; fi
- 'if [ "$lint" == "1" ]; then curl "https://raw.githubusercontent.com/google/styleguide/71ec7f1e524969c19ce33cfc72e8e023f2b98ee2/cpplint/cpplint.py" >~/cpplint.py; fi' - 'if [ "$lint" == "1" ]; then curl "https://raw.githubusercontent.com/google/styleguide/71ec7f1e524969c19ce33cfc72e8e023f2b98ee2/cpplint/cpplint.py" >~/cpplint.py; fi'
- 'if [ $sonar_scan == "1" ]; then - 'if [ $sonar_scan == "1" ]; then
@ -169,7 +165,7 @@ script:
- cd docs - cd docs
- 'if [ "$docs" == "1" ]; then - 'if [ "$docs" == "1" ]; then
make spell-check RST2HTML=/Users/travis/Library/Python/2.7/bin/rst2html.py AAFIGURE=echo; make spell-check RST2HTML=rst2html.py AAFIGURE=echo;
fi' fi'
- cd .. - cd ..

View File

@ -58,7 +58,7 @@ dependent boost libraries with the correct compiler settings, in order to
ensure that the build targets are link compatible (see `boost guidelines`__ ensure that the build targets are link compatible (see `boost guidelines`__
for some details on this issue). for some details on this issue).
__ http://boost.org/more/separate_compilation.html __ https://boost.org/more/separate_compilation.html
Since BBv2 will build the boost libraries for you, you need the full boost Since BBv2 will build the boost libraries for you, you need the full boost
source package. Having boost installed via some package system is usually not source package. Having boost installed via some package system is usually not
@ -74,7 +74,7 @@ Step 1: Download boost
You'll find boost here__. You'll find boost here__.
__ http://sourceforge.net/project/showfiles.php?group_id=7586&package_id=8041&release_id=619445 __ https://sourceforge.net/project/showfiles.php?group_id=7586&package_id=8041&release_id=619445
Extract the archive to some directory where you want it. For the sake of this Extract the archive to some directory where you want it. For the sake of this
guide, let's assume you extract the package to ``c:\boost_1_64_0`` (I'm using guide, let's assume you extract the package to ``c:\boost_1_64_0`` (I'm using
@ -141,7 +141,7 @@ Note that the spaces around the semi-colons and colons are important!
Also see the `official installation instructions`_. Also see the `official installation instructions`_.
.. _`official installation instructions`: http://www.boost.org/doc/html/bbv2/installation.html .. _`official installation instructions`: https://www.boost.org/doc/html/bbv2/installation.html
Step 3: Building libtorrent Step 3: Building libtorrent
@ -392,8 +392,8 @@ boost.program-options symbols.
For more information, see the `Boost build v2 documentation`__, or more For more information, see the `Boost build v2 documentation`__, or more
specifically `the section on builtin features`__. specifically `the section on builtin features`__.
__ http://www.boost.org/tools/build/v2/index.html __ https://www.boost.org/tools/build/v2/index.html
__ http://www.boost.org/doc/html/bbv2/reference.html#bbv2.advanced.builtins.features __ https://www.boost.org/doc/html/bbv2/reference.html#bbv2.advanced.builtins.features
building with autotools building with autotools
@ -601,7 +601,7 @@ defines you can use to control the build.
| | custom one. | | | custom one. |
+----------------------------------------+-------------------------------------------------+ +----------------------------------------+-------------------------------------------------+
.. _`BEP 38`: http://www.bittorrent.org/beps/bep_0038.html .. _`BEP 38`: https://www.bittorrent.org/beps/bep_0038.html
If you experience that libtorrent uses unreasonable amounts of cpu, it will If you experience that libtorrent uses unreasonable amounts of cpu, it will
definitely help to define ``NDEBUG``, since it will remove the invariant checks definitely help to define ``NDEBUG``, since it will remove the invariant checks

View File

@ -16,7 +16,7 @@ There are several ways to contribute to libtorrent at various levels. Any help i
much appreciated. If you're interested in something libtorrent related that's not much appreciated. If you're interested in something libtorrent related that's not
enumerated on this page, please contact arvid@libtorrent.org or the `mailing list`_. enumerated on this page, please contact arvid@libtorrent.org or the `mailing list`_.
.. _`mailing list`: http://lists.sourceforge.net/lists/listinfo/libtorrent-discuss .. _`mailing list`: https://lists.sourceforge.net/lists/listinfo/libtorrent-discuss
1. Testing 1. Testing
This is not just limited to finding bugs and ways to reproduce crashes, but also This is not just limited to finding bugs and ways to reproduce crashes, but also

View File

@ -50,7 +50,7 @@ IPv6 support
**This extension is superseeded by** `BEP 32`_. **This extension is superseeded by** `BEP 32`_.
.. _`BEP 32`: http://bittorrent.org/beps/bep_0032.html .. _`BEP 32`: https://bittorrent.org/beps/bep_0032.html
The DHT messages that don't support IPv6 are the ``nodes`` replies. The DHT messages that don't support IPv6 are the ``nodes`` replies.
They encode all the contacts as 6 bytes packed together in sequence in a They encode all the contacts as 6 bytes packed together in sequence in a

View File

@ -390,8 +390,8 @@ rationale
--------- ---------
The reason to use curve25519_ instead of, for instance, RSA is compactness. According to The reason to use curve25519_ instead of, for instance, RSA is compactness. According to
http://cr.yp.to/, curve25519 is free from patent claims and there are open implementations https://cr.yp.to/, curve25519 is free from patent claims and there are open implementations
in both C and Java. in both C and Java.
.. _curve25519: http://cr.yp.to/ecdh.html .. _curve25519: https://cr.yp.to/ecdh.html

View File

@ -280,7 +280,7 @@ number is outdated.
The error message (as specified by BEP5_) looks like this: The error message (as specified by BEP5_) looks like this:
.. _BEP5: http://www.bittorrent.org/beps/bep_0005.html .. _BEP5: https://www.bittorrent.org/beps/bep_0005.html
.. parsed-literal:: .. parsed-literal::
@ -475,7 +475,7 @@ Libraries that implement ed25519 DSA:
* libsodium_ * libsodium_
* `nightcracker's ed25519`_ * `nightcracker's ed25519`_
.. _NaCl: http://nacl.cr.yp.to/ .. _NaCl: https://nacl.cr.yp.to/
.. _libsodium: https://github.com/jedisct1/libsodium .. _libsodium: https://github.com/jedisct1/libsodium
.. _`nightcracker's ed25519`: https://github.com/nightcracker/ed25519 .. _`nightcracker's ed25519`: https://github.com/nightcracker/ed25519

View File

@ -295,7 +295,7 @@ Don't have metadata:
| | | doesn't have any metadata. | | | | doesn't have any metadata. |
+-----------+---------------+----------------------------------------+ +-----------+---------------+----------------------------------------+
.. _`BEP 9`: http://bittorrent.org/beps/bep_0009.html .. _`BEP 9`: https://bittorrent.org/beps/bep_0009.html
dont_have dont_have
--------- ---------

View File

@ -109,19 +109,19 @@ network
.. _`DHT extensions`: dht_extensions.html .. _`DHT extensions`: dht_extensions.html
.. _`BEP 5`: http://bittorrent.org/beps/bep_0005.html .. _`BEP 5`: https://bittorrent.org/beps/bep_0005.html
.. _`BEP 7`: http://bittorrent.org/beps/bep_0007.html .. _`BEP 7`: https://bittorrent.org/beps/bep_0007.html
.. _`BEP 9`: http://bittorrent.org/beps/bep_0009.html .. _`BEP 9`: https://bittorrent.org/beps/bep_0009.html
.. _`BEP 10`: http://bittorrent.org/beps/bep_0010.html .. _`BEP 10`: https://bittorrent.org/beps/bep_0010.html
.. _`BEP 12`: http://bittorrent.org/beps/bep_0012.html .. _`BEP 12`: https://bittorrent.org/beps/bep_0012.html
.. _`BEP 15`: http://bittorrent.org/beps/bep_0015.html .. _`BEP 15`: https://bittorrent.org/beps/bep_0015.html
.. _`BEP 16`: http://bittorrent.org/beps/bep_0016.html .. _`BEP 16`: https://bittorrent.org/beps/bep_0016.html
.. _`BEP 17`: http://bittorrent.org/beps/bep_0017.html .. _`BEP 17`: https://bittorrent.org/beps/bep_0017.html
.. _`BEP 19`: http://bittorrent.org/beps/bep_0019.html .. _`BEP 19`: https://bittorrent.org/beps/bep_0019.html
.. _`BEP 21`: http://bittorrent.org/beps/bep_0021.html .. _`BEP 21`: https://bittorrent.org/beps/bep_0021.html
.. _`BEP 24`: http://bittorrent.org/beps/bep_0024.html .. _`BEP 24`: https://bittorrent.org/beps/bep_0024.html
.. _`BEP 27`: http://bittorrent.org/beps/bep_0027.html .. _`BEP 27`: https://bittorrent.org/beps/bep_0027.html
.. _`BEP 29`: http://bittorrent.org/beps/bep_0029.html .. _`BEP 29`: https://bittorrent.org/beps/bep_0029.html
.. _`extension protocol`: extension_protocol.html .. _`extension protocol`: extension_protocol.html
highlighted features highlighted features

View File

@ -60,9 +60,9 @@ symbols = \
static_links = \ static_links = \
{ {
".. _`BEP 3`: http://bittorrent.org/beps/bep_0003.html", ".. _`BEP 3`: https://bittorrent.org/beps/bep_0003.html",
".. _`BEP 17`: http://bittorrent.org/beps/bep_0017.html", ".. _`BEP 17`: https://bittorrent.org/beps/bep_0017.html",
".. _`BEP 19`: http://bittorrent.org/beps/bep_0019.html" ".. _`BEP 19`: https://bittorrent.org/beps/bep_0019.html"
} }
anon_index = 0 anon_index = 0

View File

@ -81,13 +81,13 @@ libtorrent
.. _`DHT store extension`: dht_store.html .. _`DHT store extension`: dht_store.html
.. _`UDP tracker protocol`: udp_tracker_protocol.html .. _`UDP tracker protocol`: udp_tracker_protocol.html
.. _`HTTP seed`: http://www.getright.com/seedtorrent.html .. _`HTTP seed`: http://www.getright.com/seedtorrent.html
.. _multitracker: http://bittorrent.org/beps/bep_0012.html .. _multitracker: https://bittorrent.org/beps/bep_0012.html
.. _mailing list: http://lists.sourceforge.net/lists/listinfo/libtorrent-discuss .. _mailing list: https://lists.sourceforge.net/lists/listinfo/libtorrent-discuss
.. _archive: https://sourceforge.net/p/libtorrent/mailman/libtorrent-discuss/ .. _archive: https://sourceforge.net/p/libtorrent/mailman/libtorrent-discuss/
.. _`who's using libtorrent?`: projects.html .. _`who's using libtorrent?`: projects.html
.. _`report bugs`: https://github.com/arvidn/libtorrent/issues .. _`report bugs`: https://github.com/arvidn/libtorrent/issues
.. _`github page`: https://github.com/arvidn/libtorrent .. _`github page`: https://github.com/arvidn/libtorrent
.. _blog: http://blog.libtorrent.org .. _blog: https://blog.libtorrent.org
.. _java: https://github.com/frostwire/frostwire-jlibtorrent/ .. _java: https://github.com/frostwire/frostwire-jlibtorrent/
.. _python: python_binding.html .. _python: python_binding.html
@ -133,9 +133,9 @@ See the contribute_ page for other ways to help out.
<span style="display:block;text-align:center;margin-top:1em"> <span style="display:block;text-align:center;margin-top:1em">
<span style="display:inline-block"> <span style="display:inline-block">
<a class="FlattrButton" style="display:none;" href="http://libtorrent.org"></a> <a class="FlattrButton" style="display:none;" href="https://libtorrent.org"></a>
<noscript><a href="https://flattr.com/thing/95662/libtorrent" target="_blank"> <noscript><a href="https://flattr.com/thing/95662/libtorrent" target="_blank">
<img src="http://api.flattr.com/button/flattr-badge-large.png" alt="Flattr this" title="Flattr this" border="0" /></a></noscript> <img src="https://api.flattr.com/button/flattr-badge-large.png" alt="Flattr this" title="Flattr this" border="0" /></a></noscript>
</span> </span>
<span style="display:inline-block"> <span style="display:inline-block">
@ -158,7 +158,7 @@ Support
Please direct questions to the `mailing list`__, general libtorrent discussion. Please direct questions to the `mailing list`__, general libtorrent discussion.
__ http://lists.sourceforge.net/lists/listinfo/libtorrent-discuss __ https://lists.sourceforge.net/lists/listinfo/libtorrent-discuss
You can usually find me as hydri in ``#libtorrent`` on ``irc.freenode.net``. You can usually find me as hydri in ``#libtorrent`` on ``irc.freenode.net``.
@ -167,7 +167,7 @@ license
libtorrent is released under the BSD-license_. libtorrent is released under the BSD-license_.
.. _BSD-license: http://opensource.org/licenses/bsd-license.php .. _BSD-license: https://opensource.org/licenses/bsd-license.php
This means that you can use the library in your project without having to This means that you can use the library in your project without having to
release its source code. The only requirement is that you give credit release its source code. The only requirement is that you give credit

View File

@ -109,7 +109,7 @@ with an associated port.
For documentation on these types, please refer to the `asio documentation`_. For documentation on these types, please refer to the `asio documentation`_.
.. _`asio documentation`: http://www.boost.org/doc/libs/1_66_0/doc/html/boost_asio.html .. _`asio documentation`: https://www.boost.org/doc/libs/1_66_0/doc/html/boost_asio.html
exceptions exceptions
========== ==========
@ -602,8 +602,8 @@ There is limited support for HTTP redirects. In case some files are redirected
to *different hosts*, the files must be piece aligned or padded to be piece to *different hosts*, the files must be piece aligned or padded to be piece
aligned. aligned.
.. _`BEP 17`: http://bittorrent.org/beps/bep_0017.html .. _`BEP 17`: https://bittorrent.org/beps/bep_0017.html
.. _`BEP 19`: http://bittorrent.org/beps/bep_0019.html .. _`BEP 19`: https://bittorrent.org/beps/bep_0019.html
piece picker piece picker
============ ============
@ -907,7 +907,7 @@ torrents it distributes, and issue separate peer certificates for each torrent.
A peer receiving a certificate will not necessarily be able to access all A peer receiving a certificate will not necessarily be able to access all
torrents published by this root certificate (only if it has a "star cert"). torrents published by this root certificate (only if it has a "star cert").
.. _`RFC 2818`: http://www.ietf.org/rfc/rfc2818.txt .. _`RFC 2818`: https://www.ietf.org/rfc/rfc2818.txt
testing testing
------- -------

View File

@ -7,7 +7,7 @@
var s = document.createElement('script'), t = document.getElementsByTagName('script')[0]; var s = document.createElement('script'), t = document.getElementsByTagName('script')[0];
s.type = 'text/javascript'; s.type = 'text/javascript';
s.async = true; s.async = true;
s.src = 'http://api.flattr.com/js/0.6/load.js?mode=auto'; s.src = 'https://api.flattr.com/js/0.6/load.js?mode=auto';
t.parentNode.insertBefore(s, t); t.parentNode.insertBefore(s, t);
})(); })();
/* ]]> */ /* ]]> */
@ -37,7 +37,7 @@
<table> <table>
<tr> <tr>
<td><a href="index.html">home</a></td> <td><a href="index.html">home</a></td>
<td><a href="http://blog.libtorrent.org">blog</a></td> <td><a href="https://blog.libtorrent.org">blog</a></td>
<td><a href="utp.html">uTP</a></td> <td><a href="utp.html">uTP</a></td>
</tr> </tr>
<tr> <tr>

View File

@ -7,7 +7,7 @@
var s = document.createElement('script'), t = document.getElementsByTagName('script')[0]; var s = document.createElement('script'), t = document.getElementsByTagName('script')[0];
s.type = 'text/javascript'; s.type = 'text/javascript';
s.async = true; s.async = true;
s.src = 'http://api.flattr.com/js/0.6/load.js?mode=auto'; s.src = 'https://api.flattr.com/js/0.6/load.js?mode=auto';
t.parentNode.insertBefore(s, t); t.parentNode.insertBefore(s, t);
})(); })();
/* ]]> */ /* ]]> */
@ -48,7 +48,7 @@
<table> <table>
<tr> <tr>
<td><a href="index.html">home</a></td> <td><a href="index.html">home</a></td>
<td><a href="http://blog.libtorrent.org">blog</a></td> <td><a href="https://blog.libtorrent.org">blog</a></td>
<td><a href="utp.html">uTP</a></td> <td><a href="utp.html">uTP</a></td>
</tr> </tr>
<tr> <tr>
@ -75,7 +75,7 @@
</div> </div>
<div id="filler"></div> <div id="filler"></div>
<script src="http://www.google-analytics.com/urchin.js" type="text/javascript"> <script src="https://www.google-analytics.com/urchin.js" type="text/javascript">
</script> </script>
<script type="text/javascript"> <script type="text/javascript">
_uacct = "UA-1599045-1"; _uacct = "UA-1599045-1";

View File

@ -14,7 +14,7 @@ to download. It is not complete, please submit suggestions via pull requests at
https://github.com/arvidn/libtorrent or to the `mailing list`_. Ideally in the https://github.com/arvidn/libtorrent or to the `mailing list`_. Ideally in the
form of patches against ``docs/troubleshooting.dot``. form of patches against ``docs/troubleshooting.dot``.
.. _`mailing list`: http://lists.sourceforge.net/lists/listinfo/libtorrent-discuss .. _`mailing list`: https://lists.sourceforge.net/lists/listinfo/libtorrent-discuss
|thumb|__ |thumb|__

View File

@ -271,7 +271,7 @@ bdecode_node_ is in use.
For performance details on `bdecode()`_, see the `blog post about it`__. For performance details on `bdecode()`_, see the `blog post about it`__.
__ http://blog.libtorrent.org/2015/03/bdecode-parsers/ __ https://blog.libtorrent.org/2015/03/bdecode-parsers/
.. _session: reference-Core.html#session .. _session: reference-Core.html#session
.. _session_handle: reference-Core.html#session_handle .. _session_handle: reference-Core.html#session_handle
@ -294,7 +294,7 @@ __ http://blog.libtorrent.org/2015/03/bdecode-parsers/
.. _`post_torrent_updates()`: reference-Core.html#post_torrent_updates() .. _`post_torrent_updates()`: reference-Core.html#post_torrent_updates()
.. _torrent_status: reference-Core.html#torrent_status .. _torrent_status: reference-Core.html#torrent_status
.. _state_update_alert: reference-Alerts.html#state_update_alert .. _state_update_alert: reference-Alerts.html#state_update_alert
.. _scalability: http://blog.libtorrent.org/2011/11/scalable-interfaces/ .. _scalability: https://blog.libtorrent.org/2011/11/scalable-interfaces/
.. _`save_resume_data()`: reference-Core.html#save_resume_data() .. _`save_resume_data()`: reference-Core.html#save_resume_data()
.. _save_resume_data_alert: reference-Alerts.html#save_resume_data_alert .. _save_resume_data_alert: reference-Alerts.html#save_resume_data_alert
.. _save_resume_data_failed_alert: reference-Alerts.html#save_resume_data_failed_alert .. _save_resume_data_failed_alert: reference-Alerts.html#save_resume_data_failed_alert

View File

@ -1193,8 +1193,9 @@ int _System __libsocket_sysctl(int* mib, u_int namelen, void *oldp, size_t *oldl
return std::vector<ip_route>(); return std::vector<ip_route>();
} }
int s = ::socket(AF_INET, SOCK_DGRAM, 0); close(sock);
if (s < 0) sock = ::socket(AF_INET, SOCK_DGRAM, 0);
if (sock < 0)
{ {
ec = error_code(errno, system_category()); ec = error_code(errno, system_category());
return std::vector<ip_route>(); return std::vector<ip_route>();
@ -1208,12 +1209,11 @@ int _System __libsocket_sysctl(int* mib, u_int namelen, void *oldp, size_t *oldl
for (; NLMSG_OK(nl_msg, len); nl_msg = NLMSG_NEXT(nl_msg, len)) for (; NLMSG_OK(nl_msg, len); nl_msg = NLMSG_NEXT(nl_msg, len))
{ {
ip_route r; ip_route r;
if (parse_route(s, nl_msg, &r)) ret.push_back(r); if (parse_route(sock, nl_msg, &r)) ret.push_back(r);
} }
#ifdef __clang__ #ifdef __clang__
#pragma clang diagnostic pop #pragma clang diagnostic pop
#endif #endif
::close(s);
::close(sock); ::close(sock);
#endif #endif

View File

@ -42,11 +42,11 @@ namespace libtorrent {
{ {
char const* p = input.data(); char const* p = input.data();
char const* end = input.data() + input.size(); char const* end = input.data() + input.size();
for(;p != end; ++p) for (;p != end; ++p)
{ {
char const* start = p; char const* start = p;
// look for tag start // look for tag start
for(; p != end && *p != '<'; ++p); for (; p != end && *p != '<'; ++p);
if (p != start) if (p != start)
{ {
@ -127,11 +127,11 @@ namespace libtorrent {
char const* val_start = nullptr; char const* val_start = nullptr;
// find start of attribute name // find start of attribute name
for (; i != tag_end && is_space(*i); ++i); while (i != tag_end && is_space(*i)) ++i;
if (i == tag_end) break; if (i == tag_end) break;
start = i; start = i;
// find end of attribute name // find end of attribute name
for (; i != tag_end && *i != '=' && !is_space(*i); ++i); while (i != tag_end && *i != '=' && !is_space(*i)) ++i;
std::size_t const name_len = std::size_t(i - start); std::size_t const name_len = std::size_t(i - start);
// look for equality sign // look for equality sign
@ -146,7 +146,7 @@ namespace libtorrent {
} }
++i; ++i;
for (; i != tag_end && is_space(*i); ++i); while (i != tag_end && is_space(*i)) ++i;
// check for parse error (values must be quoted) // check for parse error (values must be quoted)
if (i == tag_end || (*i != '\'' && *i != '\"')) if (i == tag_end || (*i != '\'' && *i != '\"'))
{ {

View File

@ -95,8 +95,9 @@ struct peer_server
~peer_server() ~peer_server()
{ {
m_acceptor.cancel(); error_code ignore;
m_acceptor.close(); m_acceptor.cancel(ignore);
m_acceptor.close(ignore);
if (m_thread) m_thread->join(); if (m_thread) m_thread->join();
} }