aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTim Jenssen <tim.jenssen@qt.io>2024-04-16 10:13:27 +0200
committerTim Jenssen <tim.jenssen@qt.io>2024-04-16 15:04:02 +0000
commit9c974bf89d822397df948d86f5f85e4fbc0834c4 (patch)
tree54a265bfbcfbe099ae33dd0b73586cc6cc337623
parent74d525040dd911c543f71c45d941d7242e4f1871 (diff)
add daemonCanBeStarted() to make fallbacks possible
For a transition time it could be that the daemon is not available - this is used to enable the old license check way in Qt Desgin Studio. Pick-to: 3.0 Change-Id: I1dfbb04fa2292ce37c4805f532b155f920f39167 Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
-rw-r--r--src/libs/qlicenseclient/licenseclient.cpp5
-rw-r--r--src/libs/qlicenseclient/licenseclient.h2
-rw-r--r--src/libs/qlicenseclient/licenseclient_p.cpp13
-rw-r--r--src/libs/qlicenseclient/licenseclient_p.h3
4 files changed, 22 insertions, 1 deletions
diff --git a/src/libs/qlicenseclient/licenseclient.cpp b/src/libs/qlicenseclient/licenseclient.cpp
index 6c7726f..52a4046 100644
--- a/src/libs/qlicenseclient/licenseclient.cpp
+++ b/src/libs/qlicenseclient/licenseclient.cpp
@@ -15,6 +15,11 @@ namespace QLicenseClient {
by the client application to a running Qt License Daemon.
*/
+bool LicenseClient::daemonCanBeStarted()
+{
+ return LicenseClientPrivate::daemonCanBeStarted();
+}
+
/*
Constructs a new license client
*/
diff --git a/src/libs/qlicenseclient/licenseclient.h b/src/libs/qlicenseclient/licenseclient.h
index 80a6c13..a86277f 100644
--- a/src/libs/qlicenseclient/licenseclient.h
+++ b/src/libs/qlicenseclient/licenseclient.h
@@ -104,6 +104,8 @@ private:
class LicenseClient
{
public:
+ static bool daemonCanBeStarted();
+
enum class StatusOperation {
DaemonVersion = 0,
ServerVersion = 1,
diff --git a/src/libs/qlicenseclient/licenseclient_p.cpp b/src/libs/qlicenseclient/licenseclient_p.cpp
index f27e413..69cb697 100644
--- a/src/libs/qlicenseclient/licenseclient_p.cpp
+++ b/src/libs/qlicenseclient/licenseclient_p.cpp
@@ -56,6 +56,19 @@ static std::string portFilePath()
}
+bool LicenseClientPrivate::daemonCanBeStarted()
+{
+ uint16_t port = 0;
+ const std::string program = LicdSetup::getMatchingServiceInstallation(DAEMON_VERSION);
+ if (program.empty()) {
+ // maybe something is running without an installation (on a developer machine)
+ if (getDaemonPort(port))
+ return true;
+ return false;
+ }
+ return true;
+}
+
LicenseClientPrivate::LicenseClientPrivate(LicenseClient *qq)
: q(qq)
, m_reservationInfo(new LicenseReservationInfo)
diff --git a/src/libs/qlicenseclient/licenseclient_p.h b/src/libs/qlicenseclient/licenseclient_p.h
index 4097a76..0aa0794 100644
--- a/src/libs/qlicenseclient/licenseclient_p.h
+++ b/src/libs/qlicenseclient/licenseclient_p.h
@@ -21,6 +21,7 @@ namespace QLicenseClient {
class LicenseClientPrivate
{
public:
+ static bool daemonCanBeStarted();
LicenseClientPrivate(LicenseClient *qq);
~LicenseClientPrivate();
@@ -38,7 +39,7 @@ public:
StatusCode statusCode(int status) const;
- bool getDaemonPort(uint16_t &port);
+ static bool getDaemonPort(uint16_t &port);
bool removePortFile();
bool getJwt(std::string &jwt);