loolwsd/Storage.cpp | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-)
New commits: commit 69c156e6ddbade890792a508dead452398acb2cb Author: Andras Timar <andras.ti...@collabora.com> Date: Tue Apr 19 10:17:50 2016 +0200 bccu#1696 enable WOPI connection from the same host by default diff --git a/loolwsd/Storage.cpp b/loolwsd/Storage.cpp index 41c8830..39ec21e 100644 --- a/loolwsd/Storage.cpp +++ b/loolwsd/Storage.cpp @@ -17,6 +17,8 @@ #include <Poco/Net/HTTPRequest.h> #include <Poco/Net/HTTPClientSession.h> #include <Poco/Net/HTTPSClientSession.h> +#include <Poco/Net/NetworkInterface.h> +#include <Poco/Net/DNS.h> #include <Poco/Net/SSLManager.h> #include <Poco/StreamCopier.h> #include <Poco/JSON/Object.h> @@ -92,6 +94,21 @@ void StorageBase::initialize() } } +bool isLocalhost(const std::string& targetHost) +{ + std::string targetAddress = Poco::Net::DNS::resolveOne(targetHost).toString(); + Poco::Net::NetworkInterface::NetworkInterfaceList list = Poco::Net::NetworkInterface::list(true,true); + for (unsigned i = 0; i < list.size(); i++) + { + Poco::Net::NetworkInterface& netif = list[i]; + std::string address = netif.address().toString(); + address = address.substr(0, address.find("%",0)); + if (address == targetAddress) + return true; + } + return false; +} + std::unique_ptr<StorageBase> StorageBase::create(const std::string& jailRoot, const std::string& jailPath, const Poco::URI& uri) { std::unique_ptr<StorageBase> storage; @@ -114,7 +131,7 @@ std::unique_ptr<StorageBase> StorageBase::create(const std::string& jailRoot, co { Log::info("Public URI [" + uri.toString() + "] considered WOPI."); const auto targetHost = uri.getHost(); - if (_wopiHosts.match(targetHost)) + if (_wopiHosts.match(targetHost) || isLocalhost(targetHost)) { return std::unique_ptr<StorageBase>(new WopiStorage(jailRoot, jailPath, uri.toString())); } _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits