Fixed some problems with SFTP range support to fix test cases 634 through 637.

This commit is contained in:
Dan Fandrich
2008-10-21 07:10:25 +00:00
parent 3f2de3d101
commit 7ff38c14a9
4 changed files with 18 additions and 10 deletions

View File

@@ -1644,11 +1644,21 @@ static CURLcode ssh_statemach_act(struct connectdata *conn)
while(ptr && *ptr && (isspace((int)*ptr) || (*ptr=='-')))
ptr++;
to=curlx_strtoofft(ptr, &ptr2, 0);
if ((ptr == ptr2) /* no "to" value given */
|| (to > size)) {
to = size;
if((ptr == ptr2) /* no "to" value given */
|| (to >= size)) {
to = size - 1;
}
if (from > to) {
if(from < 0) {
/* from is relative to end of file */
from += size;
}
if(from >= size) {
failf(data, "Offset (%"
FORMAT_OFF_T ") was beyond file size (%" FORMAT_OFF_T ")",
from, attrs.filesize);
return CURLE_BAD_DOWNLOAD_RESUME;
}
if(from > to) {
from = to;
size = 0;
}