[Spice-devel] [PATCH 5/7] server: don't complain if setsockopt(SO_PRIORITY) call fails
Dan McGee
dpmcgee at gmail.com
Thu Jan 19 12:10:02 PST 2012
From: Nahum Shalman <nshalman-github at elys.com>
dc7855967f4e did this for the TCP_NODELAY and IP_TOS calls; we should do
it for priority as well if necessary.
We also #ifdef the setting of the low-level socket priority based on
whether we have a definition of SO_PRIORITY available. This option is
not available on Illumos/Solaris platforms; however, since we set IP_TOS
anyway it is not a big deal to omit it here.
---
server/snd_worker.c | 8 +++++++-
1 files changed, 7 insertions(+), 1 deletions(-)
diff --git a/server/snd_worker.c b/server/snd_worker.c
index cb64c99..e78d1d3 100644
--- a/server/snd_worker.c
+++ b/server/snd_worker.c
@@ -902,7 +902,9 @@ static SndChannel *__new_channel(SndWorker *worker, int size, uint32_t channel_i
SndChannel *channel;
int delay_val;
int flags;
+#ifdef SO_PRIORITY
int priority;
+#endif
int tos;
MainChannelClient *mcc = red_client_get_main(client);
@@ -911,11 +913,15 @@ static SndChannel *__new_channel(SndWorker *worker, int size, uint32_t channel_i
goto error1;
}
+#ifdef SO_PRIORITY
priority = 6;
if (setsockopt(stream->socket, SOL_SOCKET, SO_PRIORITY, (void*)&priority,
sizeof(priority)) == -1) {
- red_printf("setsockopt failed, %s", strerror(errno));
+ if (errno != ENOTSUP) {
+ red_printf("setsockopt failed, %s", strerror(errno));
+ }
}
+#endif
tos = IPTOS_LOWDELAY;
if (setsockopt(stream->socket, IPPROTO_IP, IP_TOS, (void*)&tos, sizeof(tos)) == -1) {
--
1.7.8.3
More information about the Spice-devel
mailing list