migration: Add helpers to detect TLS capability
Add migrate_channel_requires_tls() to detect whether the specific channel requires TLS, leveraging the recently introduced migrate_use_tls(). No functional change intended. Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com> Signed-off-by: Peter Xu <peterx@redhat.com> Message-Id: <20220707185513.27421-1-peterx@redhat.com> Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
This commit is contained in:
		
							parent
							
								
									c8750de118
								
							
						
					
					
						commit
						85a8578ea5
					
				| @ -38,9 +38,7 @@ void migration_channel_process_incoming(QIOChannel *ioc) | ||||
|     trace_migration_set_incoming_channel( | ||||
|         ioc, object_get_typename(OBJECT(ioc))); | ||||
| 
 | ||||
|     if (migrate_use_tls() && | ||||
|         !object_dynamic_cast(OBJECT(ioc), | ||||
|                              TYPE_QIO_CHANNEL_TLS)) { | ||||
|     if (migrate_channel_requires_tls_upgrade(ioc)) { | ||||
|         migration_tls_channel_process_incoming(s, ioc, &local_err); | ||||
|     } else { | ||||
|         migration_ioc_register_yank(ioc); | ||||
| @ -70,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_upgrade(ioc)) { | ||||
|             migration_tls_channel_connect(s, ioc, hostname, &error); | ||||
| 
 | ||||
|             if (!error) { | ||||
|  | ||||
| @ -48,6 +48,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" | ||||
|  | ||||
| @ -831,9 +831,7 @@ static bool multifd_channel_connect(MultiFDSendParams *p, | ||||
|         migrate_get_current()->hostname, error); | ||||
| 
 | ||||
|     if (!error) { | ||||
|         if (migrate_use_tls() && | ||||
|             !object_dynamic_cast(OBJECT(ioc), | ||||
|                                  TYPE_QIO_CHANNEL_TLS)) { | ||||
|         if (migrate_channel_requires_tls_upgrade(ioc)) { | ||||
|             multifd_tls_channel_connect(p, ioc, &error); | ||||
|             if (!error) { | ||||
|                 /*
 | ||||
|  | ||||
| @ -166,3 +166,12 @@ void migration_tls_channel_connect(MigrationState *s, | ||||
|                               NULL, | ||||
|                               NULL); | ||||
| } | ||||
| 
 | ||||
| bool migrate_channel_requires_tls_upgrade(QIOChannel *ioc) | ||||
| { | ||||
|     if (!migrate_use_tls()) { | ||||
|         return false; | ||||
|     } | ||||
| 
 | ||||
|     return !object_dynamic_cast(OBJECT(ioc), TYPE_QIO_CHANNEL_TLS); | ||||
| } | ||||
|  | ||||
| @ -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_upgrade(QIOChannel *ioc); | ||||
| 
 | ||||
| #endif | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Peter Xu
						Peter Xu