From: Claudio Cambra Date: Thu, 22 Dec 2022 11:12:10 +0000 (+0100) Subject: Rename FileProviderSocketController to FileProviderSocketManager, as it manages the... X-Git-Tag: archive/raspbian/3.16.7-1_deb13u1+rpi1~1^2~12^2~10^2~55^2~321 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=92773e6b777e93ca2efb70fac6b045ce3b327ba5;p=nextcloud-desktop.git Rename FileProviderSocketController to FileProviderSocketManager, as it manages the sockets Signed-off-by: Claudio Cambra --- diff --git a/src/gui/CMakeLists.txt b/src/gui/CMakeLists.txt index cd63cda99..dcef701dc 100644 --- a/src/gui/CMakeLists.txt +++ b/src/gui/CMakeLists.txt @@ -285,9 +285,9 @@ IF( APPLE ) macOS/fileprovider_mac.mm macOS/fileproviderdomainmanager.h macOS/fileproviderdomainmanager_mac.mm - macOS/fileprovidersocketcontroller.h - macOS/fileprovidersocketcontroller.cpp - macOS/fileprovidersocketcontroller_mac.mm) + macOS/fileprovidersocketmanager.h + macOS/fileprovidersocketmanager.cpp + macOS/fileprovidersocketmanager_mac.mm) if(SPARKLE_FOUND AND BUILD_UPDATER) # Define this, we need to check in updater.cpp diff --git a/src/gui/macOS/fileprovidersocketcontroller.cpp b/src/gui/macOS/fileprovidersocketcontroller.cpp deleted file mode 100644 index 6ed6e0f04..000000000 --- a/src/gui/macOS/fileprovidersocketcontroller.cpp +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Copyright (C) 2022 by Claudio Cambra - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * for more details. - */ - -#include "fileprovidersocketcontroller.h" - -namespace OCC -{ - -namespace Mac -{ - -Q_LOGGING_CATEGORY(lcFileProviderSocketController, "nextcloud.gui.macos.fileprovider.socketcontroller", QtInfoMsg) - -FileProviderSocketController::FileProviderSocketController(QObject *parent) - : QObject{parent} -{ -#ifdef Q_OS_MACOS - _socketPath = fileProviderSocketPath(); -#endif - startListening(); -} - -void FileProviderSocketController::startListening() -{ - QLocalServer::removeServer(_socketPath); - - const auto serverStarted = _socketServer.listen(_socketPath); - if (!serverStarted) { - qCWarning(lcFileProviderSocketController) << "Could not start file provider socket server" - << _socketPath; - } else { - qCInfo(lcFileProviderSocketController) << "File provider socket server started, listening" - << _socketPath; - } - - connect(&_socketServer, &QLocalServer::newConnection, - this, &FileProviderSocketController::slotNewConnection); -} - -void FileProviderSocketController::slotNewConnection() -{ - if (!_socketServer.hasPendingConnections()) { - return; - } - - const auto socket = _socketServer.nextPendingConnection(); - if (!socket) { - return; - } -} - -} // namespace Mac - -} // namespace OCC diff --git a/src/gui/macOS/fileprovidersocketcontroller.h b/src/gui/macOS/fileprovidersocketcontroller.h deleted file mode 100644 index feb6447f3..000000000 --- a/src/gui/macOS/fileprovidersocketcontroller.h +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Copyright (C) 2022 by Claudio Cambra - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * for more details. - */ - -#pragma once - -#include -#include -#include - -namespace OCC -{ - -namespace Mac { - -#ifdef Q_OS_MACOS -QString fileProviderSocketPath(); -#endif - -class FileProviderSocketController : public QObject -{ - Q_OBJECT - -public: - explicit FileProviderSocketController(QObject *parent = nullptr); - -private slots: - void startListening(); - void slotNewConnection(); - -private: - QString _socketPath; - QLocalServer _socketServer; - -}; - -} // namespace Mac - -} // namespace OCC diff --git a/src/gui/macOS/fileprovidersocketcontroller_mac.mm b/src/gui/macOS/fileprovidersocketcontroller_mac.mm deleted file mode 100644 index 8377adb96..000000000 --- a/src/gui/macOS/fileprovidersocketcontroller_mac.mm +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Copyright (C) 2022 by Claudio Cambra - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * for more details. - */ - -#import -#import - -#include "config.h" - -namespace OCC -{ - -namespace Mac -{ - -QString fileProviderSocketPath() -{ - // This must match the code signing Team setting of the extension - // Example for developer builds (with ad-hoc signing identity): "" "com.owncloud.desktopclient" ".fileprovidersocket" - // Example for official signed packages: "9B5WD74GWJ." "com.owncloud.desktopclient" ".fileprovidersocket" - NSString *appGroupId = @SOCKETAPI_TEAM_IDENTIFIER_PREFIX APPLICATION_REV_DOMAIN; - - NSURL *container = [[NSFileManager defaultManager] containerURLForSecurityApplicationGroupIdentifier:appGroupId]; - NSURL *socketPath = [container URLByAppendingPathComponent:@".fileprovidersocket" isDirectory:false]; - return QString::fromNSString(socketPath.path); -} - -} // namespace Mac - -} // namespace OCC diff --git a/src/gui/macOS/fileprovidersocketmanager.cpp b/src/gui/macOS/fileprovidersocketmanager.cpp new file mode 100644 index 000000000..0a571dbb6 --- /dev/null +++ b/src/gui/macOS/fileprovidersocketmanager.cpp @@ -0,0 +1,68 @@ +/* + * Copyright (C) 2022 by Claudio Cambra + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * for more details. + */ + +#include "fileprovidersocketmanager.h" + +#include + +namespace OCC +{ + +namespace Mac +{ + +Q_LOGGING_CATEGORY(lcFileProviderSocketManager, "nextcloud.gui.macos.fileprovider.socketmanager", QtInfoMsg) + +FileProviderSocketManager::FileProviderSocketManager(QObject *parent) + : QObject{parent} +{ +#ifdef Q_OS_MACOS + _socketPath = fileProviderSocketPath(); +#endif + startListening(); +} + +void FileProviderSocketManager::startListening() +{ + QLocalServer::removeServer(_socketPath); + + const auto serverStarted = _socketServer.listen(_socketPath); + if (!serverStarted) { + qCWarning(lcFileProviderSocketManager) << "Could not start file provider socket server" + << _socketPath; + } else { + qCInfo(lcFileProviderSocketManager) << "File provider socket server started, listening" + << _socketPath; + } + + connect(&_socketServer, &QLocalServer::newConnection, + this, &FileProviderSocketManager::slotNewConnection); +} + +void FileProviderSocketManager::slotNewConnection() +{ + if (!_socketServer.hasPendingConnections()) { + return; + } + + const auto socket = _socketServer.nextPendingConnection(); + if (!socket) { + return; + } + +} + +} // namespace Mac + +} // namespace OCC diff --git a/src/gui/macOS/fileprovidersocketmanager.h b/src/gui/macOS/fileprovidersocketmanager.h new file mode 100644 index 000000000..df6f19506 --- /dev/null +++ b/src/gui/macOS/fileprovidersocketmanager.h @@ -0,0 +1,48 @@ +/* + * Copyright (C) 2022 by Claudio Cambra + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * for more details. + */ + +#pragma once + +#include +#include +#include + +namespace OCC +{ + +namespace Mac { + +#ifdef Q_OS_MACOS +QString fileProviderSocketPath(); +#endif + +class FileProviderSocketManager : public QObject +{ + Q_OBJECT + +public: + explicit FileProviderSocketManager(QObject *parent = nullptr); + +private slots: + void startListening(); + void slotNewConnection(); + +private: + QString _socketPath; + QLocalServer _socketServer; +}; + +} // namespace Mac + +} // namespace OCC diff --git a/src/gui/macOS/fileprovidersocketmanager_mac.mm b/src/gui/macOS/fileprovidersocketmanager_mac.mm new file mode 100644 index 000000000..8377adb96 --- /dev/null +++ b/src/gui/macOS/fileprovidersocketmanager_mac.mm @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 by Claudio Cambra + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * for more details. + */ + +#import +#import + +#include "config.h" + +namespace OCC +{ + +namespace Mac +{ + +QString fileProviderSocketPath() +{ + // This must match the code signing Team setting of the extension + // Example for developer builds (with ad-hoc signing identity): "" "com.owncloud.desktopclient" ".fileprovidersocket" + // Example for official signed packages: "9B5WD74GWJ." "com.owncloud.desktopclient" ".fileprovidersocket" + NSString *appGroupId = @SOCKETAPI_TEAM_IDENTIFIER_PREFIX APPLICATION_REV_DOMAIN; + + NSURL *container = [[NSFileManager defaultManager] containerURLForSecurityApplicationGroupIdentifier:appGroupId]; + NSURL *socketPath = [container URLByAppendingPathComponent:@".fileprovidersocket" isDirectory:false]; + return QString::fromNSString(socketPath.path); +} + +} // namespace Mac + +} // namespace OCC