Index: native_client_sdk/src/libraries/nacl_io/httpfs/http_fs_node.cc |
diff --git a/native_client_sdk/src/libraries/nacl_io/httpfs/http_fs_node.cc b/native_client_sdk/src/libraries/nacl_io/httpfs/http_fs_node.cc |
index b02c0af2d6a31d84a02ad6aab4e7d74cb0a4b38a..6a4815be8d79483c573e37881a6e4d1e5c14d82f 100644 |
--- a/native_client_sdk/src/libraries/nacl_io/httpfs/http_fs_node.cc |
+++ b/native_client_sdk/src/libraries/nacl_io/httpfs/http_fs_node.cc |
@@ -83,30 +83,30 @@ StringMap_t ParseHeaders(const char* headers, int32_t headers_length) { |
return result; |
} |
-bool ParseContentLength(const StringMap_t& headers, size_t* content_length) { |
+bool ParseContentLength(const StringMap_t& headers, off_t* content_length) { |
StringMap_t::const_iterator iter = headers.find("Content-Length"); |
if (iter == headers.end()) |
return false; |
- *content_length = strtoul(iter->second.c_str(), NULL, 10); |
+ *content_length = strtoull(iter->second.c_str(), NULL, 10); |
return true; |
} |
bool ParseContentRange(const StringMap_t& headers, |
- size_t* read_start, |
- size_t* read_end, |
- size_t* entity_length) { |
+ off_t* read_start, |
+ off_t* read_end, |
+ off_t* entity_length) { |
StringMap_t::const_iterator iter = headers.find("Content-Range"); |
if (iter == headers.end()) |
return false; |
// The key should look like "bytes ##-##/##" or "bytes ##-##/*". The last |
// value is the entity length, which can potentially be * (i.e. unknown). |
- size_t read_start_int; |
- size_t read_end_int; |
- size_t entity_length_int; |
+ off_t read_start_int; |
+ off_t read_end_int; |
+ off_t entity_length_int; |
int result = sscanf(iter->second.c_str(), |
- "bytes %" SCNuS "-%" SCNuS "/%" SCNuS, |
+ "bytes %" SCNi64 "-%" SCNi64 "/%" SCNi64, |
&read_start_int, |
&read_end_int, |
&entity_length_int); |
@@ -198,7 +198,7 @@ Error HttpFsNode::Write(const HandleAttr& attr, |
return EACCES; |
} |
-Error HttpFsNode::GetSize(size_t* out_size) { |
+Error HttpFsNode::GetSize(off_t* out_size) { |
*out_size = 0; |
// TODO(binji): This value should be cached properly; i.e. obey the caching |
@@ -244,7 +244,7 @@ Error HttpFsNode::GetStat_Locked(struct stat* stat) { |
if (error) |
return error; |
- size_t entity_length; |
+ off_t entity_length; |
if (ParseContentLength(response_headers, &entity_length)) { |
SetCachedSize(static_cast<off_t>(entity_length)); |
} else if (cache_content_) { |
@@ -258,7 +258,7 @@ Error HttpFsNode::GetStat_Locked(struct stat* stat) { |
// "Content-Length" header. Read the entire entity, and throw it away. |
// Don't use DownloadToCache, as that will still allocate enough memory |
// for the entire entity. |
- int bytes_read; |
+ off_t bytes_read; |
error = DownloadToTemp(&bytes_read); |
if (error) |
return error; |
@@ -367,7 +367,7 @@ Error HttpFsNode::DownloadToCache() { |
if (error) |
return error; |
- size_t content_length = 0; |
+ off_t content_length = 0; |
if (ParseContentLength(response_headers, &content_length)) { |
cached_data_.resize(content_length); |
int real_size; |
@@ -395,7 +395,7 @@ Error HttpFsNode::ReadPartialFromCache(const HandleAttr& attr, |
int count, |
int* out_bytes) { |
*out_bytes = 0; |
- size_t size = cached_data_.size(); |
+ off_t size = cached_data_.size(); |
if (attr.offs + count > size) |
count = size - attr.offs; |
@@ -410,7 +410,7 @@ Error HttpFsNode::ReadPartialFromCache(const HandleAttr& attr, |
Error HttpFsNode::DownloadPartial(const HandleAttr& attr, |
void* buf, |
- size_t count, |
+ off_t count, |
int* out_bytes) { |
*out_bytes = 0; |
@@ -420,7 +420,7 @@ Error HttpFsNode::DownloadPartial(const HandleAttr& attr, |
// Range request is inclusive: 0-99 returns 100 bytes. |
snprintf(&buffer[0], |
sizeof(buffer), |
- "bytes=%" PRIuS "-%" PRIuS, |
+ "bytes=%" PRIi64 "-%" PRIi64, |
attr.offs, |
attr.offs + count - 1); |
headers["Range"] = buffer; |
@@ -447,10 +447,10 @@ Error HttpFsNode::DownloadPartial(const HandleAttr& attr, |
return error; |
} |
- size_t read_start = 0; |
+ off_t read_start = 0; |
if (statuscode == STATUSCODE_OK) { |
// No partial result, read everything starting from the part we care about. |
- size_t content_length; |
+ off_t content_length; |
if (ParseContentLength(response_headers, &content_length)) { |
if (attr.offs >= content_length) |
return EINVAL; |
@@ -462,8 +462,8 @@ Error HttpFsNode::DownloadPartial(const HandleAttr& attr, |
} |
} else if (statuscode == STATUSCODE_PARTIAL_CONTENT) { |
// Determine from the headers where we are reading. |
- size_t read_end; |
- size_t entity_length; |
+ off_t read_end; |
+ off_t entity_length; |
if (ParseContentRange( |
response_headers, &read_start, &read_end, &entity_length)) { |
if (read_start > attr.offs || read_start > read_end) { |
@@ -501,7 +501,7 @@ Error HttpFsNode::DownloadPartial(const HandleAttr& attr, |
return ReadResponseToBuffer(loader, buf, count, out_bytes); |
} |
-Error HttpFsNode::DownloadToTemp(int* out_bytes) { |
+Error HttpFsNode::DownloadToTemp(off_t* out_bytes) { |
StringMap_t headers; |
ScopedResource loader(filesystem_->ppapi()); |
ScopedResource request(filesystem_->ppapi()); |
@@ -518,7 +518,7 @@ Error HttpFsNode::DownloadToTemp(int* out_bytes) { |
if (error) |
return error; |
- size_t content_length = 0; |
+ off_t content_length = 0; |
if (ParseContentLength(response_headers, &content_length)) { |
*out_bytes = content_length; |
return 0; |
@@ -528,7 +528,7 @@ Error HttpFsNode::DownloadToTemp(int* out_bytes) { |
} |
Error HttpFsNode::ReadEntireResponseToTemp(const ScopedResource& loader, |
- int* out_bytes) { |
+ off_t* out_bytes) { |
*out_bytes = 0; |
const int kBytesToRead = MAX_READ_BUFFER_SIZE; |