Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(99)

Unified Diff: native_client_sdk/src/libraries/nacl_io/mount_node_http.cc

Issue 77423002: [NaCl SDK] Add URLLoader fake pepper interface. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix 245431 Created 7 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: native_client_sdk/src/libraries/nacl_io/mount_node_http.cc
diff --git a/native_client_sdk/src/libraries/nacl_io/mount_node_http.cc b/native_client_sdk/src/libraries/nacl_io/mount_node_http.cc
index 5a65d413de36d04fe4e7078f97c6ee8ce48aa517..b7e1df68240533516c623cb5ad7f809a2635e4db 100644
--- a/native_client_sdk/src/libraries/nacl_io/mount_node_http.cc
+++ b/native_client_sdk/src/libraries/nacl_io/mount_node_http.cc
@@ -151,14 +151,14 @@ void MountNodeHttp::SetCachedSize(off_t size) {
stat_.st_size = size;
}
-Error MountNodeHttp::FSync() { return ENOSYS; }
+Error MountNodeHttp::FSync() { return EACCES; }
Error MountNodeHttp::GetDents(size_t offs,
struct dirent* pdir,
size_t count,
int* out_bytes) {
*out_bytes = 0;
- return ENOSYS;
+ return EACCES;
}
Error MountNodeHttp::GetStat(struct stat* stat) {
@@ -193,10 +193,8 @@ Error MountNodeHttp::GetStat(struct stat* stat) {
SetCachedSize(static_cast<off_t>(entity_length));
} else if (cache_content_ && !has_cached_size_) {
error = DownloadToCache();
- // TODO(binji): this error should not be dropped, but it requires a bit
- // of a refactor of the tests. See crbug.com/245431
- // if (error)
- // return error;
+ if (error)
+ return error;
} else {
// Don't use SetCachedSize here -- it is actually unknown.
stat_.st_size = 0;
@@ -236,7 +234,7 @@ Error MountNodeHttp::Read(const HandleAttr& attr,
return DownloadPartial(attr.offs, buf, count, out_bytes);
}
-Error MountNodeHttp::FTruncate(off_t size) { return ENOSYS; }
+Error MountNodeHttp::FTruncate(off_t size) { return EACCES; }
Error MountNodeHttp::Write(const HandleAttr& attr,
const void* buf,
@@ -244,7 +242,7 @@ Error MountNodeHttp::Write(const HandleAttr& attr,
int* out_bytes) {
// TODO(binji): support POST?
*out_bytes = 0;
- return ENOSYS;
+ return EACCES;
}
Error MountNodeHttp::GetSize(size_t* out_size) {
@@ -342,6 +340,8 @@ Error MountNodeHttp::OpenUrl(const char* method,
*out_response_headers =
ParseHeaders(response_headers_str, response_headers_length);
+ var_interface->Release(response_headers_var);
+
return 0;
}
@@ -409,13 +409,15 @@ Error MountNodeHttp::ReadPartialFromCache(size_t offs,
int count,
int* out_bytes) {
*out_bytes = 0;
+ size_t size = cached_data_.size();
- if (offs > cached_data_.size())
- return EINVAL;
+ if (offs + count > size)
+ count = size - offs;
Sam Clegg 2013/11/20 20:00:54 So this function can no longer fail? Might be wor
binji 2013/11/20 20:34:17 Hm. I like that it has the same signature as the r
- count = std::min(count, static_cast<int>(cached_data_.size() - offs));
- memcpy(buf, &cached_data_.data()[offs], count);
+ if (count <= 0)
+ return 0;
+ memcpy(buf, &cached_data_.data()[offs], count);
*out_bytes = count;
return 0;
}

Powered by Google App Engine
This is Rietveld 408576698