aboutsummaryrefslogtreecommitdiffstats
path: root/package/network/utils/comgt/patches/004-check_tty.patch
diff options
context:
space:
mode:
Diffstat (limited to 'package/network/utils/comgt/patches/004-check_tty.patch')
-rw-r--r--package/network/utils/comgt/patches/004-check_tty.patch24
1 files changed, 12 insertions, 12 deletions
diff --git a/package/network/utils/comgt/patches/004-check_tty.patch b/package/network/utils/comgt/patches/004-check_tty.patch
index b81b0514c8..fb1d9af4bb 100644
--- a/package/network/utils/comgt/patches/004-check_tty.patch
+++ b/package/network/utils/comgt/patches/004-check_tty.patch
@@ -12,8 +12,8 @@
void setcom(void) {
stbuf.c_cflag &= ~(CBAUD | CSIZE | CSTOPB | CLOCAL | PARENB);
stbuf.c_cflag |= (speed | bits | CREAD | clocal | parity | stopbits );
-- if (ioctl(comfd, TCSETA, &stbuf) < 0) {
-+ if (tty && ioctl(comfd, TCSETA, &stbuf) < 0) {
+- if (ioctl(comfd, TCSETS, &stbuf) < 0) {
++ if (tty && ioctl(comfd, TCSETS, &stbuf) < 0) {
serror("Can't ioctl set device",1);
}
}
@@ -21,8 +21,8 @@
if(strcmp(token,"hardcom")==0) {
if(comfd== -1) serror("Com device not open",1);
vmsg("Closing device");
-- if (ioctl(comfd, TCSETA, &svbuf) < 0) {
-+ if (tty && ioctl(comfd, TCSETA, &svbuf) < 0) {
+- if (ioctl(comfd, TCSETS, &svbuf) < 0) {
++ if (tty && ioctl(comfd, TCSETS, &svbuf) < 0) {
sprintf(msg,"Can't ioctl set device %s.\n",device);
serror(msg,1);
}
@@ -30,19 +30,19 @@
ext(1);
}
}
-- if (ioctl (comfd, TCGETA, &svbuf) < 0) {
+- if (ioctl (comfd, TCGETS, &svbuf) < 0) {
+ if (isatty (comfd))
+ tty=1;
+ else
+ tty=0;
-+ if (tty && ioctl (comfd, TCGETA, &svbuf) < 0) {
++ if (tty && ioctl (comfd, TCGETS, &svbuf) < 0) {
sprintf(msg,"Can't control %s, please try again.\n",device);
serror(msg,1);
}
setenv("COMGTDEVICE",device,1);
-- ioctl(comfd, TCGETA, &stbuf);
+- ioctl(comfd, TCGETS, &stbuf);
+ if (tty)
-+ ioctl(comfd, TCGETA, &stbuf);
++ ioctl(comfd, TCGETS, &stbuf);
speed=stbuf.c_cflag & CBAUD;
if (high_speed == 0) strcpy(cspeed,"115200");
else strcpy(cspeed,"57600");
@@ -51,18 +51,18 @@
}
else comfd=0;
-
-- if (ioctl (comfd, TCGETA, &svbuf) < 0) {
+- if (ioctl (comfd, TCGETS, &svbuf) < 0) {
+ if (isatty (comfd))
+ tty=1;
+ else
+ tty=0;
-+ if (tty && ioctl (comfd, TCGETA, &svbuf) < 0) {
++ if (tty && ioctl (comfd, TCGETS, &svbuf) < 0) {
sprintf(msg,"Can't ioctl get device %s.\n",device);
serror(msg,1);
}
-- ioctl(comfd, TCGETA, &stbuf);
+- ioctl(comfd, TCGETS, &stbuf);
+ if (tty)
-+ ioctl(comfd, TCGETA, &stbuf);
++ ioctl(comfd, TCGETS, &stbuf);
speed=stbuf.c_cflag & CBAUD;
switch(speed) {
case B0: strcpy(cspeed,"0");break;