aboutsummaryrefslogtreecommitdiff
path: root/devel/kf5-kdbusaddons/files/patch-src_kdbusservice.cpp
blob: 4e3cadceeb7d53f434febd7f2b7cff47a2dc0e8c (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
diff --git a/src/kdbusservice.cpp b/src/kdbusservice.cpp
--- src/kdbusservice.cpp
+++ src/kdbusservice.cpp
@@ -129,6 +130,18 @@
             } else {
                 d->serviceName += QLatin1Char('-') + QString::number(QCoreApplication::applicationPid());
             }
+        } else if (options & KDBusService::Unique) {
+            auto reply = bus->registeredServiceNames();
+            if (!reply.isValid()) {
+                return;
+            }
+
+            for (const auto& serviceName : reply.value()) {
+                if (serviceName.startsWith(d->serviceName)) {
+                    d->serviceName = serviceName;
+                    return;
+                }
+            }
         }
     }