On Mon, 2016-02-15 at 16:01 +0000, Frediano Ziglio wrote: > From: Jonathon Jongsma <jjongsma@xxxxxxxxxx> > > Instead of poking into the internals of the RedChannel, provide an > accessor. > --- > server/inputs-channel.c | 4 ++-- > server/main-channel.c | 2 +- > server/red-channel.c | 5 +++++ > server/red-channel.h | 5 +++-- > 4 files changed, 11 insertions(+), 5 deletions(-) > > diff --git a/server/inputs-channel.c b/server/inputs-channel.c > index bb1c5ea..677d071 100644 > --- a/server/inputs-channel.c > +++ b/server/inputs-channel.c > @@ -305,7 +305,7 @@ static int > inputs_channel_handle_parsed(RedChannelClient *rcc, uint32_t size, ui > InputsChannel *inputs_channel = (InputsChannel *)rcc->channel; > InputsChannelClient *icc = (InputsChannelClient *)rcc; > uint32_t i; > - RedsState *reds = inputs_channel->base.reds; > + RedsState *reds = > red_channel_get_server((RedChannel*)inputs_channel); > > switch (type) { > case SPICE_MSGC_INPUTS_KEY_DOWN: { > @@ -676,7 +676,7 @@ int inputs_channel_set_keyboard(InputsChannel > *inputs, SpiceKbdInstance *keyboar > return -1; > } > inputs->keyboard = keyboard; > - inputs->keyboard->st = spice_kbd_state_new(inputs->base.reds); > + inputs->keyboard->st = > spice_kbd_state_new(red_channel_get_server((RedChannel*)inputs)); > return 0; > } > > diff --git a/server/main-channel.c b/server/main-channel.c > index f2b9fd7..6ea47cf 100644 > --- a/server/main-channel.c > +++ b/server/main-channel.c > @@ -1088,7 +1088,7 @@ static MainChannelClient > *main_channel_client_create(MainChannel *main_chan, Red > mcc->connection_id = connection_id; > mcc->bitrate_per_sec = ~0; > #ifdef RED_STATISTICS > - core = reds_get_core_interface(main_chan->base.reds); > + core = > reds_get_core_interface(red_channel_get_server((RedChannel*)main_chan > )); > if (!(mcc->ping_timer = core->timer_add(core, ping_timer_cb, > NULL))) { > spice_error("ping timer create failed"); > } > diff --git a/server/red-channel.c b/server/red-channel.c > index d614955..757bb6e 100644 > --- a/server/red-channel.c > +++ b/server/red-channel.c > @@ -2453,3 +2453,8 @@ void > red_channel_client_disconnect_if_pending_send(RedChannelClient *rcc) > spice_assert(red_channel_client_no_item_being_sent(rcc)); > } > } > + > +RedsState* red_channel_get_server(RedChannel *channel) > +{ > + return channel->reds; > +} > diff --git a/server/red-channel.h b/server/red-channel.h > index 26bd3f9..2d61bc5 100644 > --- a/server/red-channel.h > +++ b/server/red-channel.h > @@ -47,6 +47,8 @@ > The intention is to move towards one channel interface gradually. > At the final stage, this interface shouldn't be exposed. Only > RedChannel will use it. */ > > +struct RedsState; > + > typedef struct SpiceDataHeaderOpaque SpiceDataHeaderOpaque; > > typedef uint16_t (*get_msg_type_proc)(SpiceDataHeaderOpaque > *header); > @@ -565,8 +567,7 @@ uint32_t red_channel_sum_pipes_size(RedChannel > *channel); > typedef void (*channel_client_callback)(RedChannelClient *rcc); > typedef void (*channel_client_callback_data)(RedChannelClient *rcc, > void *data); > void red_channel_apply_clients(RedChannel *channel, > channel_client_callback v); > - > -struct RedsState; > +struct RedsState* red_channel_get_server(RedChannel *channel); > > struct RedClient { > struct RedsState *reds; Acked-by: Fabiano Fidêncio <fidencio@xxxxxxxxxx> _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/spice-devel