Modified: freeswitch/branches/gmaruzz/mod_gsmopen/gsmopen_protocol.c (15082 => 15083)
--- freeswitch/branches/gmaruzz/mod_gsmopen/gsmopen_protocol.c 2009-10-05 12:40:50 UTC (rev 15082)
+++ freeswitch/branches/gmaruzz/mod_gsmopen/gsmopen_protocol.c 2009-10-05 14:01:59 UTC (rev 15083)
@@ -33,13 +33,14 @@
close(fd);
}
/* open the serial port */
-#ifdef __CYGWIN__
+//#ifdef __CYGWIN__
fd = open(tech_pvt->controldevice_name, O_RDWR | O_NOCTTY | O_NONBLOCK);
sleep(1);
close(fd);
-#endif /* __CYGWIN__ */
+//#endif /* __CYGWIN__ */
fd = open(tech_pvt->controldevice_name, O_RDWR | O_NOCTTY | O_NONBLOCK);
if (fd == -1) {
+ perror("open error ");
DEBUGA_GSMOPEN("serial error: %s\n", GSMOPEN_P_LOG, strerror(errno));
tech_pvt->controldevfd = fd;
return -1;
@@ -93,7 +94,7 @@
ioctl(fd, TIOCMSET, &status);
#endif /* __CYGWIN__ */
tech_pvt->controldevfd = fd;
- DEBUGA_GSMOPEN("Syncing Serial\n", GSMOPEN_P_LOG);
+ DEBUGA_GSMOPEN("Syncing Serial, fd=%d, protocol=%d\n", GSMOPEN_P_LOG, fd, tech_pvt->controldevprotocol);
rt = gsmopen_serial_sync(tech_pvt);
if (rt == -1) {
ERRORA("Serial init error\n", GSMOPEN_P_LOG);
Modified: freeswitch/branches/gmaruzz/mod_gsmopen/mod_gsmopen.c (15082 => 15083)
--- freeswitch/branches/gmaruzz/mod_gsmopen/mod_gsmopen.c 2009-10-05 12:40:50 UTC (rev 15082)
+++ freeswitch/branches/gmaruzz/mod_gsmopen/mod_gsmopen.c 2009-10-05 14:01:59 UTC (rev 15083)
@@ -1589,7 +1589,7 @@
if (globals.GSMOPEN_INTERFACES[interface_id].controldevprotocol != PROTOCOL_NO_SERIAL) {
globals.GSMOPEN_INTERFACES[interface_id].controldevfd =
gsmopen_serial_init(&globals.GSMOPEN_INTERFACES[interface_id], globals.GSMOPEN_INTERFACES[interface_id].controldevice_speed);
- if (globals.GSMOPEN_INTERFACES[interface_id].controldevfd < 1) {
+ if (globals.GSMOPEN_INTERFACES[interface_id].controldevfd == -1) {
ERRORA("gsmopen_serial_init failed\n", GSMOPEN_P_LOG);
return SWITCH_STATUS_FALSE;
}
@@ -1776,6 +1776,7 @@
switch_status_t status;
unsigned int howmany = 8;
int interface_id;
+ int fd;
running = 0;
@@ -1805,6 +1806,14 @@
if (globals.GSMOPEN_INTERFACES[interface_id].gsmopen_api_thread) {
switch_thread_join(&status, globals.GSMOPEN_INTERFACES[interface_id].gsmopen_api_thread);
}
+ fd = tech_pvt->controldevfd;
+ WARNINGA("SHUTDOWN tech_pvt->controldevfd=%d\n", GSMOPEN_P_LOG, tech_pvt->controldevfd);
+ if (fd) {
+ close(fd);
+ //tech_pvt->controldevfd = -1;
+ WARNINGA("SHUTDOWN tech_pvt->controldevfd=%d\n", GSMOPEN_P_LOG, tech_pvt->controldevfd);
+ }
+
#ifndef WIN32
WARNINGA("SHUTDOWN interface_id=%d\n", GSMOPEN_P_LOG, interface_id);
shutdown(tech_pvt->audiogsmopenpipe[0], 2);
@@ -2397,6 +2406,7 @@
running = 0;
return NULL;
}
+ WARNINGA("EXIT\n", GSMOPEN_P_LOG);
//running = 0;
return NULL;