From 1c55348d4503e267efeb98ddf6a6d74451691487 Mon Sep 17 00:00:00 2001 From: rakshasa Date: Wed, 15 Mar 2006 23:25:19 +0000 Subject: [PATCH] * Moved {bind,local}_address() to ConnectionManager. * Various other API cleanups. git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@651 e378c898-3ddf-0310-93e7-cc216c733640 --- src/core/manager.cc | 9 ++++++--- src/display/utils.cc | 15 ++++++++++----- 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/src/core/manager.cc b/src/core/manager.cc index 1703373c..c8a57a10 100644 --- a/src/core/manager.cc +++ b/src/core/manager.cc @@ -49,6 +49,7 @@ #include #include #include +#include #include #include "utils/variable_map.h" @@ -289,11 +290,11 @@ Manager::set_bind_address(const std::string& addr) { if (torrent::listen_port() != 0) { torrent::listen_close(); - torrent::set_bind_address(ai->address()->c_sockaddr()); + torrent::connection_manager()->set_bind_address(ai->address()->c_sockaddr()); listen_open(); } else { - torrent::set_bind_address(ai->address()->c_sockaddr()); + torrent::connection_manager()->set_bind_address(ai->address()->c_sockaddr()); } rak::address_info::free_address_info(ai); @@ -301,6 +302,7 @@ Manager::set_bind_address(const std::string& addr) { m_pollManager->get_http_stack()->set_bind_address(addr); } catch (torrent::input_error& e) { + rak::address_info::free_address_info(ai); throw e; } } @@ -315,12 +317,13 @@ Manager::set_local_address(const std::string& addr) { try { - torrent::set_local_address(ai->address()->c_sockaddr()); + torrent::connection_manager()->set_local_address(ai->address()->c_sockaddr()); rak::address_info::free_address_info(ai); m_pollManager->get_http_stack()->set_bind_address(addr); } catch (torrent::input_error& e) { + rak::address_info::free_address_info(ai); throw e; } } diff --git a/src/display/utils.cc b/src/display/utils.cc index 4faa0222..7820a3f0 100644 --- a/src/display/utils.cc +++ b/src/display/utils.cc @@ -42,6 +42,7 @@ #include #include #include +#include #include #include @@ -212,16 +213,20 @@ print_status_info(char* first, char* last) { (double)torrent::up_rate()->rate() / 1024.0, (double)torrent::down_rate()->rate() / 1024.0); - first = print_buffer(first, last, " [Listen "); - first = print_address(first, last, torrent::local_address()); - first = print_buffer(first, last, ":%u]", (unsigned int)torrent::listen_port()); + first = print_buffer(first, last, " [Port: %i]", (unsigned int)torrent::listen_port()); + + if (!rak::socket_address::cast_from(torrent::connection_manager()->local_address())->is_address_any()) { + first = print_buffer(first, last, " [Local "); + first = print_address(first, last, torrent::connection_manager()->local_address()); + first = print_buffer(first, last, "]"); + } if (first > last) throw torrent::internal_error("print_status_info(...) wrote past end of the buffer."); - if (!rak::socket_address::cast_from(torrent::bind_address())->is_address_any()) { + if (!rak::socket_address::cast_from(torrent::connection_manager()->bind_address())->is_address_any()) { first = print_buffer(first, last, " [Bind "); - first = print_address(first, last, torrent::bind_address()); + first = print_address(first, last, torrent::connection_manager()->bind_address()); first = print_buffer(first, last, "]"); }