Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 9cff495183 |
+1
-1
@@ -1,4 +1,4 @@
|
||||
m4_define([pkg_version], [0.15])
|
||||
m4_define([pkg_version], [0.14])
|
||||
#m4_define([pkg_revision], [005])
|
||||
m4_define([pkg_version], m4_ifdef([pkg_revision], [pkg_version.pkg_revision], [pkg_version]))
|
||||
|
||||
|
||||
+18
-12
@@ -855,13 +855,21 @@ ttynvt_ioctl(fuse_req_t req, int cmd, void *arg,
|
||||
tty->master_suspended = (tty->smcr & TIOCM_CTS) ? 0 : 1;
|
||||
telnet_rfc2217_ctl(tty->tn, TNS_CTL_CTSRTS);
|
||||
}
|
||||
else if (tio->c_iflag & (IXON | IXOFF))
|
||||
else if ((tio->c_iflag & IXON) && (tio->c_iflag & IXOFF))
|
||||
{
|
||||
tty->master_suspended = 0;
|
||||
if (tio->c_iflag & IXON)
|
||||
telnet_rfc2217_ctl(tty->tn, TNS_CTL_XONOFF_OUT);
|
||||
if (tio->c_iflag & IXOFF)
|
||||
telnet_rfc2217_ctl(tty->tn, TNS_CTL_XONOFF_IN);
|
||||
telnet_rfc2217_ctl(tty->tn, TNS_CTL_XONOFF_OUT);
|
||||
telnet_rfc2217_ctl(tty->tn, TNS_CTL_XONOFF_IN);
|
||||
}
|
||||
else if (tio->c_iflag & IXON)
|
||||
{
|
||||
tty->master_suspended = 0;
|
||||
telnet_rfc2217_ctl(tty->tn, TNS_CTL_XONOFF_OUT);
|
||||
}
|
||||
else if (tio->c_iflag & IXOFF)
|
||||
{
|
||||
tty->master_suspended = 0;
|
||||
telnet_rfc2217_ctl(tty->tn, TNS_CTL_XONOFF_IN);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -926,7 +934,6 @@ ttynvt_ioctl(fuse_req_t req, int cmd, void *arg,
|
||||
case TCIFLUSH:
|
||||
byte = 1;
|
||||
tty->slave_suspended = 0; /* Re-enable polling of Slave */
|
||||
tty->pollin = 0;
|
||||
break;
|
||||
case TCOFLUSH:
|
||||
byte = 2;
|
||||
@@ -936,7 +943,6 @@ ttynvt_ioctl(fuse_req_t req, int cmd, void *arg,
|
||||
byte = 3;
|
||||
tty->slave_suspended = 0; /* Re-enable polling of Slave */
|
||||
tty->pollout = 1;
|
||||
tty->pollin = 0;
|
||||
break;
|
||||
}
|
||||
telnet_rfc2217_cfg(tty->tn, TNS_SET_PURGE, &byte, 1);
|
||||
@@ -952,7 +958,7 @@ ttynvt_ioctl(fuse_req_t req, int cmd, void *arg,
|
||||
break;
|
||||
case TIOCMBIS:
|
||||
CHECK_BUF_IN(sizeof(int));
|
||||
tiocm = *(const unsigned int *)in_buf;
|
||||
tiocm = *(unsigned int *)in_buf;
|
||||
fuse_reply_ioctl(req, 0, 0, 0);
|
||||
DBG("%s: cmd=%s tiocm=%#x\n", __func__, _ioctl_name(cmd), tiocm);
|
||||
if (tiocm & TIOCM_RTS)
|
||||
@@ -968,7 +974,7 @@ ttynvt_ioctl(fuse_req_t req, int cmd, void *arg,
|
||||
goto show_mctl;
|
||||
case TIOCMBIC:
|
||||
CHECK_BUF_IN(sizeof(int));
|
||||
tiocm = *(const unsigned int *)in_buf;
|
||||
tiocm = *(unsigned int *)in_buf;
|
||||
fuse_reply_ioctl(req, 0, 0, 0);
|
||||
DBG("%s: cmd=%s tiocm=%#x\n", __func__, _ioctl_name(cmd), tiocm);
|
||||
if (tiocm & TIOCM_RTS)
|
||||
@@ -984,7 +990,7 @@ ttynvt_ioctl(fuse_req_t req, int cmd, void *arg,
|
||||
goto show_mctl;
|
||||
case TIOCMSET:
|
||||
CHECK_BUF_IN(sizeof(int));
|
||||
tiocm = *(const unsigned int *)in_buf;
|
||||
tiocm = *(unsigned int *)in_buf;
|
||||
fuse_reply_ioctl(req, 0, 0, 0);
|
||||
DBG("%s: cmd=%s tiocm=%#x\n", __func__, _ioctl_name(cmd), tiocm);
|
||||
tty->cmcr &= ~(TIOCM_RTS | TIOCM_DTR);
|
||||
@@ -1014,7 +1020,7 @@ ttynvt_ioctl(fuse_req_t req, int cmd, void *arg,
|
||||
break;
|
||||
case TIOCSWINSZ:
|
||||
CHECK_BUF_IN(sizeof(struct winsize));
|
||||
ws = *(const struct winsize *)in_buf;
|
||||
ws = *(struct winsize *)in_buf;
|
||||
res = ioctl(tty->fds[FD_SLAVE].fd, TIOCSWINSZ, &ws);
|
||||
if (res < 0)
|
||||
{
|
||||
@@ -1038,7 +1044,7 @@ ttynvt_ioctl(fuse_req_t req, int cmd, void *arg,
|
||||
break;
|
||||
case TIOCSETD:
|
||||
CHECK_BUF_IN(sizeof(int));
|
||||
val = *(const int *)in_buf;
|
||||
val = *(int *)in_buf;
|
||||
res = ioctl(tty->fds[FD_SLAVE].fd, TIOCSETD, &val);
|
||||
if (res < 0)
|
||||
fuse_reply_err(req, errno);
|
||||
|
||||
Reference in New Issue
Block a user