Path: utzoo!utgpu!news-server.csri.toronto.edu!mailrus!wuarchive!uwm.edu!rpi!zaphod.mps.ohio-state.edu!uakari.primate.wisc.edu!aplcen!haven!uflorida!mephisto!emory!hubcap!ncrcae!shawn From: shawn@ncrcae.Columbia.NCR.COM (Shawn Shealy) Newsgroups: comp.sys.ncr Subject: Re: USR HST/ds Help Summary: dial in - dial will work in 700 1.01.01 Message-ID: <6304@ncrcae.Columbia.NCR.COM> Date: 10 Jul 90 13:43:18 GMT References: <4265@texbell.sbc.com> Reply-To: shawn@ncrcae.Columbia.NCR.COM (Shawn Shealy) Organization: NCR Corp., Engineering & Manufacturing - Columbia, SC Lines: 135 >responses on the modem being set on all the time. This caused a problem >because when the remote system dialed into our modem, it (our modem) would >send the response "RING" (in upper case) to uugetty on our system. Our >system would respond as though the remote system was using the login "RING". Vernon, I do not know how you had your modem setup when you had this problem, but if it were setup so that the open() by uugetty would not complete until a call came in (this can be a verified by doing a ps and looking at the TTY field for the uugetty entry --- if it shows a ? then the open has not completed) then the -r option of uugetty should have been used. Of course this is just another solution to your problem --- your solution works equally well with modems which can be set up to reset on DTR drop. From uugetty (1M): -r waittime Wait to read a character before putting out the login message, thus preventing two uugettys from looping. An intelligent modem or direct line that has a uugetty on each end must use the -r option. If there is a uugetty on one end of a direct line, there must be a uugetty on the other end as well, or no getty at all. If a waittime is specified, the system waits that amount of time after receipt of the first character and checking for the lock before input is flushed and a second character is sought. ... >> Mike - Unfortunately the 3/5/700 are substantially different than the rest >> of the systems, especially 4xx/6xx under 2.01. It deals with being driven >> by the streams drivers versus the pure hpsio and uugetty definately has >> bugs under release 1.00 but some are fixed under 1.01. To my knowledge >> many folks were never able to get uugetty to work if they had old 1200 >> baud ncr hayes lookalike modems. Susan, The uugetty source code is the same in 1.00.00 and 1.01.00. The problem with setting up a line to receive incoming calls and outgoing calls on the 3/5/700 has been solved in release 1.01.01. I implemented the solution myself. Furthermore the "old 1200 baud ncr hayes look alike modems" do work properly in this capacity --- I tested this myself. This release is currently in its test phase and I do not know when it will be customer available. The streams head single threads driver open() calls. If one process is in the middle of opening a device and a second process attempts to open() the device, then the second process will not cause the driver's open() routine to be invoked until the first process's open() has completed. This causes a problem in the case of a dial in/dial out modem as follows: A first process (for example uugetty) attempts to open() a tty device node which is attached to a modem without using the O_NDELAY flag. If carrier detect (DCD) or device ready (DSR or DTR) on that tty node is not present, then the driver routine suspends the process. If a call were now to come in to the modem, and the modem were to answer and hear the carrier tone, then it would assert carrier detect to the TOWER and the process's open() would complete. However, if someone wants to use the modem before a call comes in, they may execute the cu command. This process would try to open() the modem using the O_NDELAY flag which says not to wait on carrier detect and device ready to be active. However, this second open would hang waiting on the first open to complete. The solution implemented for 1.01.01 deals with using a different device node (with a new minor number) for outgoing calls than for incoming calls. I have attached a PRELIMINARY copy of the manual page which describes the new subdevice scheme. -shawn DIALOUT(7) DIALOUT(7) NAME dialout, dio - dial out tty lines DESCRIPTION For each asynchronous communications port governed by the nec driver (typically /dev/ttya and /dev/ttyb), the hp driver (hpsio ports), or the dtcs driver, there exist two logical devices. Use the cmajor(1M) utility to determine the major device numbers for nec, hp, and dtcs devices. The two logical devices are the conventional tty port and the dial out tty port. The logical devices are distinguished by distinct minor numbers. To determine the minor number for a dial out tty node (which uses the same physical port as a conventional tty node): add the number of physical tty ports (which the driver supports) to the minor number for the conventional tty node. The nec driver supports 2 physical tty ports. The hpsio driver supports 64 physical tty ports. The dtcs driver supports 96 physical tty ports. Therefore: nec dial out minor number = nec conventional minor number + 2 hpsio dial out minor number = hpsio conventional minor number + 64 dtcs dial out minor number = dtcs conventional minor number + 96 An open() of a dial out tty node does not wait for carrier detect to be asserted (whether or not the O_NDELAY flag is set). If a conventional tty node is open and an open() is attempted on a dial out tty node, then the open() will fail (return -1) and errno will be set to EBUSY. If an open() is attempted on a dial out tty node and an open() of the corresponding dial in tty node is waiting for carrier detect to be asserted, then the open() of the dial out tty node will complete successfully and the open() of the conventional node will normally stay suspended until the dial out tty node is no longer in use and carrier detect is present. If a process attempts to open() a conventional tty node with the O_NDELAY flag set and a corresponding dial out tty node is in use, then the open() will fail and errno will be set to EBUSY. If a process attempts to open() a conventional tty node without the O_NDELAY flag set and the corresponding dial out tty node is in use, then the open() will not complete until the dial out tty node is no longer in use and carrier detect is present. FILES /dev/tty* /dev/dio* SEE ALSO cmajor(1M), dual_hpsio(7), hpsio(7), nec(7), open(2), termio(7). SUPPORT STATUS Supported. Page 1 (printed 7/10/90)