On Mon, Aug 15, 2011 at 17:48:03 +0800, Daniel Veillard wrote: > On Mon, Aug 15, 2011 at 09:58:14AM +0200, Jiri Denemark wrote: > > The core of these two functions is very similar and most of it is even > > exactly the same. Factor out the core functionality into a separate > > function to remove code duplication and make further changes easier. > > --- > > src/qemu/qemu_migration.c | 499 ++++++++++++++++++++++----------------------- > > 1 files changed, 239 insertions(+), 260 deletions(-) > > > > diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c > > index 4d0e062..1cabbe0 100644 > > --- a/src/qemu/qemu_migration.c > > +++ b/src/qemu/qemu_migration.c > > @@ -1265,122 +1265,37 @@ cleanup: ... > > +struct _qemuMigrationSpec { > > + enum qemuMigrationDestinationType destType; > > + union { > > + struct { > > + const char *name; > > + int port; > > + } host; > > + > > + struct { > > + const char *file; > > + int sock; > > + } unics; /* this sucks but "unix" is a macro defined to 1 */ > > stylistic: I would go for unx, unics is so reminiscent of Multics <sigh/> > or unix_socket, that one should be clean. OK, I kind of like this link to Multics :-) but I agree that unix_socket is cleaner (though unix_socket.sock is not so nice as unix.sock would have been) and I also removed the comment. ... > > +qemuMigrationRun(struct qemud_driver *driver, > > + virDomainObjPtr vm, > > + const char *cookiein, > > + int cookieinlen, > > + char **cookieout, > > + int *cookieoutlen, > > + unsigned int flags, > > + unsigned long resource, > > + qemuMigrationSpecPtr spec) > > { > > - qemuDomainObjPrivatePtr priv = vm->privateData; > > - int client_sock = -1; > > - int qemu_sock = -1; > > - struct sockaddr_un sa_qemu, sa_client; > > - socklen_t addrlen; > > - int status; > > - unsigned long long transferred, remaining, total; > > - char *unixfile = NULL; > > - unsigned int background_flags = QEMU_MONITOR_MIGRATE_BACKGROUND; > > int ret = -1; > > + unsigned int migrate_flags = QEMU_MONITOR_MIGRATE_BACKGROUND; > > + qemuDomainObjPrivatePtr priv = vm->privateData; > > qemuMigrationCookiePtr mig = NULL; > > qemuMigrationIOThreadPtr iothread = NULL; > > - VIR_DEBUG("driver=%p, vm=%p, st=%p, cookiein=%s, cookieinlen=%d, " > > - "cookieout=%p, cookieoutlen=%p, flags=%lx, resource=%lu", > > - driver, vm, st, NULLSTR(cookiein), cookieinlen, > > - cookieout, cookieoutlen, flags, resource); > > I would still keep a VIR_DEBUG() even if there is one on the callers, > because that code is new, not that simple, and I would go for increased > tracability/verbosity in that case OK, I added this additional VIR_DEBUG to qemuMigrationRun too. Note that the existing do{Native,Tunnel}Migrate didn't lose their VIR_DEBUG calls. Jirka -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list