diff options
| author | Andre Heinecke <[email protected]> | 2018-07-05 09:28:08 +0000 | 
|---|---|---|
| committer | Andre Heinecke <[email protected]> | 2018-07-05 09:29:36 +0000 | 
| commit | 66c2a99422dd9a52d8342165ed1d033c4f29b9e0 (patch) | |
| tree | 413d8dea5225d9bc680571e841e2b4e6269c07c1 /lang/qt/src/threadedjobmixin.cpp | |
| parent | cpp: Add enum mapping for GPGME_AUDIT_LOG_DIAG (diff) | |
| download | gpgme-66c2a99422dd9a52d8342165ed1d033c4f29b9e0.tar.gz gpgme-66c2a99422dd9a52d8342165ed1d033c4f29b9e0.zip  | |
qt: Handle OpenPGP Diagnostic log
* lang/qt/src/threadedjobmixin.cpp (_detail::audit_log_as_html):
Handle OpenPGP audit log differently.
Diffstat (limited to '')
| -rw-r--r-- | lang/qt/src/threadedjobmixin.cpp | 32 | 
1 files changed, 27 insertions, 5 deletions
diff --git a/lang/qt/src/threadedjobmixin.cpp b/lang/qt/src/threadedjobmixin.cpp index 74755c55..8fed77c2 100644 --- a/lang/qt/src/threadedjobmixin.cpp +++ b/lang/qt/src/threadedjobmixin.cpp @@ -53,7 +53,16 @@  using namespace QGpgME;  using namespace GpgME; -static const unsigned int GetAuditLogFlags = Context::AuditLogWithHelp | Context::HtmlAuditLog; +static QString markupDiagnostics(const QString &data) +{ +    // First ensure that we don't have html in the diag. +    QString ret = QStringLiteral("<pre>%1</pre>").arg(data.toHtmlEscaped()); + +    return ret; +} + +static const unsigned int CMSAuditLogFlags = Context::AuditLogWithHelp | Context::HtmlAuditLog; +static const unsigned int OpenPGPAuditLogFlags = Context::DiagnosticAuditLog;  QString _detail::audit_log_as_html(Context *ctx, GpgME::Error &err)  { @@ -61,11 +70,24 @@ QString _detail::audit_log_as_html(Context *ctx, GpgME::Error &err)      QGpgME::QByteArrayDataProvider dp;      Data data(&dp);      assert(!data.isNull()); -    if ((err = ctx->lastError()) || (err = ctx->getAuditLog(data, GetAuditLogFlags))) { -        return QString::fromLocal8Bit(err.asString()); + +    if (ctx->protocol() == OpenPGP) { +        if ((err = ctx->getAuditLog(data, OpenPGPAuditLogFlags))) { +            return QString::fromLocal8Bit(err.asString()); +        } +        const QByteArray ba = dp.data(); +        return markupDiagnostics(QString::fromUtf8(ba.data(), ba.size())); +    } + +    if (ctx->protocol() == CMS) { +        if ((err = ctx->lastError()) || (err = ctx->getAuditLog(data, CMSAuditLogFlags))) { +            return QString::fromLocal8Bit(err.asString()); +        } +        const QByteArray ba = dp.data(); +        return QString::fromUtf8(ba.data(), ba.size());      } -    const QByteArray ba = dp.data(); -    return QString::fromUtf8(ba.data(), ba.size()); + +    return QStringLiteral("Unsupported protocol for Audit Log");  }  static QList<QByteArray> from_sl(const QStringList &sl)  | 
