Subject: Re: pcvt and TIOCCONS
To: Chris G Demetriou <Chris_G_Demetriou@UX2.SP.CS.CMU.EDU>
From: David Brownlee <david@mono.org>
List: current-users
Date: 04/22/1996 11:35:27
On Sun, 21 Apr 1996, Chris G Demetriou wrote:

> If you combine /etc/ttys and the 'fbtab-ish' file, then you make
> information in the latter harder to find; it's drowned out by all of
> the entries in /etc/ttys which _must_ be there for all ttys for which
> logins should be allowed.
> 

<tangental_discussion>

	It seems stupid to have /etc/ttys list all the ptys with just 
	default behaviour. I know damn well how many ptys are available
	as I configured the kernel...  This is a real pain when you add
	more ptys into the kernel but forget /etc/ttys and then wonder
	why the 32nd pty onwards doesnt get listed in utmp or wtmp.

	To remove the need for default entries for ptys in /etc/ttys,
	we would need ttyslot() and gettyent() modified and a new sysctl
	to get the number of ptys (useful thing to have anyway)

	Actually a single 'default' line for all unlisted ptys would be
	a nice win...

	We should probably define somehere the correct way to cycle through
	the available ptys (and have a library call that telnetd & friends
	can use rather than them all having their own
		"for (cp = "pqrstuvwxyzPQRST"; *cp; cp++) {
		 [...]
                 *p2 = "0123456789abcdef"[i];"
	type code - but thats another issue).

	Assuming that /etc/ttys only has hardwired terminals by default:

	The obvious things that are going to hit /etc/ttys

	    ttyflags - no problem.
	    
	    ttyslot - this is the problem one, I assume login will use
	    ttyslot to work out what entry in utmp to use. Need to change
	    ttyslot to start at 0 & increment for any hardwired terminal
	    it finds (must let people put ptys in there if they insist).
	    If the terminal being asked for is hardwired then it will be
	    found in that search, so just return the value. If its a pty
	    then you now know the slot for last hardwired terminal.
	    Given the ptys name you can determine what offset to add to
	    that slot.
	
	    Could map the slots with all possible ptys first, then add
	    hardwired slots on the end - easier conceptually, but less
	    optimal for programs reading utmp when users on hardwired ttys.
	
	    anything else that uses getty{nam,ent} - time to check the
	    source tree I think, init springs to mind. We really need
	    to keep the current functionality of getttyent() cycling
	    through all possible terminals.

	    Make gettyent() and gettynam() use sysctl to work out if a
	    terminal is valid - they will just 'fake' a default entry
	    if the pty is valid & not listed in /etc/ttys.

</tangental_discussion>

                   David/abs             (david@mono.org)

  System Manager, Southern Studios, Box 59, London N22 1AR. +44 181 888 8949 
  Monochrome - telnet mono.org  http://www.netbsd.org - un*x for pc,sun,mac,
  **Largest UK Internet BBS!**  http://www.openbsd.org  dec,atari,amiga+more