migration/tls: extract migration_tls_client_create for common-use

migration_tls_client_create will be used in multifd-tls, let's
extract it.

Signed-off-by: Chuan Zheng <zhengchuan@huawei.com>
Signed-off-by: Yan Jin <jinyan12@huawei.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Message-Id: <1600139042-104593-3-git-send-email-zhengchuan@huawei.com>
Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
This commit is contained in:
Chuan Zheng 2020-09-15 11:03:58 +08:00 committed by Dr. David Alan Gilbert
parent d8053e73fb
commit bfb790e7b2
2 changed files with 24 additions and 8 deletions

View File

@ -22,7 +22,6 @@
#include "channel.h" #include "channel.h"
#include "migration.h" #include "migration.h"
#include "tls.h" #include "tls.h"
#include "io/channel-tls.h"
#include "crypto/tlscreds.h" #include "crypto/tlscreds.h"
#include "qemu/error-report.h" #include "qemu/error-report.h"
#include "qapi/error.h" #include "qapi/error.h"
@ -125,11 +124,10 @@ static void migration_tls_outgoing_handshake(QIOTask *task,
object_unref(OBJECT(ioc)); object_unref(OBJECT(ioc));
} }
QIOChannelTLS *migration_tls_client_create(MigrationState *s,
void migration_tls_channel_connect(MigrationState *s, QIOChannel *ioc,
QIOChannel *ioc, const char *hostname,
const char *hostname, Error **errp)
Error **errp)
{ {
QCryptoTLSCreds *creds; QCryptoTLSCreds *creds;
QIOChannelTLS *tioc; QIOChannelTLS *tioc;
@ -137,7 +135,7 @@ void migration_tls_channel_connect(MigrationState *s,
creds = migration_tls_get_creds( creds = migration_tls_get_creds(
s, QCRYPTO_TLS_CREDS_ENDPOINT_CLIENT, errp); s, QCRYPTO_TLS_CREDS_ENDPOINT_CLIENT, errp);
if (!creds) { if (!creds) {
return; return NULL;
} }
if (s->parameters.tls_hostname && *s->parameters.tls_hostname) { if (s->parameters.tls_hostname && *s->parameters.tls_hostname) {
@ -145,11 +143,23 @@ void migration_tls_channel_connect(MigrationState *s,
} }
if (!hostname) { if (!hostname) {
error_setg(errp, "No hostname available for TLS"); error_setg(errp, "No hostname available for TLS");
return; return NULL;
} }
tioc = qio_channel_tls_new_client( tioc = qio_channel_tls_new_client(
ioc, creds, hostname, errp); ioc, creds, hostname, errp);
return tioc;
}
void migration_tls_channel_connect(MigrationState *s,
QIOChannel *ioc,
const char *hostname,
Error **errp)
{
QIOChannelTLS *tioc;
tioc = migration_tls_client_create(s, ioc, hostname, errp);
if (!tioc) { if (!tioc) {
return; return;
} }

View File

@ -22,11 +22,17 @@
#define QEMU_MIGRATION_TLS_H #define QEMU_MIGRATION_TLS_H
#include "io/channel.h" #include "io/channel.h"
#include "io/channel-tls.h"
void migration_tls_channel_process_incoming(MigrationState *s, void migration_tls_channel_process_incoming(MigrationState *s,
QIOChannel *ioc, QIOChannel *ioc,
Error **errp); Error **errp);
QIOChannelTLS *migration_tls_client_create(MigrationState *s,
QIOChannel *ioc,
const char *hostname,
Error **errp);
void migration_tls_channel_connect(MigrationState *s, void migration_tls_channel_connect(MigrationState *s,
QIOChannel *ioc, QIOChannel *ioc,
const char *hostname, const char *hostname,