On 04/02/2015 12:32, Daniel P. Berrange wrote:
> So my idea would be that we define a QEMUChannel object and set of APIs to
> standardize all interaction with sockets, pipes, RDMA, whatever $channel,
> and then convert the QEMU features I've mentioned over to use that. I think
> that would be simpler than trying to untangle QEMUFile code from migration
> and then extend its features.

Could it be GIOChannel simply?

1) Chardev is already mostly a wrapper around GIOChannel

2) NBD and VNC could be converted to GIOChannel with relative ease

3) migration is more complicated because (unlike everything else) it
uses a separate thread and blocking sockets, but you could probably
write a GIOChannel-based implementation of QEMUFile.

I found a GIOChannel wrapper for gnutls at
https://github.com/aldebaran/connman/blob/master/gweb/giognutls.c.  It's
not the right license for QEMU (GPLv2-only) but it's only 400 lines of
code.  If necessary I can help with clean-room reverse engineering.

Paolo

Reply via email to