diff --git a/btpd/cli_if.c b/btpd/cli_if.c index c2b0a7d..4bb07c4 100644 --- a/btpd/cli_if.c +++ b/btpd/cli_if.c @@ -59,14 +59,14 @@ write_ans(struct io_buffer *iob, struct tlib *tl, enum ipc_tval val) switch (val) { case IPC_TVAL_CGOT: if (tl->tp == NULL) - buf_print(iob, "i%dei%de", IPC_TYPE_ERR, IPC_ETINACTIVE); + buf_print(iob, "i%dei%llde", IPC_TYPE_NUM, tl->content_have); else buf_print(iob, "i%dei%llde", IPC_TYPE_NUM, (long long)cm_content(tl->tp)); return; case IPC_TVAL_CSIZE: if (tl->tp == NULL) - buf_print(iob, "i%dei%de", IPC_TYPE_ERR, IPC_ETINACTIVE); + buf_print(iob, "i%dei%llde", IPC_TYPE_ERR, tl->content_size); else buf_print(iob, "i%dei%llde", IPC_TYPE_NUM, (long long)tl->tp->total_length); @@ -168,6 +168,14 @@ write_ans(struct io_buffer *iob, struct tlib *tl, enum ipc_tval val) } buf_print(iob, "i%de", ts); return; + case IPC_TVAL_TOTDWN: + buf_print(iob, "i%dei%llde", IPC_TYPE_NUM, tl->tot_down + + (tl->tp == NULL ? 0 : tl->tp->net->downloaded)); + return; + case IPC_TVAL_TOTUP: + buf_print(iob, "i%dei%llde", IPC_TYPE_NUM, tl->tot_up + + (tl->tp == NULL ? 0 : tl->tp->net->uploaded)); + return; case IPC_TVAL_TRERR: buf_print(iob, "i%dei%ue", IPC_TYPE_NUM, tl->tp == NULL ? 0 : tr_errors(tl->tp)); diff --git a/misc/ipcdefs.h b/misc/ipcdefs.h index 612c118..f36d724 100644 --- a/misc/ipcdefs.h +++ b/misc/ipcdefs.h @@ -38,6 +38,8 @@ TVDEF(RATEUP, NUM, "rate_up") TVDEF(SESSDWN, NUM, "sess_down") TVDEF(SESSUP, NUM, "sess_up") TVDEF(STATE, TSTATE, "state") +TVDEF(TOTDWN, NUM, "total_down") +TVDEF(TOTUP, NUM, "total_up") TVDEF(TRERR, NUM, "tr_errors") #ifdef __IPCTV #undef __IPCTV