File 0001-Destroy-the-QLocalServer-in-Auth-on-shutdown.patch of Package sddm

From 462cc1d77be372b907fab3f3b624087aef0e1f6e Mon Sep 17 00:00:00 2001
From: Fabian Vogt <fabian@ritter-vogt.de>
Date: Fri, 4 Jan 2019 13:29:35 +0100
Subject: [PATCH] Destroy the QLocalServer in Auth on shutdown

This is necessary to remove the sddm-auth* sockets.
---
 src/auth/Auth.cpp | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/src/auth/Auth.cpp b/src/auth/Auth.cpp
index 597efc2..2c2e182 100644
--- a/src/auth/Auth.cpp
+++ b/src/auth/Auth.cpp
@@ -30,6 +30,8 @@
 
 #include <QtQml/QtQml>
 
+#include <memory>
+
 #include <unistd.h>
 
 namespace SDDM {
@@ -42,12 +44,9 @@ namespace SDDM {
 
         QMap<qint64, Auth::Private*> helpers;
     private:
-        static Auth::SocketServer *self;
         SocketServer();
     };
 
-    Auth::SocketServer *Auth::SocketServer::self = nullptr;
-
     class Auth::Private : public QObject {
         Q_OBJECT
     public:
@@ -99,11 +98,12 @@ namespace SDDM {
     }
 
     Auth::SocketServer* Auth::SocketServer::instance() {
+        static std::unique_ptr<Auth::SocketServer> self;
         if (!self) {
-            self = new SocketServer();
+            self.reset(new SocketServer());
             self->listen(QStringLiteral("sddm-auth%1").arg(QUuid::createUuid().toString().replace(QRegExp(QStringLiteral("[{}]")), QString())));
         }
-        return self;
+        return self.get();
     }
 
 
-- 
2.19.1

openSUSE Build Service is sponsored by