[Libreoffice-commits] online.git: common/Util.cpp common/Util.hpp loleaflet/html loleaflet/src wsd/ClientSession.cpp wsd/ClientSession.hpp wsd/FileServer.cpp wsd/LOOLWSD.cpp wsd/LOOLWSD.hpp wsd/protocol.txt
gokaysatir (via logerrit)
logerrit at kemper.freedesktop.org
Sat Apr 11 11:43:49 UTC 2020
common/Util.cpp | 19 +++++++++++++++++++
common/Util.hpp | 7 ++++++-
loleaflet/html/loleaflet.html.m4 | 2 +-
loleaflet/src/core/Socket.js | 4 ++++
wsd/ClientSession.cpp | 6 ++++++
wsd/ClientSession.hpp | 1 +
wsd/FileServer.cpp | 1 -
wsd/LOOLWSD.cpp | 22 ----------------------
wsd/LOOLWSD.hpp | 4 ----
wsd/protocol.txt | 4 ++++
10 files changed, 41 insertions(+), 29 deletions(-)
New commits:
commit 9e0594ee2db2eff0afe7b4bc15e474c1e84f15bf
Author: gokaysatir <gokaysatir at gmail.com>
AuthorDate: Fri Apr 10 20:02:39 2020 +0300
Commit: Michael Meeks <michael.meeks at collabora.com>
CommitDate: Sat Apr 11 13:43:31 2020 +0200
add pretty name - Android patch
Change-Id: If0de49884954cde26bfbe8ba1dce8844af5b30bf
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/91831
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice at gmail.com>
Reviewed-by: Michael Meeks <michael.meeks at collabora.com>
diff --git a/common/Util.cpp b/common/Util.cpp
index 2abbd4d11..703bfdd4b 100644
--- a/common/Util.cpp
+++ b/common/Util.cpp
@@ -953,6 +953,25 @@ namespace Util
return result;
}
+
+ #if !MOBILEAPP
+ // If OS is not mobile, it must be Linux.
+ std::string getLinuxVersion(){
+ // Read operating system info. We can read "os-release" file, located in /etc.
+ std::ifstream ifs("/etc/os-release");
+ std::string str(std::istreambuf_iterator<char>{ifs}, {});
+ std::vector<std::string> infoList = Util::splitStringToVector(str, '\n');
+ std::map<std::string, std::string> releaseInfo = Util::stringVectorToMap(infoList, '=');
+
+ if (releaseInfo.find("PRETTY_NAME") != releaseInfo.end()) {
+ return releaseInfo["PRETTY_NAME"];
+ }
+ else{
+ return "unknown";
+ }
+ }
+ #endif
+
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/common/Util.hpp b/common/Util.hpp
index fd1589cfe..b4a6c8d7d 100644
--- a/common/Util.hpp
+++ b/common/Util.hpp
@@ -994,10 +994,15 @@ int main(int argc, char**argv)
/**
* Converts vector of strings to map. Strings should have formed like this: key + delimiter + value.
- * In case of a misformed string or zero length vector, returns an empty map.
+ * In case of a misformed string or zero length vector, passes that item and warns the developer.
*/
std::map<std::string, std::string> stringVectorToMap(std::vector<std::string> sVector, const char delimiter);
+ #if !MOBILEAPP
+ // If OS is not mobile, it must be Linux.
+ std::string getLinuxVersion();
+ #endif
+
} // end namespace Util
#endif
diff --git a/loleaflet/html/loleaflet.html.m4 b/loleaflet/html/loleaflet.html.m4
index 12407c34b..dca62ada1 100644
--- a/loleaflet/html/loleaflet.html.m4
+++ b/loleaflet/html/loleaflet.html.m4
@@ -222,7 +222,7 @@ m4_ifelse(MOBILEAPP,[true],
<div id="loolwsd-id"></div>
<h3>LOKit</h3>
<div id="lokit-version"></div>
- m4_ifelse(MOBILEAPP,[],[<div id="os-name" style="text-align:center"><label>%OS_INFO%</label></div>])
+ m4_ifelse(MOBILEAPP,[],[<div id="os-info" style="text-align:center"></div>])
<p>Copyright © _YEAR_, VENDOR.</p>
</div>
diff --git a/loleaflet/src/core/Socket.js b/loleaflet/src/core/Socket.js
index d4e76d4e4..a4aa948c5 100644
--- a/loleaflet/src/core/Socket.js
+++ b/loleaflet/src/core/Socket.js
@@ -303,6 +303,10 @@ L.Socket = L.Class.extend({
lokitVersionObj.ProductVersion + lokitVersionObj.ProductExtension.replace('.10.','-') +
' (git hash: ' + h + ')');
}
+ else if (textMsg.startsWith('osinfo ')) {
+ var osInfo = textMsg.replace('osinfo ', '');
+ document.getElementById('os-info').innerText = osInfo;
+ }
else if (textMsg.startsWith('clipboardkey: ')) {
var key = textMsg.substring('clipboardkey: '.length);
if (this._map._clip)
diff --git a/wsd/ClientSession.cpp b/wsd/ClientSession.cpp
index ddb7f605b..c9dc7827a 100644
--- a/wsd/ClientSession.cpp
+++ b/wsd/ClientSession.cpp
@@ -360,6 +360,12 @@ bool ClientSession::_handleInput(const char *buffer, int length)
sendTextFrame("loolserver " + LOOLWSD::getVersionJSON());
// Send LOKit version information
sendTextFrame("lokitversion " + LOOLWSD::LOKitVersion);
+
+ #if !MOBILEAPP
+ // If it is not mobile, it must be Linux (for now).
+ sendTextFrame(std::string("osinfo ") + Util::getLinuxVersion());
+ #endif
+
// Send clipboard key
rotateClipboardKey(true);
diff --git a/wsd/ClientSession.hpp b/wsd/ClientSession.hpp
index b47285dd0..e11ac721c 100644
--- a/wsd/ClientSession.hpp
+++ b/wsd/ClientSession.hpp
@@ -21,6 +21,7 @@
#include <map>
#include <list>
#include <utility>
+#include "Util.hpp"
class DocumentBroker;
diff --git a/wsd/FileServer.cpp b/wsd/FileServer.cpp
index 9d833c510..ce9e12756 100644
--- a/wsd/FileServer.cpp
+++ b/wsd/FileServer.cpp
@@ -649,7 +649,6 @@ void FileServerRequestHandler::preprocessFile(const HTTPRequest& request, Poco::
Poco::replaceInPlace(preprocess, std::string("%HOST%"), host);
Poco::replaceInPlace(preprocess, std::string("%VERSION%"), std::string(LOOLWSD_VERSION_HASH));
Poco::replaceInPlace(preprocess, std::string("%SERVICE_ROOT%"), LOOLWSD::ServiceRoot);
- Poco::replaceInPlace(preprocess, std::string("%OS_INFO%"), LOOLWSD::OSInfo);
std::string protocolDebug = "false";
if (config.getBool("logging.protocol"))
diff --git a/wsd/LOOLWSD.cpp b/wsd/LOOLWSD.cpp
index 2c7ac0c11..dd1be52ba 100644
--- a/wsd/LOOLWSD.cpp
+++ b/wsd/LOOLWSD.cpp
@@ -719,7 +719,6 @@ std::string LOOLWSD::ServerName;
std::string LOOLWSD::FileServerRoot;
std::string LOOLWSD::ServiceRoot;
std::string LOOLWSD::LOKitVersion;
-std::string LOOLWSD::OSInfo;
std::string LOOLWSD::HostIdentifier;
std::string LOOLWSD::ConfigFile = LOOLWSD_CONFIGDIR "/loolwsd.xml";
std::string LOOLWSD::ConfigDir = LOOLWSD_CONFIGDIR "/conf.d";
@@ -743,25 +742,6 @@ std::unique_ptr<TraceFileWriter> LOOLWSD::TraceDumper;
std::unique_ptr<ClipboardCache> LOOLWSD::SavedClipboards;
#endif
-void LOOLWSD::getOSInfo(){
- #if !MOBILEAPP
- // It might be neither mobile nor linux (in the future). That is not handled. If it is not mobile, it is Linux.
-
- // Read operating system info. We can read "os-release" file, located in /etc.
- std::ifstream ifs("/etc/os-release");
- std::string str(std::istreambuf_iterator<char>{ifs}, {});
- std::vector<std::string> infoList = Util::splitStringToVector(str, '\n');
- std::map<std::string, std::string> releaseInfo = Util::stringVectorToMap(infoList, '=');
- LOOLWSD::OSInfo = "unknown";
-
- if (releaseInfo.find("PRETTY_NAME") != releaseInfo.end()) {
- LOOLWSD::OSInfo = releaseInfo["PRETTY_NAME"];
- }
- #else
- // Some more cases might be added in the future.
- #endif
-}
-
/// This thread polls basic web serving, and handling of
/// websockets before upgrade: when upgraded they go to the
/// relevant DocumentBroker poll instead.
@@ -962,8 +942,6 @@ void LOOLWSD::initialize(Application& self)
AutoPtr<AppConfigMap> defConfig(new AppConfigMap(DefAppConfig));
conf.addWriteable(defConfig, PRIO_SYSTEM); // Lowest priority
- LOOLWSD::getOSInfo();
-
#if !MOBILEAPP
// Load default configuration files, if present.
diff --git a/wsd/LOOLWSD.hpp b/wsd/LOOLWSD.hpp
index 034dbfbe0..ec36fe26f 100644
--- a/wsd/LOOLWSD.hpp
+++ b/wsd/LOOLWSD.hpp
@@ -237,7 +237,6 @@ public:
static std::string FileServerRoot;
static std::string ServiceRoot; ///< There are installations that need prefixing every page with some path.
static std::string LOKitVersion;
- static std::string OSInfo;
static std::string HostIdentifier; ///< A unique random hash that identifies this server
static std::string LogLevel;
static bool AnonymizeUserData;
@@ -390,9 +389,6 @@ public:
static std::string getVersionJSON();
- /// Reads OS information, puts them into LOOLWSD::OSInfo variable
- static void getOSInfo();
-
int innerMain();
protected:
diff --git a/wsd/protocol.txt b/wsd/protocol.txt
index 40ceb0de1..649352454 100644
--- a/wsd/protocol.txt
+++ b/wsd/protocol.txt
@@ -292,6 +292,10 @@ lokitversion <JSON string>
"ProductExtension": ".0.0.alpha0",
"BuildId": "<full 40 char git hash>"}
+osinfo: <string>
+
+ string that contains OS name and version.
+
clipboardkey: <token>
Send access token for web clipboard use, may arrive periodically
More information about the Libreoffice-commits
mailing list