Fix removing cached headers (Thanks to Taggart Gorman for catching this!)
Showing
2 changed files
with
28 additions
and
1 deletions
| @@ -49,6 +49,7 @@ typedef enum _ASICacheStoragePolicy { | @@ -49,6 +49,7 @@ typedef enum _ASICacheStoragePolicy { | ||
| 49 | 49 | ||
| 50 | // Same as the above, but returns a path to the cached response body instead | 50 | // Same as the above, but returns a path to the cached response body instead |
| 51 | - (NSString *)pathToCachedResponseDataForRequest:(ASIHTTPRequest *)request; | 51 | - (NSString *)pathToCachedResponseDataForRequest:(ASIHTTPRequest *)request; |
| 52 | +- (NSString *)pathToCachedResponseHeadersForRequest:(ASIHTTPRequest *)request; | ||
| 52 | 53 | ||
| 53 | // Clear cached data stored for the passed storage policy | 54 | // Clear cached data stored for the passed storage policy |
| 54 | - (void)clearCachedResponsesForStoragePolicy:(ASICacheStoragePolicy)cachePolicy; | 55 | - (void)clearCachedResponsesForStoragePolicy:(ASICacheStoragePolicy)cachePolicy; |
| @@ -195,6 +195,32 @@ static NSString *permanentCacheFolder = @"PermanentStore"; | @@ -195,6 +195,32 @@ static NSString *permanentCacheFolder = @"PermanentStore"; | ||
| 195 | return nil; | 195 | return nil; |
| 196 | } | 196 | } |
| 197 | 197 | ||
| 198 | +- (NSString *)pathToCachedResponseHeadersForRequest:(ASIHTTPRequest *)request | ||
| 199 | +{ | ||
| 200 | + [[self accessLock] lock]; | ||
| 201 | + if (![self storagePath]) { | ||
| 202 | + [[self accessLock] unlock]; | ||
| 203 | + return nil; | ||
| 204 | + } | ||
| 205 | + // Look in the session store | ||
| 206 | + NSString *path = [[self storagePath] stringByAppendingPathComponent:sessionCacheFolder]; | ||
| 207 | + NSString *dataPath = [path stringByAppendingPathComponent:[[[self class] keyForRequest:request] stringByAppendingPathExtension:@"cachedheaders"]]; | ||
| 208 | + if ([[NSFileManager defaultManager] fileExistsAtPath:dataPath]) { | ||
| 209 | + [[self accessLock] unlock]; | ||
| 210 | + return dataPath; | ||
| 211 | + } | ||
| 212 | + // Look in the permanent store | ||
| 213 | + path = [[self storagePath] stringByAppendingPathComponent:permanentCacheFolder]; | ||
| 214 | + dataPath = [path stringByAppendingPathComponent:[[[self class] keyForRequest:request] stringByAppendingPathExtension:@"cachedheaders"]]; | ||
| 215 | + if ([[NSFileManager defaultManager] fileExistsAtPath:dataPath]) { | ||
| 216 | + [[self accessLock] unlock]; | ||
| 217 | + return dataPath; | ||
| 218 | + } | ||
| 219 | + [[self accessLock] unlock]; | ||
| 220 | + return nil; | ||
| 221 | +} | ||
| 222 | + | ||
| 223 | + | ||
| 198 | - (void)removeCachedDataForRequest:(ASIHTTPRequest *)request | 224 | - (void)removeCachedDataForRequest:(ASIHTTPRequest *)request |
| 199 | { | 225 | { |
| 200 | [[self accessLock] lock]; | 226 | [[self accessLock] lock]; |
| @@ -202,7 +228,7 @@ static NSString *permanentCacheFolder = @"PermanentStore"; | @@ -202,7 +228,7 @@ static NSString *permanentCacheFolder = @"PermanentStore"; | ||
| 202 | [[self accessLock] unlock]; | 228 | [[self accessLock] unlock]; |
| 203 | return; | 229 | return; |
| 204 | } | 230 | } |
| 205 | - NSString *cachedHeadersPath = [[self storagePath] stringByAppendingPathComponent:[[[self class] keyForRequest:request] stringByAppendingPathExtension:@"cachedheaders"]]; | 231 | + NSString *cachedHeadersPath = [self pathToCachedResponseHeadersForRequest:request]; |
| 206 | if (!cachedHeadersPath) { | 232 | if (!cachedHeadersPath) { |
| 207 | [[self accessLock] unlock]; | 233 | [[self accessLock] unlock]; |
| 208 | return; | 234 | return; |
-
Please register or login to post a comment