Browse Source

btcli stat now takes file arguments to only include stats for the given

torrents.
master
Richard Nyberg 19 years ago
parent
commit
c069f03a8e
1 changed files with 28 additions and 6 deletions
  1. +28
    -6
      cli/btcli.c

+ 28
- 6
cli/btcli.c View File

@@ -284,11 +284,15 @@ usage_stat(void)
"%% got, MB down, rate down. MB up, rate up\n"
"peer count, %% of pieces seen, tracker errors\n"
"\n"
"Usage: stat [-i] [-w seconds]\n"
"Usage: stat [-i] [-w seconds] [file ...]\n"
"\n"
"Arguments:\n"
"file ...\n"
"\tOnly display stats for the given torrent(s).\n"
"\n"
"Options:\n"
"-i\n"
"\tDisplay indivudal lines for each active torrent.\n"
"\tDisplay individual lines for each torrent.\n"
"\n"
"-w n\n"
"\tDisplay stats every n seconds.\n"
@@ -297,7 +301,7 @@ usage_stat(void)
}

void
do_stat(int individual, int seconds)
do_stat(int individual, int seconds, int hash_count, uint8_t (*hashes)[20])
{
struct btstat *st;
struct tpstat tot;
@@ -308,6 +312,14 @@ again:
exit(1);
for (int i = 0; i < st->ntorrents; i++) {
struct tpstat *cur = &st->torrents[i];
if (hash_count > 0) {
int found = 0;
for (int h = 0; !found && h < hash_count; h++)
if (bcmp(cur->hash, hashes[h], 20) == 0)
found = 1;
if (!found)
continue;
}
tot.uploaded += cur->uploaded;
tot.downloaded += cur->downloaded;
tot.rate_up += cur->rate_up;
@@ -343,6 +355,7 @@ cmd_stat(int argc, char **argv)
{
int ch;
int wflag = 0, iflag = 0, seconds = 0;
uint8_t (*hashes)[20];
char *endptr;
while ((ch = getopt_long(argc, argv, "iw:", stat_opts, NULL)) != -1) {
switch (ch) {
@@ -361,11 +374,20 @@ cmd_stat(int argc, char **argv)
}
argc -= optind;
argv += optind;
if (argc > 0)
usage_stat();

if (argc > 0) {
hashes = malloc(argc * 20);
for (int i = 0; i < argc; i++) {
struct metainfo *mi;
if ((errno = load_metainfo(argv[i], -1, 0, &mi)) != 0)
err(1, "error loading torrent %s", argv[i]);
bcopy(mi->info_hash, hashes[i], 20);
clear_metainfo(mi);
free(mi);
}
}
btpd_connect();
do_stat(iflag, seconds);
do_stat(iflag, seconds, argc, hashes);
}

struct {


Loading…
Cancel
Save