Enforce Content-Type and Content-Length consistency on requests

This commit is contained in:
Pierre-Olivier Latour
2014-04-03 18:30:28 -07:00
parent 7cd68b3d96
commit 8bebee94ec
+10 -6
View File
@@ -151,16 +151,20 @@ static NSStringEncoding _StringEncodingFromCharset(NSString* charset) {
_query = ARC_RETAIN(query);
_type = ARC_RETAIN([_headers objectForKey:@"Content-Type"]);
NSInteger length = [[_headers objectForKey:@"Content-Length"] integerValue];
if (length < 0) {
NSString* lengthHeader = [_headers objectForKey:@"Content-Length"];
if (_type) {
NSInteger length = [lengthHeader integerValue];
if ((lengthHeader == nil) || (length < 0)) {
DNOT_REACHED();
ARC_RELEASE(self);
return nil;
}
_length = length;
} else if (lengthHeader) {
DNOT_REACHED();
ARC_RELEASE(self);
return nil;
}
_length = length;
if ((_length > 0) && (_type == nil)) {
_type = [kGCDWebServerDefaultMimeType copy];
}
_range = NSMakeRange(NSNotFound, 0);
NSString* rangeHeader = [[_headers objectForKey:@"Range"] lowercaseString];