Date: Tue, 26 Sep 2006 20:09:19 +0200 From: "Magnus Ringman" <bmr@google.com> To: "Brandon S. Allbery KF8NH" <allbery@ece.cmu.edu> Cc: current@freebsd.org Subject: Re: What do you think ?: How should pseundo terminals behave ... Message-ID: <4f674ca50609261109s78a26d3dh1dd0a6dc8c112ca2@mail.google.com> In-Reply-To: <8EECEF0C-8C94-4A7C-862A-633F67D3D229@ece.cmu.edu> References: <20060926111452.J91466@godot.imp.ch> <0C4B0125-11AA-4BDB-A4E3-163A6194AB68@alumni.cwru.edu> <98FD6058-7220-48DB-AC24-F989FCB2AE11@ece.cmu.edu> <4f674ca50609261029s76432971yfc15171a3e89cb72@mail.google.com> <8EECEF0C-8C94-4A7C-862A-633F67D3D229@ece.cmu.edu>
next in thread | previous in thread | raw e-mail | index | archive | help
On 9/26/06, Brandon S. Allbery KF8NH <allbery@ece.cmu.edu> wrote: > > On Sep 26, 2006, at 13:29 , Magnus Ringman wrote: > > > On 9/26/06, Brandon S. Allbery KF8NH <allbery@ece.cmu.edu> wrote: > >> > >> 3a) Hangup all processes attached to the client and switch them to > >> some kind of "dead" inode (which could be a fixed entity since all > >> operations on it except close() fail). (Don't real ttys do this?) > > > > -1. > > Yes and no. ttys do that on an actual hangup (when a hardware hangup > > happens), however PTYs are intended to allow emulating the full > > terminal line semantics, including hangup. Imo the case of "pty > > master side disappearing" is equivalent to "backing device (hardware) > > no longer exists", not "remote end hung up". > > I think that in many circumstances (and, as you note, implemented in > other OSes), the correct behavior *is* to treat hangup as "backing > device no longer exists" --- an older session should not leak into a > newer one, it is a potential security hole and certainly a potential > source of confusion. And if hardware ttys do it, I should think > virtual ones should also do so for consistency. Methinks Sir has it the wrong way around! Hangup on a hardware device -doesn't- void a program's access to the device. It just (optionally) sends the process a SIGHUP. That is why somebody (iirc, for SunOS < 5) invented vhangup(2) as a means for a new session owner to insure it was the only process using the terminal. With ptys, we have a different problem, namely non-persistent "hardware" (xterms, remote connections, "screen" sessions etc.) that when they are instantiated are absolutely interested in (1) insuring that the slave-side program is just the one intended, and (2) in some cases, the ability to send terminal-flavored signals to the process without voiding its file descriptor. B
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4f674ca50609261109s78a26d3dh1dd0a6dc8c112ca2>