Committed by
Ben Copsey
Don't use the cached response if the server didn't send an explicit expiration time
Showing
1 changed file
with
6 additions
and
4 deletions
@@ -292,9 +292,9 @@ static NSString *permanentCacheFolder = @"PermanentStore"; | @@ -292,9 +292,9 @@ static NSString *permanentCacheFolder = @"PermanentStore"; | ||
292 | // Look for an Expires header to see if the content is out of date | 292 | // Look for an Expires header to see if the content is out of date |
293 | NSString *expires = [cachedHeaders objectForKey:@"Expires"]; | 293 | NSString *expires = [cachedHeaders objectForKey:@"Expires"]; |
294 | if (expires) { | 294 | if (expires) { |
295 | - if ([[ASIHTTPRequest dateFromRFC1123String:expires] timeIntervalSinceNow] < 0) { | 295 | + if ([[ASIHTTPRequest dateFromRFC1123String:expires] timeIntervalSinceNow] >= 0) { |
296 | [[self accessLock] unlock]; | 296 | [[self accessLock] unlock]; |
297 | - return NO; | 297 | + return YES; |
298 | } | 298 | } |
299 | } | 299 | } |
300 | // Look for a max-age header | 300 | // Look for a max-age header |
@@ -309,13 +309,15 @@ static NSString *permanentCacheFolder = @"PermanentStore"; | @@ -309,13 +309,15 @@ static NSString *permanentCacheFolder = @"PermanentStore"; | ||
309 | 309 | ||
310 | NSDate *expiryDate = [[[NSDate alloc] initWithTimeInterval:maxAge sinceDate:fetchDate] autorelease]; | 310 | NSDate *expiryDate = [[[NSDate alloc] initWithTimeInterval:maxAge sinceDate:fetchDate] autorelease]; |
311 | 311 | ||
312 | - if ([expiryDate timeIntervalSinceNow] < 0) { | 312 | + if ([expiryDate timeIntervalSinceNow] >= 0) { |
313 | [[self accessLock] unlock]; | 313 | [[self accessLock] unlock]; |
314 | - return NO; | 314 | + return YES; |
315 | } | 315 | } |
316 | } | 316 | } |
317 | } | 317 | } |
318 | 318 | ||
319 | + // No explicit expiration time sent by the server | ||
320 | + return NO; | ||
319 | } | 321 | } |
320 | 322 | ||
321 | 323 |
-
Please register or login to post a comment