mirror of
				https://gitlab.com/qemu-project/qemu.git
				synced 2025-10-30 07:57:14 +08:00 
			
		
		
		
	migration: Support fd-based socket address in cpr_transfer_input
Extend cpr_transfer_input to handle SOCKET_ADDRESS_TYPE_FD alongside SOCKET_ADDRESS_TYPE_UNIX. This change supports the use of pre-listened socket file descriptors for cpr migration channels. This change is particularly useful in qtest environments, where the socket may be created externally and passed via fd. Reviewed-by: Jason J. Herne <jjherne@linux.ibm.com> Reviewed-by: Steve Sistare <steven.sistare@oracle.com> Signed-off-by: Jaehoon Kim <jhkim@linux.ibm.com> Link: https://lore.kernel.org/r/20250611205610.147008-3-jhkim@linux.ibm.com Signed-off-by: Peter Xu <peterx@redhat.com>
This commit is contained in:
		| @ -46,7 +46,8 @@ QEMUFile *cpr_transfer_input(MigrationChannel *channel, Error **errp) | ||||
|     MigrationAddress *addr = channel->addr; | ||||
|  | ||||
|     if (addr->transport == MIGRATION_ADDRESS_TYPE_SOCKET && | ||||
|         addr->u.socket.type == SOCKET_ADDRESS_TYPE_UNIX) { | ||||
|         (addr->u.socket.type == SOCKET_ADDRESS_TYPE_UNIX || | ||||
|             addr->u.socket.type == SOCKET_ADDRESS_TYPE_FD)) { | ||||
|  | ||||
|         g_autoptr(QIOChannelSocket) sioc = NULL; | ||||
|         SocketAddress *saddr = &addr->u.socket; | ||||
| @ -60,7 +61,9 @@ QEMUFile *cpr_transfer_input(MigrationChannel *channel, Error **errp) | ||||
|  | ||||
|         sioc = qio_net_listener_wait_client(listener); | ||||
|         ioc = QIO_CHANNEL(sioc); | ||||
|         trace_cpr_transfer_input(addr->u.socket.u.q_unix.path); | ||||
|         trace_cpr_transfer_input( | ||||
|             addr->u.socket.type == SOCKET_ADDRESS_TYPE_UNIX ? | ||||
|             addr->u.socket.u.q_unix.path : addr->u.socket.u.fd.str); | ||||
|         qio_channel_set_name(ioc, "cpr-in"); | ||||
|         return qemu_file_new_input(ioc); | ||||
|  | ||||
|  | ||||
		Reference in New Issue
	
	Block a user
	 Jaehoon Kim
					Jaehoon Kim