From c4225d255ec4ef13fac5460894a74ff610e608cd Mon Sep 17 00:00:00 2001
From: Mark Spencer <markster@digium.com>
Date: Wed, 23 Apr 2003 20:22:14 +0000
Subject: [PATCH] More OpenBSD changes

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@891 65c4cc65-6c06-0410-ace0-fbb531ad65f3
---
 asterisk.c           | 16 ++++++++++++++++
 channels/chan_iax.c  |  2 +-
 channels/chan_iax2.c |  2 +-
 channels/chan_sip.c  |  2 +-
 rtp.c                |  2 +-
 5 files changed, 20 insertions(+), 4 deletions(-)

diff --git a/asterisk.c b/asterisk.c
index 761ab09dd6..9e551a55c6 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 426bc580bf..f185ce719e 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 6310f58c9b..1aaf2880a5 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 954768b2d3..9758bead24 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 a1188ce1b0..6f628fee87 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;
 }
-- 
GitLab