diff --git a/docs/index.html b/docs/index.html index 4c82d226f..19627e77e 100755 --- a/docs/index.html +++ b/docs/index.html @@ -65,8 +65,9 @@ libtorrent has been successfully compiled and tested on:

building

diff --git a/examples/client_test.cpp b/examples/client_test.cpp index bde29fdd9..32587b098 100755 --- a/examples/client_test.cpp +++ b/examples/client_test.cpp @@ -47,7 +47,7 @@ int main(int argc, char* argv[]) if (argc < 2) { - std::cerr << "usage: torrent torrent-files ...\n" + std::cerr << "usage: ./client_test torrent-files ...\n" "to stop the client, type a number and press enter.\n"; return 1; } diff --git a/examples/dump_torrent.cpp b/examples/dump_torrent.cpp new file mode 100755 index 000000000..467265f2a --- /dev/null +++ b/examples/dump_torrent.cpp @@ -0,0 +1,90 @@ +/* + +Copyright (c) 2003, 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 +#include +#include +#include +#include +#include + +#include "libtorrent/entry.hpp" +#include "libtorrent/bencode.hpp" +#include "libtorrent/session.hpp" +#include "libtorrent/http_settings.hpp" + + +int main(int argc, char* argv[]) +{ + using namespace libtorrent; + + if (argc != 2) + { + std::cerr << "usage: dump_torrent torrent-file\n"; + return 1; + } + + try + { + std::ifstream in(argv[1], std::ios_base::binary); + in.unsetf(std::ios_base::skipws); + entry e = bdecode(std::istream_iterator(in), std::istream_iterator()); + torrent_info t(e); + + // print info about torrent + std::cout << "trackers:\n"; + for (std::vector::const_iterator i = t.trackers().begin(); + i != t.trackers().end(); + ++i) + { + std::cout << i->tier << ": " << i->url << "\n"; + } + + std::cout << "number of pieces: " << t.num_pieces() << "\n"; + std::cout << "piece length: " << t.piece_length() << "\n"; + std::cout << "files:\n"; + for (torrent_info::file_iterator i = t.begin_files(); + i != t.end_files(); + ++i) + { + std::cout << " " << std::setw(11) << i->size << " " << i->path << " " << i->filename << "\n"; + } + + } + catch (std::exception& e) + { + std::cout << e.what() << "\n"; + } + + return 0; +} + diff --git a/include/libtorrent/session.hpp b/include/libtorrent/session.hpp index daa8b5f4e..949cffa33 100755 --- a/include/libtorrent/session.hpp +++ b/include/libtorrent/session.hpp @@ -170,7 +170,16 @@ namespace libtorrent {} void operator()() - { m_ses->run(m_listen_port); } + { + try + { + m_ses->run(m_listen_port); + } + catch(...) + { + assert(false); + } + } session_impl* m_ses; int m_listen_port; diff --git a/src/torrent_info.cpp b/src/torrent_info.cpp index 22b03a573..75f39e577 100755 --- a/src/torrent_info.cpp +++ b/src/torrent_info.cpp @@ -217,4 +217,4 @@ namespace libtorrent os << " " << std::setw(11) << i->size << " " << i->path << " " << i->filename << "\n"; } -} \ No newline at end of file +}