ref: a13ba7741f35528ea4b8764652101321f089a514
parent: e73ce8475e683c62d0335a18788d86ae92a010f0
author: cinap_lenrek <cinap_lenrek@felloff.net>
date: Tue Oct 9 22:45:11 EDT 2018
hget: do a HEAD request to check if the file is already complete (thanks miscief) when we continue a download, make sure the file isnt already complete, as otherwise the server might respond with a 416 as the range request will out of range.
--- a/rc/bin/hget
+++ b/rc/bin/hget
@@ -47,13 +47,24 @@
if(test -s $o)
s=`{ls -l $o | awk '{print $6}'}
}
-if(! ~ $s 0)
- r=($r 'Range: bytes='^$s^'-')
<[3=0] <>/mnt/web/clone {
d=/mnt/web/^`{sed 1q}
if(~ $#b 1)
echo -n baseurl $b >[1=0]
echo -n url $1 >[1=0]
+ if(! ~ $s 0 && ~ $#p 0 && ~ $#P 0 && ~ $#m 0){
+ for(i in $r)
+ echo -n headers $i >[1=0]
+ echo -n request HEAD >[1=0]
+ <$d/body {
+ if(~ $s `{cat $d/contentlength >[2]/dev/null})
+ exit ''
+ }
+ if(~ $#b 1)
+ echo -n baseurl $b >[1=0]
+ echo -n url $1 >[1=0]
+ r=($r 'Range: bytes='^$s^'-')
+ }
for(i in $r)
echo -n headers $i >[1=0]
if(~ $#m 1)