snp(4): properly report detached/revoked ttys
PR: 257964 Reported by: Bertrand Petit <bsdpr@phoe.frmug.org> Reviewed by: imp, markj Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D36690
This commit is contained in:
parent
d1a351be19
commit
bb4be76cf3
@ -1,7 +1,7 @@
|
|||||||
.\"
|
.\"
|
||||||
.\" $FreeBSD$
|
.\" $FreeBSD$
|
||||||
.\"
|
.\"
|
||||||
.Dd November 5, 2008
|
.Dd September 24, 2022
|
||||||
.Dt SNP 4
|
.Dt SNP 4
|
||||||
.Os
|
.Os
|
||||||
.Sh NAME
|
.Sh NAME
|
||||||
@ -58,8 +58,6 @@ ioctl returns a positive value equal to the number of characters
|
|||||||
in a read buffer.
|
in a read buffer.
|
||||||
Special values defined are:
|
Special values defined are:
|
||||||
.Bl -tag -width ".Dv SNP_TTYCLOSE"
|
.Bl -tag -width ".Dv SNP_TTYCLOSE"
|
||||||
.It Dv SNP_OFLOW
|
|
||||||
device overflow occurred, device detached.
|
|
||||||
.It Dv SNP_TTYCLOSE
|
.It Dv SNP_TTYCLOSE
|
||||||
tty not attached.
|
tty not attached.
|
||||||
.It Dv SNP_DETACH
|
.It Dv SNP_DETACH
|
||||||
@ -92,8 +90,6 @@ were based on code written by
|
|||||||
.Sh BUGS
|
.Sh BUGS
|
||||||
This version of
|
This version of
|
||||||
.Nm
|
.Nm
|
||||||
does not return proper error codes when calling
|
does not allow
|
||||||
.Dv FIONREAD .
|
|
||||||
It also does not allow
|
|
||||||
.Dv SNPSTTY
|
.Dv SNPSTTY
|
||||||
to detach itself from the TTY.
|
to detach itself from the TTY.
|
||||||
|
@ -289,10 +289,13 @@ snp_ioctl(struct cdev *dev, u_long cmd, caddr_t data, int flags,
|
|||||||
tp = ss->snp_tty;
|
tp = ss->snp_tty;
|
||||||
if (tp != NULL) {
|
if (tp != NULL) {
|
||||||
tty_lock(tp);
|
tty_lock(tp);
|
||||||
*(int *)data = ttyoutq_bytesused(&ss->snp_outq);
|
if (tty_gone(tp))
|
||||||
|
*(int *)data = SNP_TTYCLOSE;
|
||||||
|
else
|
||||||
|
*(int *)data = ttyoutq_bytesused(&ss->snp_outq);
|
||||||
tty_unlock(tp);
|
tty_unlock(tp);
|
||||||
} else {
|
} else {
|
||||||
*(int *)data = 0;
|
*(int *)data = SNP_DETACH;
|
||||||
}
|
}
|
||||||
return (0);
|
return (0);
|
||||||
default:
|
default:
|
||||||
|
Loading…
Reference in New Issue
Block a user