summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/serialport/qserialport_unix.cpp19
1 files changed, 11 insertions, 8 deletions
diff --git a/src/serialport/qserialport_unix.cpp b/src/serialport/qserialport_unix.cpp
index 9979256..eb71e86 100644
--- a/src/serialport/qserialport_unix.cpp
+++ b/src/serialport/qserialport_unix.cpp
@@ -72,13 +72,21 @@ QString serialPortLockFilePath(const QString &portName)
#endif
;
+ QString fileName = portName;
+ fileName.replace(QLatin1Char('/'), QLatin1Char('_'));
+ fileName.prepend(QStringLiteral("/LCK.."));
+
QString lockFilePath;
foreach (const QString &lockDirectoryPath, lockDirectoryPaths) {
+ const QString filePath = lockDirectoryPath + fileName;
+
QFileInfo lockDirectoryInfo(lockDirectoryPath);
- if (lockDirectoryInfo.isReadable() && lockDirectoryInfo.isWritable()) {
- lockFilePath = lockDirectoryPath;
- break;
+ if (lockDirectoryInfo.isReadable()) {
+ if (QFile::exists(filePath) || lockDirectoryInfo.isWritable()) {
+ lockFilePath = filePath;
+ break;
+ }
}
}
@@ -89,11 +97,6 @@ QString serialPortLockFilePath(const QString &portName)
return QString();
}
- QString replacedPortName = portName;
-
- lockFilePath.append(QStringLiteral("/LCK.."));
- lockFilePath.append(replacedPortName.replace(QLatin1Char('/'), QLatin1Char('_')));
-
return lockFilePath;
}