* Peter Xu (pet...@redhat.com) wrote: > Add migrate_tls_enabled() to detect whether TLS is configured. > > Add migrate_channel_requires_tls() to detect whether the specific channel > requires TLS. > > No functional change intended. > > Signed-off-by: Peter Xu <pet...@redhat.com>
Reviewed-by: Dr. David Alan Gilbert <dgilb...@redhat.com> > --- > migration/channel.c | 10 ++-------- > migration/migration.c | 8 ++++++++ > migration/migration.h | 2 ++ > migration/multifd.c | 7 +------ > migration/tls.c | 9 +++++++++ > migration/tls.h | 4 ++++ > 6 files changed, 26 insertions(+), 14 deletions(-) > > diff --git a/migration/channel.c b/migration/channel.c > index c6a8dcf1d7..36e59eaeec 100644 > --- a/migration/channel.c > +++ b/migration/channel.c > @@ -38,10 +38,7 @@ void migration_channel_process_incoming(QIOChannel *ioc) > trace_migration_set_incoming_channel( > ioc, object_get_typename(OBJECT(ioc))); > > - if (s->parameters.tls_creds && > - *s->parameters.tls_creds && > - !object_dynamic_cast(OBJECT(ioc), > - TYPE_QIO_CHANNEL_TLS)) { > + if (migrate_channel_requires_tls(ioc)) { > migration_tls_channel_process_incoming(s, ioc, &local_err); > } else { > migration_ioc_register_yank(ioc); > @@ -71,10 +68,7 @@ void migration_channel_connect(MigrationState *s, > ioc, object_get_typename(OBJECT(ioc)), hostname, error); > > if (!error) { > - if (s->parameters.tls_creds && > - *s->parameters.tls_creds && > - !object_dynamic_cast(OBJECT(ioc), > - TYPE_QIO_CHANNEL_TLS)) { > + if (migrate_channel_requires_tls(ioc)) { > migration_tls_channel_connect(s, ioc, hostname, &error); > > if (!error) { > diff --git a/migration/migration.c b/migration/migration.c > index cd9650f2e2..71a50b5c37 100644 > --- a/migration/migration.c > +++ b/migration/migration.c > @@ -49,6 +49,7 @@ > #include "trace.h" > #include "exec/target_page.h" > #include "io/channel-buffer.h" > +#include "io/channel-tls.h" > #include "migration/colo.h" > #include "hw/boards.h" > #include "hw/qdev-properties.h" > @@ -4250,6 +4251,13 @@ void migration_global_dump(Monitor *mon) > ms->clear_bitmap_shift); > } > > +bool migrate_tls_enabled(void) > +{ > + MigrationState *s = migrate_get_current(); > + > + return s->parameters.tls_creds && *s->parameters.tls_creds; > +} > + > #define DEFINE_PROP_MIG_CAP(name, x) \ > DEFINE_PROP_BOOL(name, MigrationState, enabled_capabilities[x], false) > > diff --git a/migration/migration.h b/migration/migration.h > index 6ee520642f..db176ea749 100644 > --- a/migration/migration.h > +++ b/migration/migration.h > @@ -436,6 +436,8 @@ bool migrate_use_events(void); > bool migrate_postcopy_blocktime(void); > bool migrate_background_snapshot(void); > bool migrate_postcopy_preempt(void); > +/* Whether TLS is enabled for migration? */ > +bool migrate_tls_enabled(void); > > /* Sending on the return path - generic and then for each message type */ > void migrate_send_rp_shut(MigrationIncomingState *mis, > diff --git a/migration/multifd.c b/migration/multifd.c > index 9ea4f581e2..19e3c44491 100644 > --- a/migration/multifd.c > +++ b/migration/multifd.c > @@ -782,17 +782,12 @@ static bool multifd_channel_connect(MultiFDSendParams > *p, > QIOChannel *ioc, > Error *error) > { > - MigrationState *s = migrate_get_current(); > - > trace_multifd_set_outgoing_channel( > ioc, object_get_typename(OBJECT(ioc)), > migrate_get_current()->hostname, error); > > if (!error) { > - if (s->parameters.tls_creds && > - *s->parameters.tls_creds && > - !object_dynamic_cast(OBJECT(ioc), > - TYPE_QIO_CHANNEL_TLS)) { > + if (migrate_channel_requires_tls(ioc)) { > multifd_tls_channel_connect(p, ioc, &error); > if (!error) { > /* > diff --git a/migration/tls.c b/migration/tls.c > index 32c384a8b6..bd1fa01048 100644 > --- a/migration/tls.c > +++ b/migration/tls.c > @@ -166,3 +166,12 @@ void migration_tls_channel_connect(MigrationState *s, > NULL, > NULL); > } > + > +bool migrate_channel_requires_tls(QIOChannel *ioc) > +{ > + if (!migrate_tls_enabled()) { > + return false; > + } > + > + return !object_dynamic_cast(OBJECT(ioc), TYPE_QIO_CHANNEL_TLS); > +} > diff --git a/migration/tls.h b/migration/tls.h > index de4fe2cafd..a54c1dcec7 100644 > --- a/migration/tls.h > +++ b/migration/tls.h > @@ -37,4 +37,8 @@ void migration_tls_channel_connect(MigrationState *s, > QIOChannel *ioc, > const char *hostname, > Error **errp); > + > +/* Whether the QIO channel requires further TLS handshake? */ > +bool migrate_channel_requires_tls(QIOChannel *ioc); > + > #endif > -- > 2.32.0 > -- Dr. David Alan Gilbert / dgilb...@redhat.com / Manchester, UK