aboutsummaryrefslogtreecommitdiffstats
path: root/channels/chan_modem.c
diff options
context:
space:
mode:
authormarkster <markster@f38db490-d61c-443f-a65b-d21fe96a405b>2003-09-08 16:48:07 +0000
committermarkster <markster@f38db490-d61c-443f-a65b-d21fe96a405b>2003-09-08 16:48:07 +0000
commit2be6d9d7c174007ac0018fed802364d2115f0283 (patch)
tree32674bc8c5dc21153e7c8a4548f6641aef0566bf /channels/chan_modem.c
parentee8cba2208114438d40442616149adf12cc422c2 (diff)
BSD portability enhancements (bug #234)
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@1486 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'channels/chan_modem.c')
-rwxr-xr-xchannels/chan_modem.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/channels/chan_modem.c b/channels/chan_modem.c
index de8237ff8..1da77d321 100755
--- a/channels/chan_modem.c
+++ b/channels/chan_modem.c
@@ -28,6 +28,7 @@
#include <errno.h>
#include <unistd.h>
#include <stdlib.h>
+#include <netinet/in.h>
#include <arpa/inet.h>
#include <fcntl.h>
#include <sys/ioctl.h>
@@ -82,7 +83,7 @@ static ast_mutex_t monlock = AST_MUTEX_INITIALIZER;
/* This is the thread for the monitor which checks for input on the channels
which are not currently in use. */
-static pthread_t monitor_thread = -1;
+static pthread_t monitor_thread = (pthread_t) -1;
static int restart_monitor(void);
@@ -644,7 +645,7 @@ static void *do_monitor(void *data)
static int restart_monitor()
{
/* If we're supposed to be stopped -- stay stopped */
- if (monitor_thread == -2)
+ if (monitor_thread == (pthread_t) -2)
return 0;
if (ast_mutex_lock(&monlock)) {
ast_log(LOG_WARNING, "Unable to lock monitor\n");
@@ -655,7 +656,7 @@ static int restart_monitor()
ast_log(LOG_WARNING, "Cannot kill myself\n");
return -1;
}
- if (monitor_thread != -1) {
+ if (monitor_thread != (pthread_t) -1) {
pthread_cancel(monitor_thread);
/* Nudge it a little, as it's probably stuck in select */
pthread_kill(monitor_thread, SIGURG);
@@ -949,11 +950,11 @@ int unload_module()
return -1;
}
if (!ast_mutex_lock(&monlock)) {
- if (monitor_thread > -1) {
+ if (monitor_thread != (pthread_t) -1 && monitor_thread != (pthread_t) -2) {
pthread_cancel(monitor_thread);
pthread_join(monitor_thread, NULL);
}
- monitor_thread = -2;
+ monitor_thread = (pthread_t) -2;
ast_mutex_unlock(&monlock);
} else {
ast_log(LOG_WARNING, "Unable to lock the monitor\n");