version 1.134, 2018/11/16 03:26:01 |
version 1.135, 2018/12/07 04:36:09 |
|
|
{ |
{ |
bw->buflen = buflen; |
bw->buflen = buflen; |
bw->rate = kbps; |
bw->rate = kbps; |
bw->thresh = bw->rate; |
bw->thresh = buflen; |
bw->lamt = 0; |
bw->lamt = 0; |
timerclear(&bw->bwstart); |
timerclear(&bw->bwstart); |
timerclear(&bw->bwend); |
timerclear(&bw->bwend); |
} |
} |
|
|
/* Callback from read/write loop to insert bandwidth-limiting delays */ |
/* Callback from read/write loop to insert bandwidth-limiting delays */ |
void |
void |
|
|
u_int64_t waitlen; |
u_int64_t waitlen; |
struct timespec ts, rm; |
struct timespec ts, rm; |
|
|
|
bw->lamt += read_len; |
if (!timerisset(&bw->bwstart)) { |
if (!timerisset(&bw->bwstart)) { |
monotime_tv(&bw->bwstart); |
monotime_tv(&bw->bwstart); |
return; |
return; |
} |
} |
|
|
bw->lamt += read_len; |
|
if (bw->lamt < bw->thresh) |
if (bw->lamt < bw->thresh) |
return; |
return; |
|
|