[Spice-devel] [spice-server 1/5] utils: Introduce helpers to map channel types to names
Frediano Ziglio
fziglio at redhat.com
Wed Oct 18 08:08:50 UTC 2017
>
> On Tue, Oct 17, 2017 at 05:15:22PM -0400, Frediano Ziglio wrote:
> > > +static const char *const channel_names[] = {
> > > + [ SPICE_CHANNEL_MAIN ] = "main",
> > > + [ SPICE_CHANNEL_DISPLAY ] = "display",
> > > + [ SPICE_CHANNEL_INPUTS ] = "inputs",
> > > + [ SPICE_CHANNEL_CURSOR ] = "cursor",
> > > + [ SPICE_CHANNEL_PLAYBACK ] = "playback",
> > > + [ SPICE_CHANNEL_RECORD ] = "record",
> > > +#ifdef USE_SMARTCARD
> > > + [ SPICE_CHANNEL_SMARTCARD] = "smartcard",
> > > +#endif
> >
> > Not a regression. Is it worth having the #ifdef ?
> > SPICE_CHANNEL_SMARTCARD is always defined.
>
> Hmm, red_channel_name_to_type() uses that to return -1 when we were
> built without smartcard support. I think it's better if we keep that
> behaviour.
>
So you should document that this function is designed to be
used just by spice_server_set_channel_security.
>
> >
> > > + [ SPICE_CHANNEL_USBREDIR ] = "usbredir",
> > > + [ SPICE_CHANNEL_WEBDAV ] = "webdav",
> > > +};
> > > +
> > > +const char *red_channel_type_to_str(int type)
> > > +{
> > > + g_return_val_if_fail(type >= 0, NULL);
> > > + g_return_val_if_fail(type < G_N_ELEMENTS(channel_names), NULL);
> >
> > Do we want to log these? As far as I know these macro does logging.
> > Currently looks like a regression.
>
> In my opinion, red_channel_type_to_str() should not be called with an
> invalid type, the caller should make sure this does not happen. At the
> moment, the only caller is red_channel_get_name() which is added in this
> commit as well, so this can't be a regression.
>
> Christophe
>
If this is the design of the function this should be documented (this
function is designed to be called only by red_channel_get_name).
Frediano
More information about the Spice-devel
mailing list