Skip to content

Commit

Permalink
Merge branch 'master' of github.com:pokeb/asi-http-request
Browse files Browse the repository at this point in the history
Conflicts:
	Classes/ASIHTTPRequest.m
  • Loading branch information
pokeb committed Aug 20, 2011
2 parents 762c38c + 1a7ae81 commit 1a57f92
Show file tree
Hide file tree
Showing 5 changed files with 38 additions and 8 deletions.
6 changes: 4 additions & 2 deletions Classes/ASIInputStream.m
Expand Up @@ -58,9 +58,11 @@ - (NSInteger)read:(uint8_t *)buffer maxLength:(NSUInteger)len
} }
[request performThrottling]; [request performThrottling];
} }
[ASIHTTPRequest incrementBandwidthUsedInLastSecond:toRead];
[readLock unlock]; [readLock unlock];
return [stream read:buffer maxLength:toRead]; NSInteger rv = [stream read:buffer maxLength:toRead];
if (rv > 0)
[ASIHTTPRequest incrementBandwidthUsedInLastSecond:rv];
return rv;
} }


/* /*
Expand Down
2 changes: 2 additions & 0 deletions Classes/CloudFiles/ASICloudFilesCDNRequest.h
Expand Up @@ -24,10 +24,12 @@
// Response: // Response:
// X-CDN-Enabled: True // X-CDN-Enabled: True
// X-CDN-URI: http://cdn.cloudfiles.mosso.com/c1234 // X-CDN-URI: http://cdn.cloudfiles.mosso.com/c1234
// X-CDN-SSL-URI: https://cdn.ssl.cloudfiles.mosso.com/c1234
// X-CDN-TTL: 86400 // X-CDN-TTL: 86400
+ (id)containerInfoRequest:(NSString *)containerName; + (id)containerInfoRequest:(NSString *)containerName;
- (BOOL)cdnEnabled; - (BOOL)cdnEnabled;
- (NSString *)cdnURI; - (NSString *)cdnURI;
- (NSString *)cdnSSLURI;
- (NSUInteger)cdnTTL; - (NSUInteger)cdnTTL;




Expand Down
28 changes: 24 additions & 4 deletions Classes/CloudFiles/ASICloudFilesCDNRequest.m
Expand Up @@ -38,15 +38,35 @@ + (id)containerInfoRequest:(NSString *)containerName {
} }


- (BOOL)cdnEnabled { - (BOOL)cdnEnabled {
return [[[self responseHeaders] objectForKey:@"X-Cdn-Enabled"] boolValue]; NSNumber *enabled = [[self responseHeaders] objectForKey:@"X-CDN-Enabled"];
if (!enabled) {
enabled = [[self responseHeaders] objectForKey:@"X-Cdn-Enabled"];
}
return [enabled boolValue];
} }


- (NSString *)cdnURI { - (NSString *)cdnURI {
return [[self responseHeaders] objectForKey:@"X-Cdn-Uri"]; NSString *uri = [[self responseHeaders] objectForKey:@"X-CDN-URI"];
if (!uri) {
uri = [[self responseHeaders] objectForKey:@"X-Cdn-Uri"];
}
return uri;
}

- (NSString *)cdnSSLURI {
NSString *uri = [[self responseHeaders] objectForKey:@"X-CDN-SSL-URI"];
if (!uri) {
uri = [[self responseHeaders] objectForKey:@"X-Cdn-Ssl-Uri"];
}
return uri;
} }


- (NSUInteger)cdnTTL { - (NSUInteger)cdnTTL {
return [[[self responseHeaders] objectForKey:@"X-Ttl"] intValue]; NSNumber *ttl = [[self responseHeaders] objectForKey:@"X-TTL"];
if (!ttl) {
ttl = [[self responseHeaders] objectForKey:@"X-Ttl"];
}
return [ttl intValue];
} }


#pragma mark - #pragma mark -
Expand Down Expand Up @@ -130,7 +150,7 @@ + (id)postRequestWithContainer:(NSString *)containerName cdnEnabled:(BOOL)cdnEna
if (ttl > 0) { if (ttl > 0) {
[request addRequestHeader:@"X-Ttl" value:[NSString stringWithFormat:@"%i", ttl]]; [request addRequestHeader:@"X-Ttl" value:[NSString stringWithFormat:@"%i", ttl]];
} }
[request addRequestHeader:@"X-Cdn-Enabled" value:cdnEnabled ? @"True" : @"False"]; [request addRequestHeader:@"X-CDN-Enabled" value:cdnEnabled ? @"True" : @"False"];
return request; return request;
} }


Expand Down
2 changes: 1 addition & 1 deletion Classes/CloudFiles/ASICloudFilesObjectRequest.m
Expand Up @@ -130,7 +130,7 @@ - (ASICloudFilesObject *)object {
object.bytes = [[[self responseHeaders] objectForKey:@"Content-Length"] intValue]; object.bytes = [[[self responseHeaders] objectForKey:@"Content-Length"] intValue];
object.contentType = [[self responseHeaders] objectForKey:@"Content-Type"]; object.contentType = [[self responseHeaders] objectForKey:@"Content-Type"];
object.lastModified = [[self responseHeaders] objectForKey:@"Last-Modified"]; object.lastModified = [[self responseHeaders] objectForKey:@"Last-Modified"];
object.metadata = [[NSMutableDictionary alloc] init]; object.metadata = [NSMutableDictionary dictionary];


for (NSString *key in [[self responseHeaders] keyEnumerator]) { for (NSString *key in [[self responseHeaders] keyEnumerator]) {
NSRange metaRange = [key rangeOfString:@"X-Object-Meta-"]; NSRange metaRange = [key rangeOfString:@"X-Object-Meta-"];
Expand Down
8 changes: 7 additions & 1 deletion Classes/CloudFiles/ASICloudFilesRequest.m
Expand Up @@ -69,7 +69,13 @@ + (NSError *)authenticate
NSDictionary *responseHeaders = [request responseHeaders]; NSDictionary *responseHeaders = [request responseHeaders];
authToken = [responseHeaders objectForKey:@"X-Auth-Token"]; authToken = [responseHeaders objectForKey:@"X-Auth-Token"];
storageURL = [responseHeaders objectForKey:@"X-Storage-Url"]; storageURL = [responseHeaders objectForKey:@"X-Storage-Url"];
cdnManagementURL = [responseHeaders objectForKey:@"X-Cdn-Management-Url"]; cdnManagementURL = [responseHeaders objectForKey:@"X-CDN-Management-Url"];

// there is a bug in the Cloud Files API for some older accounts that causes
// the CDN URL to come back in a slightly different header
if (!cdnManagementURL) {
cdnManagementURL = [responseHeaders objectForKey:@"X-Cdn-Management-Url"];
}
} }
[accessDetailsLock unlock]; [accessDetailsLock unlock];
return [request error]; return [request error];
Expand Down

0 comments on commit 1a57f92

Please sign in to comment.