summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@centraldogma>2011-10-25 14:55:24 +0200
committercinap_lenrek <cinap_lenrek@centraldogma>2011-10-25 14:55:24 +0200
commit83865180a29d7feba2a1f460abf17315562141c3 (patch)
tree3874861256d1ecd7032070cef1fec5a49bce3fd8
parentf8d5cc7230ee2cb7521d90599d525e205ad84fa6 (diff)
downloadplan9front-83865180a29d7feba2a1f460abf17315562141c3.tar.xz
torrent: calculate piece length depending on file size
-rw-r--r--sys/src/cmd/ip/torrent.c8
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");