Commit 428d8908 authored by Juan Quintela's avatar Juan Quintela
Browse files

migration: Create migration_has_all_channels



This function allows us to decide when to close the listener socket.
For now, we only need one connection.

Signed-off-by: default avatarJuan Quintela <quintela@redhat.com>
Reviewed-by: default avatarDaniel P. Berrange <berrange@redhat.com>
parent 8e1a1931
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -384,6 +384,17 @@ void migration_ioc_process_incoming(QIOChannel *ioc)
    /* We still only have a single channel.  Nothing to do here yet */
}

/**
 * @migration_has_all_channels: We have received all channels that we need
 *
 * Returns true when we have got connections to all the channels that
 * we need for migration.
 */
bool migration_has_all_channels(void)
{
    return true;
}

/*
 * Send a 'SHUT' message on the return channel with the given value
 * to indicate that we've finished with the RP.  Non-0 value indicates
+2 −0
Original line number Diff line number Diff line
@@ -155,6 +155,8 @@ void migrate_set_state(int *state, int old_state, int new_state);
void migration_fd_process_incoming(QEMUFile *f);
void migration_ioc_process_incoming(QIOChannel *ioc);

bool  migration_has_all_channels(void);

uint64_t migrate_max_downtime(void);

void migrate_fd_error(MigrationState *s, const Error *error);
+7 −3
Original line number Diff line number Diff line
@@ -152,9 +152,13 @@ static gboolean socket_accept_incoming_migration(QIOChannel *ioc,
    object_unref(OBJECT(sioc));

out:
    if (migration_has_all_channels()) {
        /* Close listening socket as its no longer needed */
        qio_channel_close(ioc, NULL);
        return G_SOURCE_REMOVE;
    } else {
        return G_SOURCE_CONTINUE;
    }
}