| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "nacl_io/httpfs/http_fs_node.h" | 5 #include "nacl_io/httpfs/http_fs_node.h" |
| 6 | 6 |
| 7 #include <assert.h> | 7 #include <assert.h> |
| 8 #include <errno.h> | 8 #include <errno.h> |
| 9 #include <stdio.h> | 9 #include <stdio.h> |
| 10 #include <string.h> | 10 #include <string.h> |
| (...skipping 214 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 225 | 225 |
| 226 HttpFsNode::HttpFsNode(Filesystem* filesystem, | 226 HttpFsNode::HttpFsNode(Filesystem* filesystem, |
| 227 const std::string& url, | 227 const std::string& url, |
| 228 bool cache_content) | 228 bool cache_content) |
| 229 : Node(filesystem), | 229 : Node(filesystem), |
| 230 url_(url), | 230 url_(url), |
| 231 buffer_(NULL), | 231 buffer_(NULL), |
| 232 buffer_len_(0), | 232 buffer_len_(0), |
| 233 cache_content_(cache_content), | 233 cache_content_(cache_content), |
| 234 has_cached_size_(false) { | 234 has_cached_size_(false) { |
| 235 } | 235 // http nodes are read-only by default |
| 236 | 236 SetMode(S_IRALL); |
| 237 void HttpFsNode::SetMode(int mode) { | |
| 238 stat_.st_mode = mode; | |
| 239 } | 237 } |
| 240 | 238 |
| 241 Error HttpFsNode::GetStat_Locked(struct stat* stat) { | 239 Error HttpFsNode::GetStat_Locked(struct stat* stat) { |
| 242 // Assume we need to 'HEAD' if we do not know the size, otherwise, assume | 240 // Assume we need to 'HEAD' if we do not know the size, otherwise, assume |
| 243 // that the information is constant. We can add a timeout if needed. | 241 // that the information is constant. We can add a timeout if needed. |
| 244 HttpFs* filesystem = static_cast<HttpFs*>(filesystem_); | 242 HttpFs* filesystem = static_cast<HttpFs*>(filesystem_); |
| 245 if (!has_cached_size_ || !filesystem->cache_stat_) { | 243 if (!has_cached_size_ || !filesystem->cache_stat_) { |
| 246 StringMap_t headers; | 244 StringMap_t headers; |
| 247 ScopedResource loader(filesystem_->ppapi()); | 245 ScopedResource loader(filesystem_->ppapi()); |
| 248 ScopedResource request(filesystem_->ppapi()); | 246 ScopedResource request(filesystem_->ppapi()); |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 290 if (error) | 288 if (error) |
| 291 return error; | 289 return error; |
| 292 | 290 |
| 293 SetCachedSize(bytes_read); | 291 SetCachedSize(bytes_read); |
| 294 } | 292 } |
| 295 | 293 |
| 296 stat_.st_atime = 0; // TODO(binji): Use "Last-Modified". | 294 stat_.st_atime = 0; // TODO(binji): Use "Last-Modified". |
| 297 stat_.st_mtime = 0; | 295 stat_.st_mtime = 0; |
| 298 stat_.st_ctime = 0; | 296 stat_.st_ctime = 0; |
| 299 | 297 |
| 300 stat_.st_mode |= S_IFREG; | 298 SetType(S_IFREG); |
| 301 } | 299 } |
| 302 | 300 |
| 303 // Fill the stat structure if provided | 301 // Fill the stat structure if provided |
| 304 if (stat) | 302 if (stat) |
| 305 *stat = stat_; | 303 *stat = stat_; |
| 306 | 304 |
| 307 return 0; | 305 return 0; |
| 308 } | 306 } |
| 309 | 307 |
| 310 Error HttpFsNode::OpenUrl(const char* method, | 308 Error HttpFsNode::OpenUrl(const char* method, |
| (...skipping 362 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 673 assert(bytes_read <= bytes_to_read); | 671 assert(bytes_read <= bytes_to_read); |
| 674 bytes_to_read -= bytes_read; | 672 bytes_to_read -= bytes_read; |
| 675 out_buffer += bytes_read; | 673 out_buffer += bytes_read; |
| 676 } | 674 } |
| 677 | 675 |
| 678 *out_bytes = count; | 676 *out_bytes = count; |
| 679 return 0; | 677 return 0; |
| 680 } | 678 } |
| 681 | 679 |
| 682 } // namespace nacl_io | 680 } // namespace nacl_io |
| OLD | NEW |