diff options
| author | cinap_lenrek <cinap_lenrek@centraldogma> | 2011-10-25 14:55:24 +0200 |
|---|---|---|
| committer | cinap_lenrek <cinap_lenrek@centraldogma> | 2011-10-25 14:55:24 +0200 |
| commit | 83865180a29d7feba2a1f460abf17315562141c3 (patch) | |
| tree | 3874861256d1ecd7032070cef1fec5a49bce3fd8 | |
| parent | f8d5cc7230ee2cb7521d90599d525e205ad84fa6 (diff) | |
| download | plan9front-83865180a29d7feba2a1f460abf17315562141c3.tar.xz | |
torrent: calculate piece length depending on file size
| -rw-r--r-- | sys/src/cmd/ip/torrent.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/sys/src/cmd/ip/torrent.c b/sys/src/cmd/ip/torrent.c index f4d8bc1de..9a24155c7 100644 --- a/sys/src/cmd/ip/torrent.c +++ b/sys/src/cmd/ip/torrent.c @@ -764,8 +764,12 @@ mktorrent(int fd, char *url) werrstr("empty file"); return -1; } - blocksize = 1024*1024; - npieces = (d->length + blocksize-1) / blocksize; + npieces = 1; + for(blocksize = 256*1024;;blocksize<<=1){ + npieces = (d->length + blocksize-1) / blocksize; + if(npieces <= 8*1024 || blocksize >= 2*1024*1024) + break; + } print("d"); print("8:announce%ld:%s", strlen(url), url); print("4:info"); |
