More bugfixes
This commit is contained in:
parent
9cb193a306
commit
e06ab2dde6
@ -123,7 +123,6 @@ char *sendwr(str, bufferback, howmuch)
|
|||||||
write(modemfd, "\r\n", 3);
|
write(modemfd, "\r\n", 3);
|
||||||
fds[0].fd = modemfd;
|
fds[0].fd = modemfd;
|
||||||
fds[0].events = POLLRDNORM;
|
fds[0].events = POLLRDNORM;
|
||||||
fcntl(modemfd, F_SETFL, O_NONBLOCK);
|
|
||||||
switch(poll(fds, 1, 3000)) {
|
switch(poll(fds, 1, 3000)) {
|
||||||
case 0:
|
case 0:
|
||||||
pthread_cond_signal(&mpcond);
|
pthread_cond_signal(&mpcond);
|
||||||
@ -146,7 +145,24 @@ char *sendwr(str, bufferback, howmuch)
|
|||||||
pthread_mutex_lock(&modemmx);
|
pthread_mutex_lock(&modemmx);
|
||||||
write(modemfd, str, strlen(str) + 1);
|
write(modemfd, str, strlen(str) + 1);
|
||||||
write(modemfd, "\r\n", 3);
|
write(modemfd, "\r\n", 3);
|
||||||
fgets(bufferback, howmuch, modem);
|
fds[0].fd = modemfd;
|
||||||
|
fds[0].events = POLLRDNORM;
|
||||||
|
switch(poll(fds, 1, 3000)) {
|
||||||
|
case 0:
|
||||||
|
pthread_cond_signal(&mpcond);
|
||||||
|
pthread_mutex_unlock(&modemmx);
|
||||||
|
snprintf(bufferback, howmuch, "*MODEM TIMEOUT*");
|
||||||
|
return bufferback;
|
||||||
|
case -1:
|
||||||
|
lprintf(error, "poll in sendwr: %s\n", strerror(errno));
|
||||||
|
pthread_cond_signal(&mpcond);
|
||||||
|
pthread_mutex_unlock(&modemmx);
|
||||||
|
return bufferback;
|
||||||
|
default:
|
||||||
|
/* fgets(bufferback, howmuch, modem); */
|
||||||
|
read(modemfd, bufferback, howmuch);
|
||||||
|
break;
|
||||||
|
}
|
||||||
pthread_mutex_unlock(&modemmx);
|
pthread_mutex_unlock(&modemmx);
|
||||||
}
|
}
|
||||||
return bufferback;
|
return bufferback;
|
||||||
|
@ -27,7 +27,7 @@
|
|||||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||||
* SUCH DAMAGE.
|
* SUCH DAMAGE.
|
||||||
*/
|
*/
|
||||||
/* $Amigan: phoned/phoned/modems/rockwell.c,v 1.8 2005/06/26 21:44:40 dcp1990 Exp $ */
|
/* $Amigan: phoned/phoned/modems/rockwell.c,v 1.9 2005/06/28 02:00:08 dcp1990 Exp $ */
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
@ -147,6 +147,8 @@ void rw_voice_init(void)
|
|||||||
rw_sdev(dialup);
|
rw_sdev(dialup);
|
||||||
stmod("AT#CID=2");
|
stmod("AT#CID=2");
|
||||||
stmod("AT#CLS=8");
|
stmod("AT#CLS=8");
|
||||||
|
stmod("ATE0");
|
||||||
|
stmod("ATV0");
|
||||||
}
|
}
|
||||||
void rw_set_rings(rings)
|
void rw_set_rings(rings)
|
||||||
int rings;
|
int rings;
|
||||||
|
@ -28,7 +28,7 @@
|
|||||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||||
* SUCH DAMAGE.
|
* SUCH DAMAGE.
|
||||||
*/
|
*/
|
||||||
/* $Amigan: phoned/phoned/remote.c,v 1.17 2005/06/28 00:52:17 dcp1990 Exp $ */
|
/* $Amigan: phoned/phoned/remote.c,v 1.18 2005/06/28 02:00:06 dcp1990 Exp $ */
|
||||||
/* system includes */
|
/* system includes */
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
@ -42,6 +42,7 @@
|
|||||||
#include <sys/ioctl.h>
|
#include <sys/ioctl.h>
|
||||||
#include <ctype.h>
|
#include <ctype.h>
|
||||||
#include <sys/uio.h>
|
#include <sys/uio.h>
|
||||||
|
#include <fcntl.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
/* us */
|
/* us */
|
||||||
#include <phoned.h>
|
#include <phoned.h>
|
||||||
@ -366,6 +367,8 @@ char *parse_command(cmd, cont, s)
|
|||||||
free(rc);
|
free(rc);
|
||||||
*cont = 0;
|
*cont = 0;
|
||||||
RNF("500 OK: Parser tested.\n");
|
RNF("500 OK: Parser tested.\n");
|
||||||
|
} else if(CHK("bye")) {
|
||||||
|
return NULL;
|
||||||
} else if(CHK("tmop")) {
|
} else if(CHK("tmop")) {
|
||||||
if(argvect[1] != NULL) {
|
if(argvect[1] != NULL) {
|
||||||
cid_t *rc;
|
cid_t *rc;
|
||||||
@ -418,7 +421,7 @@ void begin_dialogue(fp, fd)
|
|||||||
} else if(rc == -1) {
|
} else if(rc == -1) {
|
||||||
lprintf(error, "Error with recv: %s\n", strerror(errno));
|
lprintf(error, "Error with recv: %s\n", strerror(errno));
|
||||||
break;
|
break;
|
||||||
}
|
} else if(rc < 3) continue;
|
||||||
if((c = strrchr(buffer, '\n')) != NULL)
|
if((c = strrchr(buffer, '\n')) != NULL)
|
||||||
*c = '\0';
|
*c = '\0';
|
||||||
rcode = parse_command(buffer, &keep_going, &si);
|
rcode = parse_command(buffer, &keep_going, &si);
|
||||||
@ -428,7 +431,7 @@ void begin_dialogue(fp, fd)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if(si.freeit) free(rcode);
|
if(si.freeit) free(rcode);
|
||||||
}
|
} else break;
|
||||||
}
|
}
|
||||||
if(si.l != NULL) {
|
if(si.l != NULL) {
|
||||||
pthread_mutex_lock(&usermx);
|
pthread_mutex_lock(&usermx);
|
||||||
|
@ -42,6 +42,7 @@
|
|||||||
#include <arpa/inet.h>
|
#include <arpa/inet.h>
|
||||||
#include <netinet/in.h>
|
#include <netinet/in.h>
|
||||||
#include <sys/un.h>
|
#include <sys/un.h>
|
||||||
|
#include <fcntl.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <pthread.h>
|
#include <pthread.h>
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user