aboutsummaryrefslogtreecommitdiffstats
path: root/lang/qt/src/qgpgmewkspublishjob.cpp
diff options
context:
space:
mode:
authorIngo Klöcker <[email protected]>2025-02-03 09:49:25 +0000
committerIngo Klöcker <[email protected]>2025-02-03 09:55:40 +0000
commit763d5f5d6a88ec938b8678ab597e1404af724553 (patch)
tree7f3791e3560bd3a51470494bf965b9f9a40a87bd /lang/qt/src/qgpgmewkspublishjob.cpp
parentbuild: Fix generation of ChangeLog on secondary working trees (diff)
downloadgpgme-763d5f5d6a88ec938b8678ab597e1404af724553.tar.gz
gpgme-763d5f5d6a88ec938b8678ab597e1404af724553.zip
cpp,qt: Remove C++ and Qt bindings
* README: Update. * configure.ac: Remove checks, variables and file generations related to the C++/Qt bindings. Remove cpp and qt* from available_languages and default_languages. * lang/Makefile.am (DIST_SUBDIRS): Remove cpp and qt. * lang/cpp, lang/qt: Remove. * m4/ax_check_compile_flag.m4, m4/ax_cxx_compile_stdcxx.m4, m4/ax_gcc_func_attribute.m4, m4/pkg.m4, m4/qt5.m4, m4/qt6.m4: Remove. -- The C++ and Qt bindings have been moved to separate Git repositories: gpgmepp and gpgmeqt. GnuPG-bug-id: 7262
Diffstat (limited to 'lang/qt/src/qgpgmewkspublishjob.cpp')
-rw-r--r--lang/qt/src/qgpgmewkspublishjob.cpp195
1 files changed, 0 insertions, 195 deletions
diff --git a/lang/qt/src/qgpgmewkspublishjob.cpp b/lang/qt/src/qgpgmewkspublishjob.cpp
deleted file mode 100644
index 74cf25cc..00000000
--- a/lang/qt/src/qgpgmewkspublishjob.cpp
+++ /dev/null
@@ -1,195 +0,0 @@
-/* wkspublishjob.cpp
-
- Copyright (c) 2016 by Bundesamt für Sicherheit in der Informationstechnik
- Software engineering by Intevation GmbH
-
- QGpgME 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.
-
- QGpgME 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.
-
- You should have received a copy of the GNU General Public License along
- with this program; if not, write to the Free Software Foundation, Inc.,
- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-
- In addition, as a special exception, the copyright holders give
- permission to link the code of this program with any edition of
- the Qt library by Trolltech AS, Norway (or with modified versions
- of Qt that use the same license as Qt), and distribute linked
- combinations including the two. You must obey the GNU General
- Public License in all respects for all of the code used other than
- Qt. If you modify this file, you may extend this exception to
- your version of the file, but you are not obligated to do so. If
- you do not wish to do so, delete this exception statement from
- your version.
-*/
-
-#ifdef HAVE_CONFIG_H
- #include "config.h"
-#endif
-
-#include "qgpgmewkspublishjob.h"
-
-#include <gpgme++/context.h>
-#include <gpgme++/key.h>
-
-#include "util.h"
-
-#include <QFileInfo>
-#include <QDir>
-#include <QProcess>
-
-/* Timeout for the WKS Processes will be 5 Minutes as
- * they can involve pinentry questions. */
-#define TIMEOUT_VALUE (5*60*1000)
-
-using namespace QGpgME;
-using namespace GpgME;
-
-QGpgMEWKSPublishJob::QGpgMEWKSPublishJob(Context *context)
- : mixin_type(context)
-{
- lateInitialization();
-}
-
-QGpgMEWKSPublishJob::~QGpgMEWKSPublishJob() {}
-
-static QString getWKSClient()
-{
- auto libexecdir = QString::fromLocal8Bit(dirInfo("libexecdir"));
- if (libexecdir.isEmpty()) {
- return QString();
- }
-
- const QFileInfo fi(QDir(libexecdir).absoluteFilePath(QStringLiteral("gpg-wks-client")));
- if (fi.exists() && fi.isExecutable()) {
- return fi.absoluteFilePath();
- }
- return QString();
-}
-
-static QGpgMEWKSPublishJob::result_type check_worker(const QString &mail)
-{
- if (mail.isEmpty()) {
- return std::make_tuple (Error(make_error(GPG_ERR_INV_ARG)),
- QByteArray(), QByteArray(), QString(), Error());
- }
-
- const auto wksPath = getWKSClient();
- if (wksPath.isEmpty()) {
- return std::make_tuple (Error(make_error(GPG_ERR_NOT_SUPPORTED)),
- QByteArray(), QByteArray(), QString(), Error());
- }
-
- /* QProcess instead of engine_spawn because engine_spawn does not communicate
- * the return value of the process and we are in qt anyway. */
- QProcess proc;
- proc.setProgram(wksPath);
- proc.setArguments(QStringList() << QStringLiteral("--supported") << mail);
- proc.start();
- if (!proc.waitForStarted()) {
- return std::make_tuple (Error(make_error(GPG_ERR_NOT_SUPPORTED)),
- QByteArray(), QByteArray(), QString(), Error());
- }
- if (!proc.waitForFinished(TIMEOUT_VALUE)) {
- return std::make_tuple (Error(make_error(GPG_ERR_TIMEOUT)),
- QByteArray(), QByteArray(), QString(), Error());
- }
- if (proc.exitStatus() == QProcess::NormalExit && proc.exitCode() == 0) {
- return std::make_tuple (Error(), QByteArray(), QByteArray(), QString(), Error());
- }
- return std::make_tuple (Error(make_error(GPG_ERR_NOT_ENABLED)),
- QByteArray(), QByteArray(), QString(), Error());
-}
-
-static QGpgMEWKSPublishJob::result_type create_worker(const char *fpr, const QString &mail)
-{
- if (mail.isEmpty() || !fpr) {
- return std::make_tuple (Error(make_error(GPG_ERR_INV_ARG)),
- QByteArray(), QByteArray(), QString(), Error());
- }
-
- const auto wksPath = getWKSClient();
- if (wksPath.isEmpty()) {
- return std::make_tuple (Error(make_error(GPG_ERR_NOT_SUPPORTED)),
- QByteArray(), QByteArray(), QString(), Error());
- }
-
- QProcess proc;
- proc.setProgram(wksPath);
- proc.setArguments(QStringList() << QStringLiteral("--create")
- << QLatin1String(fpr)
- << mail);
- proc.start();
- if (!proc.waitForStarted()) {
- return std::make_tuple (Error(make_error(GPG_ERR_NOT_SUPPORTED)),
- QByteArray(), QByteArray(), QString(), Error());
- }
-
- if (!proc.waitForFinished(TIMEOUT_VALUE)) {
- return std::make_tuple (Error(make_error(GPG_ERR_TIMEOUT)),
- QByteArray(), QByteArray(), QString(), Error());
- }
- if (proc.exitStatus() == QProcess::NormalExit && proc.exitCode() == 0) {
- return std::make_tuple (Error(), proc.readAllStandardOutput(),
- proc.readAllStandardError(), QString(), Error());
- }
- return std::make_tuple (Error(make_error(GPG_ERR_GENERAL)),
- proc.readAllStandardOutput(), proc.readAllStandardError(), QString(), Error());
-}
-
-static QGpgMEWKSPublishJob::result_type receive_worker(const QByteArray &response)
-{
- if (response.isEmpty()) {
- return std::make_tuple (Error(make_error(GPG_ERR_INV_ARG)),
- QByteArray(), QByteArray(), QString(), Error());
- }
-
- const auto wksPath = getWKSClient();
- if (wksPath.isEmpty()) {
- return std::make_tuple (Error(make_error(GPG_ERR_NOT_SUPPORTED)),
- QByteArray(), QByteArray(), QString(), Error());
- }
-
- QProcess proc;
- proc.setProgram(wksPath);
- proc.setArguments(QStringList() << QStringLiteral("--receive"));
- proc.start();
- if (!proc.waitForStarted()) {
- return std::make_tuple (Error(make_error(GPG_ERR_NOT_SUPPORTED)),
- QByteArray(), QByteArray(), QString(), Error());
- }
- proc.write(response);
- proc.closeWriteChannel();
- if (!proc.waitForFinished(TIMEOUT_VALUE)) {
- return std::make_tuple (Error(make_error(GPG_ERR_TIMEOUT)),
- QByteArray(), QByteArray(), QString(), Error());
- }
- if (proc.exitStatus() == QProcess::NormalExit && proc.exitCode() == 0) {
- return std::make_tuple (Error(), proc.readAllStandardOutput(),
- proc.readAllStandardError(), QString(), Error());
- }
- return std::make_tuple (Error(make_error(GPG_ERR_GENERAL)),
- proc.readAllStandardOutput(), proc.readAllStandardError(), QString(), Error());
-}
-
-void QGpgMEWKSPublishJob::startCheck(const QString &mailbox)
-{
- run(std::bind(&check_worker, mailbox));
-}
-
-void QGpgMEWKSPublishJob::startCreate(const char *fpr, const QString &mailbox) {
- run(std::bind(&create_worker, fpr, mailbox));
-}
-
-void QGpgMEWKSPublishJob::startReceive(const QByteArray &response)
-{
- run(std::bind(&receive_worker, response));
-}
-
-#include "qgpgmewkspublishjob.moc"