Warning, file /frameworks/kio/src/core/kssld_dbusmetatypes.h was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).

0001 /*
0002     This file is part of the KDE libraries
0003     SPDX-FileCopyrightText: 2007 Andreas Hartmetz <ahartmetz@gmail.com>
0004 
0005     SPDX-License-Identifier: LGPL-2.0-or-later
0006 */
0007 
0008 #ifndef KSSLD_DBUSMETATYPES_H
0009 #define KSSLD_DBUSMETATYPES_H
0010 
0011 #include "ksslcertificatemanager_p.h"
0012 
0013 #include <QDBusArgument>
0014 #include <QDBusMetaType>
0015 #include <qglobal.h>
0016 
0017 Q_DECLARE_METATYPE(KSslCertificateRule)
0018 Q_DECLARE_METATYPE(QSslError::SslError)
0019 
0020 inline QDBusArgument &operator<<(QDBusArgument &argument, const QSslCertificate &cert)
0021 {
0022     argument.beginStructure();
0023     argument << cert.toDer();
0024     argument.endStructure();
0025     return argument;
0026 }
0027 
0028 inline const QDBusArgument &operator>>(const QDBusArgument &argument, QSslCertificate &cert)
0029 {
0030     QByteArray data;
0031     argument.beginStructure();
0032     argument >> data;
0033     argument.endStructure();
0034     cert = QSslCertificate(data, QSsl::Der);
0035     return argument;
0036 }
0037 
0038 inline QDBusArgument &operator<<(QDBusArgument &argument, const KSslCertificateRule &rule)
0039 {
0040     argument.beginStructure();
0041     argument << rule.certificate() << rule.hostName() << rule.isRejected() << rule.expiryDateTime().toString(Qt::ISODate)
0042              << rule.d->ignoredErrors; // TODO KF6: replace by a call to rule.ignoredErrors
0043     argument.endStructure();
0044     return argument;
0045 }
0046 
0047 inline const QDBusArgument &operator>>(const QDBusArgument &argument, KSslCertificateRule &rule)
0048 {
0049     QSslCertificate cert;
0050     QString hostName;
0051     bool isRejected;
0052     QString expiryStr;
0053     QList<QSslError::SslError> ignoredErrors;
0054     argument.beginStructure();
0055     argument >> cert >> hostName >> isRejected >> expiryStr >> ignoredErrors;
0056     argument.endStructure();
0057 
0058     KSslCertificateRule ret(cert, hostName);
0059     ret.setRejected(isRejected);
0060     ret.setExpiryDateTime(QDateTime::fromString(expiryStr, Qt::ISODate));
0061     ret.setIgnoredErrors(ignoredErrors);
0062     rule = ret;
0063     return argument;
0064 }
0065 
0066 inline QDBusArgument &operator<<(QDBusArgument &argument, const QSslError::SslError &error)
0067 {
0068     argument.beginStructure(); // overhead ho!
0069     argument << static_cast<int>(error);
0070     argument.endStructure();
0071     return argument;
0072 }
0073 
0074 inline const QDBusArgument &operator>>(const QDBusArgument &argument, QSslError::SslError &error)
0075 {
0076     int data;
0077     argument.beginStructure();
0078     argument >> data;
0079     argument.endStructure();
0080     error = static_cast<QSslError::SslError>(data);
0081     return argument;
0082 }
0083 
0084 static void registerMetaTypesForKSSLD()
0085 {
0086     qDBusRegisterMetaType<QSslCertificate>();
0087     qDBusRegisterMetaType<KSslCertificateRule>();
0088     qDBusRegisterMetaType<QList<QSslCertificate>>();
0089     qDBusRegisterMetaType<QSslError::SslError>();
0090     qDBusRegisterMetaType<QList<QSslError::SslError>>();
0091 }
0092 
0093 #endif // KSSLD_DBUSMETATYPES_H