}
+bool qcrypto_tls_creds_reload(QCryptoTLSCreds *creds,
+ Error **errp)
+{
+ QCryptoTLSCredsClass *credscls = QCRYPTO_TLS_CREDS_GET_CLASS(creds);
+
+ 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,
*/
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 */
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");
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;
}