summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xasterisk.c16
-rwxr-xr-xchannels/chan_iax.c2
-rwxr-xr-xchannels/chan_iax2.c2
-rwxr-xr-xchannels/chan_sip.c2
-rwxr-xr-xrtp.c2
5 files changed, 20 insertions, 4 deletions
diff --git a/asterisk.c b/asterisk.c
index 761ab09dd..9e551a55c 100755
--- a/asterisk.c
+++ b/asterisk.c
@@ -313,6 +313,7 @@ static int set_priority(int pri)
memset(&sched, 0, sizeof(sched));
/* We set ourselves to a high priority, that we might pre-empt everything
else. If your PBX has heavy activity on it, this is a good thing. */
+#ifdef __linux__
if (pri) {
sched.sched_priority = 10;
if (sched_setscheduler(0, SCHED_RR, &sched)) {
@@ -328,6 +329,21 @@ static int set_priority(int pri)
return -1;
}
}
+#else
+ if (pri) {
+ if (setpriority(PRIO_PROCESS, 0, -10) == -1) {
+ ast_log(LOG_WARNING, "Unable to set high priority\n");
+ return -1;
+ } else
+ if (option_verbose)
+ ast_verbose("Set to high priority\n");
+ } else {
+ if (setpriority(PRIO_PROCESS, 0, 0) == -1) {
+ ast_log(LOG_WARNING, "Unable to set normal priority\n");
+ return -1;
+ }
+ }
+#endif
return 0;
}
diff --git a/channels/chan_iax.c b/channels/chan_iax.c
index 426bc580b..f185ce719 100755
--- a/channels/chan_iax.c
+++ b/channels/chan_iax.c
@@ -5134,7 +5134,7 @@ int load_module(void)
if (option_verbose > 1)
ast_verbose(VERBOSE_PREFIX_2 "Using TOS bits %d\n", tos);
- if (setsockopt(netsocket, SOL_IP, IP_TOS, &tos, sizeof(tos)))
+ if (setsockopt(netsocket, IPPROTO_IP, IP_TOS, &tos, sizeof(tos)))
ast_log(LOG_WARNING, "Unable to set TOS to %d\n", tos);
if (!res) {
diff --git a/channels/chan_iax2.c b/channels/chan_iax2.c
index 6310f58c9..1aaf2880a 100755
--- a/channels/chan_iax2.c
+++ b/channels/chan_iax2.c
@@ -5479,7 +5479,7 @@ int load_module(void)
if (option_verbose > 1)
ast_verbose(VERBOSE_PREFIX_2 "Using TOS bits %d\n", tos);
- if (setsockopt(netsocket, SOL_IP, IP_TOS, &tos, sizeof(tos)))
+ if (setsockopt(netsocket, IPPROTO_IP, IP_TOS, &tos, sizeof(tos)))
ast_log(LOG_WARNING, "Unable to set TOS to %d\n", tos);
if (!res) {
diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index 954768b2d..9758bead2 100755
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -5258,7 +5258,7 @@ static int reload_config(void)
if (option_verbose > 1)
ast_verbose(VERBOSE_PREFIX_2 "Using TOS bits %d\n", tos);
- if (setsockopt(sipsock, SOL_IP, IP_TOS, &tos, sizeof(tos)))
+ if (setsockopt(sipsock, IPPROTO_IP, IP_TOS, &tos, sizeof(tos)))
ast_log(LOG_WARNING, "Unable to set TOS to %d\n", tos);
}
diff --git a/rtp.c b/rtp.c
index a1188ce1b..6f628fee8 100755
--- a/rtp.c
+++ b/rtp.c
@@ -575,7 +575,7 @@ struct ast_rtp *ast_rtp_new(struct sched_context *sched, struct io_context *io)
int ast_rtp_settos(struct ast_rtp *rtp, int tos)
{
int res;
- if ((res = setsockopt(rtp->s, SOL_IP, IP_TOS, &tos, sizeof(tos))))
+ if ((res = setsockopt(rtp->s, IPPROTO_IP, IP_TOS, &tos, sizeof(tos))))
ast_log(LOG_WARNING, "Unable to set TOS to %d\n", tos);
return res;
}