FWIW this is the libguestfs RPC protocol: http://et.redhat.com/~rjones/libguestfs/guestfs.3.html#communication_protocol http://git.et.redhat.com/?p=libguestfs.git;a=blob;f=src/guestfs_protocol.x;hb=HEAD It's not directly relevant because at present the server is single- threaded and answers calls in order. These are the relevant points of the file transfer system: - At the API level, you pass in filenames. The caller is responsible for creating a named pipe in the filesystem, or passing in names like "/dev/fd/N". - File transfers are sent using chunked encoding. The key was to allow cancellation *initiated from either side* (not as easy as it seems). So if an error occurs at either end, the transfer can be stopped almost immediately, and synchronization can be reestablished. The details are in the link above. Rich. -- Richard Jones, Emerging Technologies, Red Hat http://et.redhat.com/~rjones virt-p2v converts physical machines to virtual machines. Boot with a live CD or over the network (PXE) and turn machines into Xen guests. http://et.redhat.com/~rjones/virt-p2v -- Libvir-list mailing list Libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list