[Spice-devel] [PATCH spice-gtk] More cleanup for old protocol support

Jonathon Jongsma jjongsma at redhat.com
Thu Jan 3 16:55:51 UTC 2019


Acked-by: Jonathon Jongsma <jjongsma at redhat.com>


On Mon, 2018-12-17 at 10:53 +0000, Frediano Ziglio wrote:
> Support for protocol version 1 was dropped in commit f77a1d50.
> 
> Signed-off-by: Frediano Ziglio <fziglio at redhat.com>
> ---
>  src/channel-base.c |  4 ---
>  src/channel-main.c | 69 +++++++++++++++++++-------------------------
> --
>  2 files changed, 29 insertions(+), 44 deletions(-)
> 
> Patch much smaller seen ignoring space changes.
> 
> diff --git a/src/channel-base.c b/src/channel-base.c
> index d8fe7692..eb85f8ac 100644
> --- a/src/channel-base.c
> +++ b/src/channel-base.c
> @@ -163,10 +163,6 @@ spice_channel_handle_migrate(SpiceChannel
> *channel, SpiceMsgIn *in)
>      if (mig->flags & SPICE_MIGRATE_NEED_FLUSH) {
>          /* if peer version > 1: pushing the mark msg before all
> other messgages and sending it,
>           * and only it */
> -        if (c->peer_hdr.major_version == 1) {
> -            /* iterate_write is blocking and flushing all pending
> write */
> -            SPICE_CHANNEL_GET_CLASS(channel)-
> >iterate_write(channel);
> -        }
>          out = spice_msg_out_new(SPICE_CHANNEL(channel),
> SPICE_MSGC_MIGRATE_FLUSH_MARK);
>          spice_msg_out_send_internal(out);
>      }
> diff --git a/src/channel-main.c b/src/channel-main.c
> index 4c6bc704..d902f37f 100644
> --- a/src/channel-main.c
> +++ b/src/channel-main.c
> @@ -2295,47 +2295,36 @@ static gboolean migrate_connect(gpointer
> data)
>  
>      spice_session_set_migration_state(mig->session,
> SPICE_SESSION_MIGRATION_CONNECTING);
>  
> -    if ((c->peer_hdr.major_version == 1) &&
> -        (c->peer_hdr.minor_version < 1)) {
> -        OldRedMigrationBegin *info = (OldRedMigrationBegin *)mig-
> >info;
> -        SPICE_DEBUG("migrate_begin old %s %d %d",
> -                    info->host, info->port, info->sport);
> -        port = info->port;
> -        sport = info->sport;
> -        host = info->host;
> +    SpiceMigrationDstInfo *info = mig->info;
> +    SPICE_DEBUG("migrate_begin %u %s %d %d",
> +                info->host_size, info->host_data, info->port, info-
> >sport);
> +    port = info->port;
> +    sport = info->sport;
> +    host = (char*)info->host_data;
> +
> +    if (c->peer_hdr.major_version == 2 && c->peer_hdr.minor_version
> < 1) {
> +        GByteArray *pubkey = g_byte_array_new();
> +
> +        g_byte_array_append(pubkey, info->pub_key_data, info-
> >pub_key_size);
> +        g_object_set(mig->session,
> +                     "pubkey", pubkey,
> +                     "verify", SPICE_SESSION_VERIFY_PUBKEY,
> +                     NULL);
> +        g_byte_array_unref(pubkey);
> +    } else if (info->cert_subject_size == 0 ||
> +               strlen((const char*)info->cert_subject_data) == 0) {
> +        /* only verify hostname if no cert subject */
> +        g_object_set(mig->session, "verify",
> SPICE_SESSION_VERIFY_HOSTNAME, NULL);
>      } else {
> -        SpiceMigrationDstInfo *info = mig->info;
> -        SPICE_DEBUG("migrate_begin %u %s %d %d",
> -                    info->host_size, info->host_data, info->port,
> info->sport);
> -        port = info->port;
> -        sport = info->sport;
> -        host = (char*)info->host_data;
> -
> -        if ((c->peer_hdr.major_version == 1) ||
> -            (c->peer_hdr.major_version == 2 && c-
> >peer_hdr.minor_version < 1)) {
> -            GByteArray *pubkey = g_byte_array_new();
> -
> -            g_byte_array_append(pubkey, info->pub_key_data, info-
> >pub_key_size);
> -            g_object_set(mig->session,
> -                         "pubkey", pubkey,
> -                         "verify", SPICE_SESSION_VERIFY_PUBKEY,
> -                         NULL);
> -            g_byte_array_unref(pubkey);
> -        } else if (info->cert_subject_size == 0 ||
> -                   strlen((const char*)info->cert_subject_data) ==
> 0) {
> -            /* only verify hostname if no cert subject */
> -            g_object_set(mig->session, "verify",
> SPICE_SESSION_VERIFY_HOSTNAME, NULL);
> -        } else {
> -            gchar *subject = g_alloca(info->cert_subject_size + 1);
> -            strncpy(subject, (const char*)info->cert_subject_data,
> info->cert_subject_size);
> -            subject[info->cert_subject_size] = '\0';
> -
> -            // session data are already copied
> -            g_object_set(mig->session,
> -                         "cert-subject", subject,
> -                         "verify", SPICE_SESSION_VERIFY_SUBJECT,
> -                         NULL);
> -        }
> +        gchar *subject = g_alloca(info->cert_subject_size + 1);
> +        strncpy(subject, (const char*)info->cert_subject_data, info-
> >cert_subject_size);
> +        subject[info->cert_subject_size] = '\0';
> +
> +        // session data are already copied
> +        g_object_set(mig->session,
> +                     "cert-subject", subject,
> +                     "verify", SPICE_SESSION_VERIFY_SUBJECT,
> +                     NULL);
>      }
>  
>      if (g_getenv("SPICE_MIG_HOST"))



More information about the Spice-devel mailing list