server: don't complain if setsockopt(SO_PRIORITY) call fails

dc7855967f 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.
This commit is contained in:
Nahum Shalman 2012-01-19 14:10:02 -06:00 committed by Alon Levy
parent 89cc196a1b
commit 781706ea0d

View File

@ -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) {