37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
|
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
|
+
-
|
#import "OFURL.h"
#ifdef HAVE_TLS_SUPPORT
# import "ObjFWTLS.h"
#endif
#import "OFConnectionFailedException.h"
#import "OFGetItemAttributesFailedException.h"
#import "OFHTTPRequestFailedException.h"
#import "OFInvalidArgumentException.h"
#import "OFInvalidFormatException.h"
#import "OFInvalidServerResponseException.h"
#import "OFOpenItemFailedException.h"
#import "OFOutOfRangeException.h"
#import "OFReadFailedException.h"
#import "OFResolveHostFailedException.h"
#import "OFRetrieveItemAttributesFailedException.h"
#import "OFUnsupportedProtocolException.h"
#import "OFWriteFailedException.h"
#import "ProgressBar.h"
#define GIBIBYTE (1024 * 1024 * 1024)
#define MEBIBYTE (1024 * 1024)
|
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
|
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
|
-
+
|
[[OFFileManager defaultManager]
attributesOfItemAtPath: path].fileSize;
contentLength =
[OFString stringWithFormat: @"%ju", fileSize];
[_clientHeaders setObject: contentLength
forKey: @"Content-Length"];
} @catch (OFRetrieveItemAttributesFailedException *e) {
} @catch (OFGetItemAttributesFailedException *e) {
}
}
if (contentLength == nil)
[_clientHeaders setObject: @"chunked"
forKey: @"Transfer-Encoding"];
}
|
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
|
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
|
-
+
|
@throw [OFOutOfRangeException exception];
_resumedFrom = (unsigned long long)size;
range = [OFString stringWithFormat: @"bytes=%jd-",
_resumedFrom];
[clientHeaders setObject: range forKey: @"Range"];
} @catch (OFRetrieveItemAttributesFailedException *e) {
} @catch (OFGetItemAttributesFailedException *e) {
}
}
if (!_quiet) {
if (_useUnicode)
[OFStdOut writeFormat: @"⇣ %@", URL.string];
else
|