mirror of
https://github.com/rakshasa/rtorrent.git
synced 2026-08-12 05:02:31 +00:00
Fixed freebsd compile errors.
Added global rate display. git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@463 e378c898-3ddf-0310-93e7-cc216c733640
This commit is contained in:
@@ -70,19 +70,23 @@ public:
|
||||
|
||||
template <typename A1, typename A2, typename A3>
|
||||
void print(int x, int y, char* str,
|
||||
A1 a1, A2 a2, A3 a3) { mvwprintw(m_window, y, x, str, a1, a2, a3); }
|
||||
A1 a1, A2 a2, A3 a3) { mvwprintw(m_window, y, x, str, a1, a2, a3); }
|
||||
|
||||
template <typename A1, typename A2, typename A3, typename A4>
|
||||
void print(int x, int y, char* str,
|
||||
A1 a1, A2 a2, A3 a3, A4 a4) { mvwprintw(m_window, y, x, str, a1, a2, a3, a4); }
|
||||
A1 a1, A2 a2, A3 a3, A4 a4) { mvwprintw(m_window, y, x, str, a1, a2, a3, a4); }
|
||||
|
||||
template <typename A1, typename A2, typename A3, typename A4, typename A5>
|
||||
void print(int x, int y, char* str,
|
||||
A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) { mvwprintw(m_window, y, x, str, a1, a2, a3, a4, a5); }
|
||||
A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) { mvwprintw(m_window, y, x, str, a1, a2, a3, a4, a5); }
|
||||
|
||||
template <typename A1, typename A2, typename A3, typename A4, typename A5, typename A6>
|
||||
void print(int x, int y, char* str,
|
||||
A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) { mvwprintw(m_window, y, x, str, a1, a2, a3, a4, a5, a6); }
|
||||
A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) { mvwprintw(m_window, y, x, str, a1, a2, a3, a4, a5, a6); }
|
||||
|
||||
template <typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7>
|
||||
void print(int x, int y, char* str,
|
||||
A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7) { mvwprintw(m_window, y, x, str, a1, a2, a3, a4, a5, a6, a7); }
|
||||
|
||||
void set_attr(int x, int y, int n, int attr, int color) { mvwchgat(m_window, y, x, n, attr, color, NULL); }
|
||||
|
||||
|
||||
@@ -56,8 +56,10 @@ WindowStatusbar::redraw() {
|
||||
else
|
||||
pos = snprintf(buf + pos, 128 - pos, "%-3i", torrent::get_read_throttle() / 1024);
|
||||
|
||||
m_canvas->print(0, 0, "Throttle U/D: %s Listen: %s:%i%s Handshakes: %i",
|
||||
m_canvas->print(0, 0, "Throttle U/D: %s Rate: %5.1f / %5.1f KiB Listen: %s:%i%s Handshakes: %i",
|
||||
buf,
|
||||
(double)torrent::get_write_rate() / 1024.0,
|
||||
(double)torrent::get_read_rate() / 1024.0,
|
||||
!torrent::get_ip().empty() ? torrent::get_ip().c_str() : "<default>",
|
||||
(int)torrent::get_listen_port(),
|
||||
!torrent::get_bind().empty() ? (" Bind: " + torrent::get_bind()).c_str() : "",
|
||||
|
||||
+2
-1
@@ -191,6 +191,7 @@ main(int argc, char** argv) {
|
||||
SignalHandler::set_handler(SIGINT, sigc::bind(sigc::mem_fun(uiRoot, &ui::Root::set_shutdown_received), true));
|
||||
SignalHandler::set_handler(SIGSEGV, sigc::bind(sigc::ptr_fun(&do_panic), SIGSEGV));
|
||||
SignalHandler::set_handler(SIGBUS, sigc::bind(sigc::ptr_fun(&do_panic), SIGBUS));
|
||||
SignalHandler::set_handler(SIGFPE, sigc::bind(sigc::ptr_fun(&do_panic), SIGFPE));
|
||||
|
||||
// Need to initialize this before parseing options.
|
||||
torrent::initialize();
|
||||
@@ -249,7 +250,7 @@ do_panic(int signum) {
|
||||
SignalHandler::set_default(signum);
|
||||
display::Canvas::cleanup();
|
||||
|
||||
std::cout << "Signal " << (signum == SIGSEGV ? "SIGSEGV" : "SIGBUS") << " recived, dumping stack:" << std::endl;
|
||||
std::cout << "Caught " << SignalHandler::as_string(signum) << ", dumping stack:" << std::endl;
|
||||
|
||||
#ifdef USE_EXECINFO
|
||||
void* stackPtrs[20];
|
||||
|
||||
@@ -22,6 +22,7 @@
|
||||
|
||||
#include "config.h"
|
||||
|
||||
#include <netinet/in.h>
|
||||
#include <arpa/inet.h>
|
||||
#include <torrent/torrent.h>
|
||||
|
||||
|
||||
@@ -67,3 +67,33 @@ SignalHandler::caught(int signum) {
|
||||
|
||||
m_handlers[signum]();
|
||||
}
|
||||
|
||||
const char*
|
||||
SignalHandler::as_string(unsigned int signum) {
|
||||
switch (signum) {
|
||||
case SIGHUP:
|
||||
return "Hangup detected";
|
||||
case SIGINT:
|
||||
return "Interrupt from keyboard";
|
||||
case SIGQUIT:
|
||||
return "Quit signal";
|
||||
case SIGILL:
|
||||
return "Illegal instruction";
|
||||
case SIGABRT:
|
||||
return "Abort signal";
|
||||
case SIGFPE:
|
||||
return "Floating point exception";
|
||||
case SIGKILL:
|
||||
return "Kill signal";
|
||||
case SIGSEGV:
|
||||
return "Segmentation fault";
|
||||
case SIGPIPE:
|
||||
return "Broken pipe";
|
||||
case SIGALRM:
|
||||
return "Timer signal";
|
||||
case SIGTERM:
|
||||
return "Termination signal";
|
||||
default:
|
||||
return "Unlisted";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -32,12 +32,14 @@ public:
|
||||
|
||||
static const unsigned int HIGHEST_SIGNAL = 32;
|
||||
|
||||
static void set_default(unsigned int signum);
|
||||
static void set_ignore(unsigned int signum);
|
||||
static void set_handler(unsigned int signum, Slot slot);
|
||||
static void set_default(unsigned int signum);
|
||||
static void set_ignore(unsigned int signum);
|
||||
static void set_handler(unsigned int signum, Slot slot);
|
||||
|
||||
static const char* as_string(unsigned int signum);
|
||||
|
||||
private:
|
||||
static void caught(int signum);
|
||||
static void caught(int signum);
|
||||
|
||||
static Slot m_handlers[HIGHEST_SIGNAL];
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user