[Spice-devel] [PATCH 1/2] server: don't fail on ENOPROTOOPT from setsockopt
Daniel P. Berrange
berrange at redhat.com
Fri Mar 9 09:36:25 PST 2012
On Fri, Mar 09, 2012 at 12:26:50PM -0500, Nahum Shalman wrote:
> If we allow listening on arbitrary sockets like unix sockets,
> we can get ENOPROTOOPT errors from setsockopt calls that set TCP
> specific options. This should be allowed to happen.
> ---
> server/inputs_channel.c | 2 +-
> server/spicevmc.c | 2 +-
> 2 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/server/inputs_channel.c b/server/inputs_channel.c
> index a3f26c0..fb25fe0 100644
> --- a/server/inputs_channel.c
> +++ b/server/inputs_channel.c
> @@ -470,7 +470,7 @@ static int inputs_channel_config_socket(RedChannelClient *rcc)
>
> if (setsockopt(stream->socket, IPPROTO_TCP, TCP_NODELAY,
> &delay_val, sizeof(delay_val)) == -1) {
> - if (errno != ENOTSUP) {
> + if (errno != ENOTSUP && errno != ENOPROTOOPT) {
> red_printf("setsockopt failed, %s", strerror(errno));
> return FALSE;
> }
> diff --git a/server/spicevmc.c b/server/spicevmc.c
> index 30aaf2f..9449c1e 100644
> --- a/server/spicevmc.c
> +++ b/server/spicevmc.c
> @@ -92,7 +92,7 @@ static int spicevmc_red_channel_client_config_socket(RedChannelClient *rcc)
> if (rcc->channel->type == SPICE_CHANNEL_USBREDIR) {
> if (setsockopt(stream->socket, IPPROTO_TCP, TCP_NODELAY,
> &delay_val, sizeof(delay_val)) != 0) {
> - if (errno != ENOTSUP) {
> + if (errno != ENOTSUP && errno != ENOPROTOOPT) {
> red_printf("setsockopt failed, %s", strerror(errno));
> return FALSE;
> }
ACK, this looks like a reasonable errno to whitelist.
Regards,
Daniel
--
|: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org -o- http://virt-manager.org :|
|: http://autobuild.org -o- http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|
More information about the Spice-devel
mailing list