mirror of
https://github.com/swisspol/GCDWebServer.git
synced 2026-04-24 00:00:04 +08:00
Enforce Content-Type and Content-Length consistency on requests
This commit is contained in:
@@ -151,16 +151,20 @@ static NSStringEncoding _StringEncodingFromCharset(NSString* charset) {
|
|||||||
_query = ARC_RETAIN(query);
|
_query = ARC_RETAIN(query);
|
||||||
|
|
||||||
_type = ARC_RETAIN([_headers objectForKey:@"Content-Type"]);
|
_type = ARC_RETAIN([_headers objectForKey:@"Content-Type"]);
|
||||||
NSInteger length = [[_headers objectForKey:@"Content-Length"] integerValue];
|
NSString* lengthHeader = [_headers objectForKey:@"Content-Length"];
|
||||||
if (length < 0) {
|
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();
|
DNOT_REACHED();
|
||||||
ARC_RELEASE(self);
|
ARC_RELEASE(self);
|
||||||
return nil;
|
return nil;
|
||||||
}
|
}
|
||||||
_length = length;
|
|
||||||
if ((_length > 0) && (_type == nil)) {
|
|
||||||
_type = [kGCDWebServerDefaultMimeType copy];
|
|
||||||
}
|
|
||||||
|
|
||||||
_range = NSMakeRange(NSNotFound, 0);
|
_range = NSMakeRange(NSNotFound, 0);
|
||||||
NSString* rangeHeader = [[_headers objectForKey:@"Range"] lowercaseString];
|
NSString* rangeHeader = [[_headers objectForKey:@"Range"] lowercaseString];
|
||||||
|
|||||||
Reference in New Issue
Block a user