diff options
Diffstat (limited to 'platform/default/src/mbgl/storage/asset_file_source.cpp')
-rw-r--r-- | platform/default/src/mbgl/storage/asset_file_source.cpp | 29 |
1 files changed, 3 insertions, 26 deletions
diff --git a/platform/default/src/mbgl/storage/asset_file_source.cpp b/platform/default/src/mbgl/storage/asset_file_source.cpp index ed446f85a5..b14d73045f 100644 --- a/platform/default/src/mbgl/storage/asset_file_source.cpp +++ b/platform/default/src/mbgl/storage/asset_file_source.cpp @@ -1,14 +1,10 @@ #include <mbgl/storage/asset_file_source.hpp> #include <mbgl/storage/file_source_request.hpp> +#include <mbgl/storage/local_file_request.hpp> #include <mbgl/storage/response.hpp> #include <mbgl/util/string.hpp> #include <mbgl/util/thread.hpp> #include <mbgl/util/url.hpp> -#include <mbgl/util/util.hpp> -#include <mbgl/util/io.hpp> - -#include <sys/types.h> -#include <sys/stat.h> namespace { @@ -25,9 +21,8 @@ public: } void request(const std::string& url, ActorRef<FileSourceRequest> req) { - Response response; - if (!acceptsURL(url)) { + Response response; response.error = std::make_unique<Response::Error>(Response::Error::Reason::Other, "Invalid asset URL"); req.invoke(&FileSourceRequest::setResponse, response); @@ -36,25 +31,7 @@ public: // Cut off the protocol and prefix with path. const auto path = root + "/" + mbgl::util::percentDecode(url.substr(assetProtocol.size())); - struct stat buf; - int result = stat(path.c_str(), &buf); - - if (result == 0 && (S_IFDIR & buf.st_mode)) { - response.error = std::make_unique<Response::Error>(Response::Error::Reason::NotFound); - } else if (result == -1 && errno == ENOENT) { - response.error = std::make_unique<Response::Error>(Response::Error::Reason::NotFound); - } else { - auto data = util::readFile(path); - if (!data) { - response.error = std::make_unique<Response::Error>( - Response::Error::Reason::Other, - std::string("Cannot read file ") + path); - } else { - response.data = std::make_shared<std::string>(std::move(*data)); - } - } - - req.invoke(&FileSourceRequest::setResponse, response); + requestLocalFile(path, std::move(req)); } private: |