Hi, > -static MigrationState *migrate_init(int blk, int inc) > +static MigrationState *migrate_init(int protocol, const char *protocol_param, > + int blk, int inc)
> + s->protocol = protocol; > + s->protocol_param = g_strdup(protocol_param); Hmm, I think I would store the complete uri here ... > if (strstart(uri, "tcp:", &p)) { > - ret = tcp_start_outgoing_migration(s, p, errp); > + migrate_protocol = MIGRATION_PROTOCOL_TCP; > #if !defined(WIN32) > } else if (strstart(uri, "exec:", &p)) { > - ret = exec_start_outgoing_migration(s, p); > + migrate_protocol = MIGRATION_PROTOCOL_EXEC; > } else if (strstart(uri, "unix:", &p)) { > - ret = unix_start_outgoing_migration(s, p); > + migrate_protocol = MIGRATION_PROTOCOL_UNIX; > } else if (strstart(uri, "fd:", &p)) { > - ret = fd_start_outgoing_migration(s, p); > + migrate_protocol = MIGRATION_PROTOCOL_FD; > #endif ... then just move that uri parsing code block to migrate_start(). cheers, Gerd