On Thu, Oct 30, 2025 at 6:49 PM Daniel P. Berrangé <[email protected]> wrote:
> This prevents direct access of the class members by the VNC > display code. > > Signed-off-by: Daniel P. Berrangé <[email protected]> > Reviewed-by: Marc-André Lureau <[email protected]> > --- > crypto/tlscreds.c | 15 +++++++++++++++ > include/crypto/tlscreds.h | 13 +++++++++++++ > ui/vnc.c | 9 +-------- > 3 files changed, 29 insertions(+), 8 deletions(-) > > diff --git a/crypto/tlscreds.c b/crypto/tlscreds.c > index 49c7eb46a5..9433b4c363 100644 > --- a/crypto/tlscreds.c > +++ b/crypto/tlscreds.c > @@ -281,6 +281,21 @@ char *qcrypto_tls_creds_get_priority(QCryptoTLSCreds > *creds) > } > > > +bool qcrypto_tls_creds_reload(QCryptoTLSCreds *creds, > + Error **errp) > +{ > + QCryptoTLSCredsClass *credscls = > QCRYPTO_TLS_CREDS_GET_CLASS(OBJECT(creds)); > + > OBJECT() unnecessary here > + if (credscls->reload) { > + return credscls->reload(creds, errp); > + } > + > + error_setg(errp, "%s does not support reloading credentials", > + object_get_typename(OBJECT(creds))); > + return false; > +} > + > + > static const TypeInfo qcrypto_tls_creds_info = { > .parent = TYPE_OBJECT, > .name = TYPE_QCRYPTO_TLS_CREDS, > diff --git a/include/crypto/tlscreds.h b/include/crypto/tlscreds.h > index afd1016088..bb9280ed1a 100644 > --- a/include/crypto/tlscreds.h > +++ b/include/crypto/tlscreds.h > @@ -77,4 +77,17 @@ bool qcrypto_tls_creds_check_endpoint(QCryptoTLSCreds > *creds, > */ > char *qcrypto_tls_creds_get_priority(QCryptoTLSCreds *creds); > > + > +/** > + * qcrypto_tls_creds_reload: > + * @creds: pointer to a TLS credentials object > + * @errp: pointer to a NULL-initialized error object > + * > + * Request a reload of the TLS credentials, if supported > + * > + * Returns: true on success, false on error or if not supported > + */ > +bool qcrypto_tls_creds_reload(QCryptoTLSCreds *creds, > + Error **errp); > + > #endif /* QCRYPTO_TLSCREDS_H */ > diff --git a/ui/vnc.c b/ui/vnc.c > index 77c823bf2e..6b32dd0fe9 100644 > --- a/ui/vnc.c > +++ b/ui/vnc.c > @@ -578,7 +578,6 @@ VncInfo2List *qmp_query_vnc_servers(Error **errp) > bool vnc_display_reload_certs(const char *id, Error **errp) > { > VncDisplay *vd = vnc_display_find(id); > - QCryptoTLSCredsClass *creds = NULL; > > if (!vd) { > error_setg(errp, "Can not find vnc display"); > @@ -590,13 +589,7 @@ bool vnc_display_reload_certs(const char *id, Error > **errp) > return false; > } > > - creds = QCRYPTO_TLS_CREDS_GET_CLASS(OBJECT(vd->tlscreds)); > - if (creds->reload == NULL) { > - error_setg(errp, "%s doesn't support to reload TLS credential", > - object_get_typename(OBJECT(vd->tlscreds))); > - return false; > - } > - if (!creds->reload(vd->tlscreds, errp)) { > + if (!qcrypto_tls_creds_reload(vd->tlscreds, errp)) { > return false; > } > > -- > 2.51.1 > >
