Version 0.2.0 from FTP
[asterisk/asterisk.git] / channels / chan_modem_bestdata.c
index 59fbca1..08a1c2e 100755 (executable)
@@ -17,7 +17,7 @@
 #include <string.h>
 #include <stdlib.h>
 #include <errno.h>
-#include <pthread.h>
+#include <asterisk/lock.h>
 #include <asterisk/vmodem.h>
 #include <asterisk/module.h>
 #include <asterisk/frame.h>
@@ -38,7 +38,7 @@ static char *breakcmd = "\020!";
 static char *desc = "BestData (Conexant V.90 Chipset) VoiceModem Driver";
 
 int usecnt;
-pthread_mutex_t usecnt_lock = PTHREAD_MUTEX_INITIALIZER;
+pthread_mutex_t usecnt_lock = AST_MUTEX_INITIALIZER;
 
 static char *bestdata_idents[] = {
        /* Identify BestData Modem */
@@ -189,7 +189,7 @@ static struct ast_frame *bestdata_handle_escape(struct ast_modem_pvt *p, char es
                        char res[1000];
 
                        if (ast_modem_read_response(p, 5)) break;
-                       strncpy(res, p->response, sizeof(res));
+                       strncpy(res, p->response, sizeof(res)-1);
                        ast_modem_trim(res);
                        if (!strncmp(res,"\020.",2)) break;
                        if (!strncmp(res,"NAME",4)) strcpy(name,res + 7);
@@ -208,7 +208,7 @@ static struct ast_frame *bestdata_handle_escape(struct ast_modem_pvt *p, char es
                return &p->fr;
        case '@': /* response from "OK" in command mode */
                if (p->owner)
-                       p->owner->state = AST_STATE_UP;
+                       ast_setstate(p->owner, AST_STATE_UP);
                if (bestdata_startrec(p)) return NULL;
                p->fr.frametype = AST_FRAME_CONTROL;
                p->fr.subclass = AST_CONTROL_RING;
@@ -386,7 +386,7 @@ short       *sp;
 unsigned long u;
 #define        DLE     16
 
-       if (p->owner && (p->owner->state == AST_STATE_UP) && 
+       if (p->owner && (p->owner->_state == AST_STATE_UP) && 
                (p->ministate != STATE_VOICEPLAY) && bestdata_startplay(p)) return -1;
        sp = (short *) f->data;
          /* stick DLE's in ahead of anything else */
@@ -419,17 +419,17 @@ static char *bestdata_identify(struct ast_modem_pvt *p)
        char rev[80];
        ast_modem_send(p, "AT+FMM", 0);
        ast_modem_read_response(p, 5);
-       strncpy(mdl, p->response, sizeof(mdl));
+       strncpy(mdl, p->response, sizeof(mdl)-1);
        ast_modem_trim(mdl);
        ast_modem_expect(p, "OK", 5);
        ast_modem_send(p, "AT+FMI", 0);
        ast_modem_read_response(p, 5);
-       strncpy(mfr, p->response, sizeof(mfr));
+       strncpy(mfr, p->response, sizeof(mfr)-1);
        ast_modem_trim(mfr);
        ast_modem_expect(p, "OK", 5);
        ast_modem_send(p, "AT+FMR", 0);
        ast_modem_read_response(p, 5);
-       strncpy(rev, p->response, sizeof(rev));
+       strncpy(rev, p->response, sizeof(rev)-1);
        ast_modem_trim(rev);
        ast_modem_expect(p, "OK", 5);
        snprintf(identity, sizeof(identity), "%s Model %s Revision %s", mfr, mdl, rev);