Subject: bin/6102: pppd 'cdtrcts' broken
To: None <gnats-bugs@gnats.netbsd.org>
From: None <fb@enteract.com>
List: netbsd-bugs
Date: 09/04/1998 14:13:43
>Number:         6102
>Category:       bin
>Synopsis:       cdtrcts option in pppd is broken
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    bin-bug-people (Utility Bug People)
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Fri Sep  4 12:20:00 1998
>Last-Modified:
>Originator:     Frederick Bruckman
>Organization:

>Release:        September 3, 1998
>Environment:
System: NetBSD fb.sa.enteract.com 1.3G NetBSD 1.3G (FB) #96: Sun Aug 30 11:30:21 CDT 1998 
fredb@fb.sa.enteract.com:/usr/src/sys/arch/mac68k/compile/FB mac68k

>Description:
	pppd fails to recognize the 'cdtrcts' option altogether. As below:

Sep  4 11:52:50 fb pppd[195]: In file /etc/ppp/options: unrecognized option 'cdtrcts'

	Prior to September 3rds changes, the option was recognized.
	(Although it didn't necessarily work that well--same workaround applies.
	Apparently, "chat" would relinquish the port with 'crtscts' set, 
	then "pppd" would not be able to set 'cdtrcts'. This is a
	characteristic of the the serial device. You can do this:

	root-> stty -f /dev/tty00 crtscts -cdtrcts

	and this

	root-> stty -f /dev/tty00 -crtscts cdtrcts

	but not this!

	root-> stty -f /dev/tty00 crtscts -cdtrcts
	root-> stty -f /dev/tty00 cdtrcts
	stty: tcsetattr: Invalid argument

	The port has to be open by some process, .e.g. "pppd", for any
	of this to work, of course.)

	Assuming that everyone is happy with the present behavior of
	the serial ports, and with chat, the desired behavior, in the
	presence of the 'cdtrcts' option, is to set the the port that
	way only after the 'connect' script completes.

	Worth considering, is the idea that the 'connect' command
	should be called with the "right" handshaking (for the way
	your cable is wired) to begin with.

>How-To-Repeat:
	Run "ppd" with 'cdtrcts' in the options file. Presumably, it
	would do the same thing on the command line or in one of the
	other "options" files.
>Fix:
	You can set up the port with the connect script, and then
	simply omit any handshaking options from the pppd command line
	or options files. Substitute something like this for your
	present "connect" option, wherever that normally lives.

	connect "(chat -v -f /etc/ppp/chats/enteract && 
	stty -f /dev/tty00 clocal -crtscts cdtrcts speed 38400)"

	That needs to be all on one line. Also, don't set your modem to come
	up with "&D0", instead, include "AT&F1&C1&D0..." in your chat script.

	There are other requirements, of course, that aren't part of
	the fix. If you need the 'cdtrcts' option, you probably
	already know that you need a specially wired cable, 
	you also need 'clocal' in pppd options, and you need a "disconnect"
	script to ensure that the phone hangs up.
>Audit-Trail:
>Unformatted: