mirror of
https://github.com/Tha14/toxic.git
synced 2025-12-08 04:46:34 +01:00
Add tox network profiling
Profiling can be enabled with the -s run option
This commit is contained in:
46
src/toxic.c
46
src/toxic.c
@@ -58,6 +58,7 @@
|
||||
#include "message_queue.h"
|
||||
#include "misc_tools.h"
|
||||
#include "name_lookup.h"
|
||||
#include "netprof.h"
|
||||
#include "notify.h"
|
||||
#include "prompt.h"
|
||||
#include "settings.h"
|
||||
@@ -143,6 +144,22 @@ static void catch_SIGSEGV(int sig)
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
void cb_toxcore_logger(Tox *m, TOX_LOG_LEVEL level, const char *file, uint32_t line, const char *func,
|
||||
const char *message, void *user_data)
|
||||
{
|
||||
UNUSED_VAR(user_data);
|
||||
UNUSED_VAR(file);
|
||||
UNUSED_VAR(m);
|
||||
|
||||
if (user_data) {
|
||||
FILE *fp = (FILE *)user_data;
|
||||
fprintf(fp, "[%d] %u:%s() - %s\n", level, line, func, message);
|
||||
fflush(fp);
|
||||
} else {
|
||||
fprintf(stderr, "[%d] %u:%s() - %s\n", level, line, func, message);
|
||||
}
|
||||
}
|
||||
|
||||
static void flag_window_resize(int sig)
|
||||
{
|
||||
UNUSED_VAR(sig);
|
||||
@@ -177,6 +194,10 @@ void free_global_data(void)
|
||||
|
||||
void exit_toxic_success(Tox *m)
|
||||
{
|
||||
if (arg_opts.netprof_log_dump) {
|
||||
netprof_log_dump(m, arg_opts.netprof_fp);
|
||||
}
|
||||
|
||||
store_data(m, DATA_FILE);
|
||||
|
||||
user_password = (struct user_password) {
|
||||
@@ -207,6 +228,11 @@ void exit_toxic_success(Tox *m)
|
||||
arg_opts.log_fp = NULL;
|
||||
}
|
||||
|
||||
if (arg_opts.netprof_fp != NULL) {
|
||||
fclose(arg_opts.netprof_fp);
|
||||
arg_opts.netprof_fp = NULL;
|
||||
}
|
||||
|
||||
endwin();
|
||||
curl_global_cleanup();
|
||||
|
||||
@@ -229,22 +255,6 @@ void exit_toxic_err(const char *errmsg, int errcode)
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
void cb_toxcore_logger(Tox *m, Tox_Log_Level level, const char *file, uint32_t line, const char *func,
|
||||
const char *message, void *user_data)
|
||||
{
|
||||
UNUSED_VAR(user_data);
|
||||
UNUSED_VAR(file);
|
||||
UNUSED_VAR(m);
|
||||
|
||||
if (user_data) {
|
||||
FILE *fp = (FILE *)user_data;
|
||||
fprintf(fp, "[%d] %u:%s() - %s\n", level, line, func, message);
|
||||
fflush(fp);
|
||||
} else {
|
||||
fprintf(stderr, "[%d] %u:%s() - %s\n", level, line, func, message);
|
||||
}
|
||||
}
|
||||
|
||||
/* Sets ncurses refresh rate. Lower values make it refresh more often. */
|
||||
void set_window_refresh_rate(size_t refresh_rate)
|
||||
{
|
||||
@@ -1199,6 +1209,7 @@ static void print_usage(void)
|
||||
fprintf(stderr, " -p, --SOCKS5-proxy Use SOCKS5 proxy: Requires [IP] [port]\n");
|
||||
fprintf(stderr, " -P, --HTTP-proxy Use HTTP proxy: Requires [IP] [port]\n");
|
||||
fprintf(stderr, " -r, --namelist Use specified name lookup server list\n");
|
||||
fprintf(stderr, " -s, --netstats Dump network statistic to log on exit: Requires [path]\n");
|
||||
fprintf(stderr, " -t, --force-tcp Force toxic to use a TCP connection (use with proxies)\n");
|
||||
fprintf(stderr, " -T, --tcp-server Act as a TCP relay server: Requires [port]\n");
|
||||
fprintf(stderr, " -u, --unencrypt-data Unencrypt an encrypted data file\n");
|
||||
@@ -1238,6 +1249,7 @@ static void parse_args(int argc, char *argv[])
|
||||
{"help", no_argument, 0, 'h'},
|
||||
{"noconnect", no_argument, 0, 'o'},
|
||||
{"namelist", required_argument, 0, 'r'},
|
||||
{"netstats", required_argument, 0, 's'},
|
||||
{"force-tcp", no_argument, 0, 't'},
|
||||
{"tcp-server", required_argument, 0, 'T'},
|
||||
{"SOCKS5-proxy", required_argument, 0, 'p'},
|
||||
@@ -1247,7 +1259,7 @@ static void parse_args(int argc, char *argv[])
|
||||
{NULL, no_argument, NULL, 0},
|
||||
};
|
||||
|
||||
const char *opts_str = "4bdehLotuxvc:f:l:n:r:p:P:T:";
|
||||
const char *opts_str = "4bdehLotuxvc:f:l:n:r:s:p:P:T:";
|
||||
int opt = 0;
|
||||
int indexptr = 0;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user