On Mon, Feb 13, 2017 at 11:03:19AM +0000, Frediano Ziglio wrote: > Most channel don't need to do specific settings for the > client socket so provide a default implementation to > make easier to setup the client channnel. > > Signed-off-by: Frediano Ziglio <fziglio@xxxxxxxxxx> > --- > server/inputs-channel.c | 6 ------ > server/main-channel.c | 6 ------ > server/red-channel-client.c | 5 +++++ > server/red-channel-client.h | 2 ++ > server/red-channel.c | 2 ++ > server/smartcard.c | 6 ------ > server/spicevmc.c | 6 ------ > 7 files changed, 9 insertions(+), 24 deletions(-) > > diff --git a/server/inputs-channel.c b/server/inputs-channel.c > index 897e8e7..6a6dce8 100644 > --- a/server/inputs-channel.c > +++ b/server/inputs-channel.c > @@ -488,11 +488,6 @@ static void inputs_pipe_add_init(RedChannelClient *rcc) > red_channel_client_pipe_add_push(rcc, &item->base); > } > > -static int inputs_channel_config_socket(RedChannelClient *rcc) > -{ > - return TRUE; > -} > - > static void inputs_connect(RedChannel *channel, RedClient *client, > RedsStream *stream, int migration, > int num_common_caps, uint32_t *common_caps, > @@ -638,7 +633,6 @@ inputs_channel_class_init(InputsChannelClass *klass) > channel_class->handle_parsed = inputs_channel_handle_parsed; > > /* channel callbacks */ > - channel_class->config_socket = inputs_channel_config_socket; > channel_class->on_disconnect = inputs_channel_on_disconnect; > channel_class->send_item = inputs_channel_send_item; > channel_class->alloc_recv_buf = inputs_channel_alloc_msg_rcv_buf; > diff --git a/server/main-channel.c b/server/main-channel.c > index 1124506..4f39b91 100644 > --- a/server/main-channel.c > +++ b/server/main-channel.c > @@ -277,11 +277,6 @@ static void main_channel_release_msg_rcv_buf(RedChannelClient *rcc, > } > } > > -static int main_channel_config_socket(RedChannelClient *rcc) > -{ > - return TRUE; > -} > - > static int main_channel_handle_migrate_flush_mark(RedChannelClient *rcc) > { > RedChannel *channel = red_channel_client_get_channel(rcc); > @@ -355,7 +350,6 @@ main_channel_class_init(MainChannelClass *klass) > channel_class->handle_parsed = main_channel_handle_parsed; > > /* channel callbacks */ > - channel_class->config_socket = main_channel_config_socket; > channel_class->on_disconnect = main_channel_client_on_disconnect; > channel_class->send_item = main_channel_client_send_item; > channel_class->alloc_recv_buf = main_channel_alloc_msg_rcv_buf; > diff --git a/server/red-channel-client.c b/server/red-channel-client.c > index 2450923..f55ba85 100644 > --- a/server/red-channel-client.c > +++ b/server/red-channel-client.c > @@ -1820,6 +1820,11 @@ gboolean red_channel_client_set_migration_seamless(RedChannelClient *rcc) > return ret; > } > > +int red_channel_client_config_socket(RedChannelClient *rcc) > +{ > + return TRUE; > +} > + > void red_channel_client_set_destroying(RedChannelClient *rcc) > { > rcc->priv->destroying = TRUE; > diff --git a/server/red-channel-client.h b/server/red-channel-client.h > index fada609..a5dc709 100644 > --- a/server/red-channel-client.h > +++ b/server/red-channel-client.h > @@ -190,6 +190,8 @@ gboolean red_channel_client_set_migration_seamless(RedChannelClient *rcc); > void red_channel_client_set_destroying(RedChannelClient *rcc); > gboolean red_channel_client_is_destroying(RedChannelClient *rcc); > > +int red_channel_client_config_socket(RedChannelClient *rcc); > + > struct RedChannelClient > { > GObject parent; > diff --git a/server/red-channel.c b/server/red-channel.c > index f2a35f3..fb34406 100644 > --- a/server/red-channel.c > +++ b/server/red-channel.c > @@ -268,6 +268,8 @@ red_channel_class_init(RedChannelClass *klass) > object_class->finalize = red_channel_finalize; > object_class->constructed = red_channel_constructed; > > + klass->config_socket = red_channel_client_config_socket; > + I would not provide any default implementation, and just change red_channel_config_socket to @@ -739,6 +739,10 @@ int red_channel_config_socket(RedChannel *self, RedChannelClient *rcc) { RedChannelClass *klass = RED_CHANNEL_GET_CLASS(self); + if (!klass->config_socket) { + return TRUE; + } + return klass->config_socket(rcc); } If you prefer to provide an empty stub as the default impl, I'd name it red_channel_client_default_config_socket() Reviewed-by: Christophe Fergeau <cfergeau@xxxxxxxxxx> Christophe
Attachment:
signature.asc
Description: PGP signature
_______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/spice-devel