Wed Oct 25 20:48:46 1995  Mark Eichin  <eichin@cygnus.com>

	* rshd.c (main): check for SO_LINGER macro to enable use of
	setsockopt(SO_LINGER).

Wed Jul 26 19:49:47 1995  Ken Raeburn  <raeburn@cygnus.com>

	* rshd.c (krb_setpgrp) [__osf__]: Call setpgid.
	* rlogind.c: (krb_setpgrp) [__osf__]: Call setpgid.

Thu Jun 15 17:29:39 1995  Mark Eichin  <eichin@cygnus.com>

	* rlogin.c: expunge des_read, des_write, as they are no longer
	used anywhere.

Thu Mar 30 22:11:13 1995  Mark Eichin  <eichin@cygnus.com>

	* kcmd.c: extend HIDE_RUSEROK to cover <netdb.h> for Solaris 2.4.

Mon Feb 13 11:05:36 1995  Ian Lance Taylor  <ian@cygnus.com>

	* rcp.c (sink): Don't call ftruncate if __SCO__ is defined.

Wed Feb  8 14:24:18 1995  Ian Lance Taylor  <ian@cygnus.com>

	* rsh.c (main): #ifdef out unfinished -x support.

Tue Feb  7 13:40:22 1995  Ian Lance Taylor  <ian@cygnus.com>

	* login.c (main): Always set LOGNAME, just like USER.

Fri Feb  3 14:26:05 1995  Ian Lance Taylor  <ian@cygnus.com>

	* login.c (main): Don't try to retrieve a Kerberos ticket using
	the user's password.

Thu Feb  2 13:37:09 1995  Ian Lance Taylor  <ian@cygnus.com>

	* rlogin.c (TIOCPKT_NOSTOP): Only define if not already defined.
	(TIOCPKT_DOSTOP, TIOCPKT_FLUSHWRITE): Likewise.
	* rlogind.c: Check __DGUX__ instead of __DGUX.
	(TIOCPKT_NOSTOP): Only define if not already defined.
	(TIOCPKT_DOSTOP, TIOCPKT_FLUSHWRITE): Likewise.
	* loginpaths.h: Check __DGUX__ instead of __DGUX.

Fri Jan 27 15:15:57 1995  Ian Lance Taylor  <ian@cygnus.com>

	* rlogin.c (oob): When encrypting, don't try to read to the mark
	or interrupt a read, because it confuses the decryption code.

Fri Jan 20 13:47:06 1995  Ian Lance Taylor  <ian@sanguine.cygnus.com>

	* rlogin.c: If NEED_SYS_FCNTL_H is defined, include <sys/fcntl.h>.
	If __svr4__, include <sys/stropts.h>.
	(main): If __svr4__, call I_SETSIG instead of F_SETOWN.
	(writeroob): If __svr4__, clear I_SETSIG.
	(oob): Don't try to handle EWOULDBLOCK on __svr4__ (see comment).
	(reader): If __svr4__, call I_SETSIG instead of F_SETOWN.

	* rlogin.c (main): Avoid race condition by setting a signal
	handler for SIGURG after blocking it.  Remove SCO special case of
	ignoring SIGURG.

Fri Jan 20 01:41:06 1995  Mark Eichin  <eichin@cygnus.com>

	* login.c (UT_HOSTSIZE): protect it from redefinition, just like
	UT_NAMESIZE.

Thu Jan 19 14:14:48 1995  Ian Lance Taylor  <ian@sanguine.cygnus.com>

	* kcmd.c (kcmd): If the first thing we see is a string that starts
	with "ld.so: warning:", assume that it was printed by ld.so on a
	SunOS4 system, and just ignore it and keep going.  Otherwise,
	print the error message as usual, not forgetting to print the
	first character.

Wed Jan 18 11:01:03 1995  Ian Lance Taylor  <ian@sanguine.cygnus.com>

	* Makefile.in (install): Install cygin.

	* login.c (do_krb_login): Always set strict to 1.

Tue Jan 17 10:13:11 1995  Ian Lance Taylor  <ian@cygnus.com>

	* rcp.c (main): Don't bother to check return value of seteuid(0)
	in Solaris case.

Mon Jan 16 14:46:03 1995  Ian Lance Taylor  <ian@sanguine.cygnus.com>

	* rshd.c: Include <sys/stat.h>.  If POSIX is not defined, declare
	malloc.
	(doit): Don't call initgroups if already have correct uid and not
	root.  If command is "rcp", specifically invoke version in
	kprogdir to avoid possible PATH setting by shell startup files.

	* rlogin.c (main): Check return value of krb_get_pw_in_tkt.

Fri Jan 13 14:52:15 1995  Ian Lance Taylor  <ian@sanguine.cygnus.com>

	* rsh.c (main): Don't require the host to be the first argument;
	instead, use the first non option argument.

Thu Jan 12 13:55:43 1995  Ian Lance Taylor  <ian@sanguine.cygnus.com>

	* rlogin.c (main): If invoked as "cygin", don't warn about not
	having any Kerberos tickets.  Just get the Kerberos password.

	* rlogin.c (main): Before calling kcmd, check that the ticket has
	not expired.  If it has, or if kcmd returns RD_AP_EXP, prompt the
	user for a Kerberos password.  Clean up the password prompting.

Fri Jan  6 11:12:01 1995  Ian Lance Taylor  <ian@sanguine.cygnus.com>

	* login.c (main): Comment out call to dofork.
	(dofork): Comment out entire routine.

	* rlogin.c: On HP/UX, include <sys/ptyio.h>.
	* rlogind.c: Likewise.
	(doit): On HP/UX, use F_SETFL O_NONBLOCK rather than FIONBIO.

	* login.c (main): Always call doremoteterm.

Thu Jan  5 10:08:24 1995  Ian Lance Taylor  <ian@cygnus.com>

	* rlogind.c (doit): On SCO, we must call setsid in the child, not
	the parent.  Otherwise, the parent will get the terminal as a
	controlling terminal, and will be vulnerable to signals it
	generates.  I don't know why this is not a problem on other
	systems.

	* logutil.c (HAVE_GETUTENT): Define on SCO.
	(login): If sizeof ut->ut_id == 4, and ut_line starts with "tty",
	don't copy the "tty" portion of the terminal name.  This appears
	to be correct on SCO and SGI.

Fri Dec 30 12:33:19 1994  Ian Lance Taylor  <ian@sanguine.cygnus.com>

	* logutil.c (HAVE_GETUTENT): Define on Irix 5.

Thu Dec 29 12:49:01 1994  Ian Lance Taylor  <ian@cygnus.com>

	* rlogin.c (MY_SIGUSR1): Define to SIGUSR1, except on SCO where we
	define it to SIGUSR2 (SCO sends SIGUSR1 where other systems send
	SIGURG).  Use MY_SIGUSR1 instead of SIGUSR1 throughout.
	(SIGURG): On SCO, define as SIGUSR1.
	(signal): If USE_SIGPROCMASK is defined, define signal as a macro
	which calls sigaction.
	(main): On SCO, ignore SIGURG at first.  On SCO, use SIOCSPGRP
	instead of F_SETOWN.
	(reader): On SCO, a zero byte read will happen when an out of band
	signal is received; permit up to 10 zero bytes reads in a row
	before returning.  On SCO, use SIOCSPGRP instead of F_SETOWN.
	* rlogind.c (doit): On SCO, use SCO style pty names.  Use sizeof
	instead of strlen for constant strings.

Wed Dec 28 09:28:40 1994  Ian Lance Taylor  <ian@cygnus.com>

	* rlogind.c (main): Remove any existing controlling terminal.

Wed Dec 21 18:08:07 1994  Ian Lance Taylor  <ian@sanguine.cygnus.com>

	* rlogind.c (main): Add new options: -k, -K, -x, -p.

	* rshd.c (main): Add new options: -a, -k, -x, -p.  Rename old -p
	option to -P.
	(getport): New static function.
	(doit): If using Kerberos, and -a was used, call getport rather
	than rresvport.
	* kcmd.c (kcmd): Don't bother to check that the port is reserved.

	* rsh.c (main): Don't warn about unknown ekshell service if
	alt_port will be used anyhow.

Tue Dec 20 18:12:34 1994  Ian Lance Taylor  <ian@sanguine.cygnus.com>

	* login.c (main): Don't call stypeof to get the terminal type if
	-p was used and TERM is set in the environment.

Thu Dec 15 18:25:59 1994  Ian Lance Taylor  <ian@sanguine.cygnus.com>

	* Makefile.in (memcache.o): New target; build from memcache.c in
	lib/krb directory.
	(cygin): Link with memcache.o, so that tickets are kept in memory
	rather than in a file.

	* rlogin.c (main): krb_get_pw_in_tkt no longer prompts for a
	password, so get a password before calling it.

Tue Nov 29 18:28:55 1994  Ken Raeburn  <raeburn@cujo.cygnus.com>

	* rsh.c (main): Don't set network streams non-blocking.
	* rshd.c (doit): Ditto.  Initialize local variable READFROM.

Tue Nov 22 17:10:15 1994  Ian Lance Taylor  <ian@sanguine.cygnus.com>

	* login.c (EXCL_TEST): Remove -f from list of mutually exclusive
	options; it can be used with -h.

Mon Nov 21 12:50:55 1994  Ian Lance Taylor  <ian@sanguine.cygnus.com>

	* rcp.c: Don't declare malloc or calloc.
	(strsave): Cast result of malloc.

Fri Nov 18 16:43:30 1994  Ian Lance Taylor  <ian@sanguine.cygnus.com>

	* login.c (main): If TZ was set in the original environment, set
	it to the same value in the new environment.
	* rshd.c: If POSIX, include <stdlib.h>.
	(malloc): Don't declare.
	(getenv): Declare.
	(username, homedir, shell, path, path_rest): Remove.
	(ENVINIT_SRVTAB): Don't define.
	(env_srvtab, envinit): Remove.
	(doit): Use setenv to set up environment, rather than assuming the
	static arrays are large enough.  If TZ was set in the original
	environment, set it to the same value in the new environment.
	(strsave): Cast malloc result.

Wed Nov 16 18:36:57 1994  Ian Lance Taylor  <ian@sanguine.cygnus.com>

	* rsh.c (main): Accept new -p option to set port.
	* rlogind.c (srvtab, login_program): New global variables.
	(main): Accept new -l option to set the login program to run, -r
	option to set the realm file to use, and -s option to set the
	srvtab file to use.
	(doit): Use login_program variable instead of LOGIN_PROGRAM macro.
	If srvtab is set, pass -s argument to login_program.
	(fatal): Don't pass \r\n to syslog.  Don't use %m in syslog call.
	(do_krb_login): Pass srvtab to krb_recvauth.
	* login.c (srvtab): New global variable.
	(main): Accept new -s option to set srvtab name.
	(do_krb_login): Pass srvtab to krb_recvauth.
	* rshd.c (srvtab, kprogdir): New global variables.
	(main): Accept new -p option to set the program directory to add
	to PATH, -r option to set the realm file to use, and -s option to
	set the srvtab file to use.
	(env_strtab): New global variable.
	(envinit): Add extra 0 in initialization.
	(doit): Pass srvtab to krb_recvauth.  If srvtab is set, set
	KRB_SRVTAB in the environment.  Use kprogdir variable rather than
	KPROGDIR macro.
	* rcp.c: If POSIX, include <stdlib.h>.
	(force_net): New global variable.
	(main): Accept new -P option to set port.  Accept new -N option to
	force use of network even when copying files on the local system.
	If -k or -P are used, pass the corresponding argument to rsh and
	to recursive rcp.
	(hosteq): If force_net is set (by -N option), always return 0.
	(answer_auth): If KRB_SRVTAB is set in the environment, use it for
	the srvtab file name by passing it to krb_recvauth.

Wed Nov 16 17:20:53 1994  Mark Eichin  (eichin@cygnus.com)

	* rcp.c: initialize encryptflag.

Tue Nov 15 17:29:57 1994  Ian Lance Taylor  <ian@sanguine.cygnus.com>

	* rlogin.c (main): Don't require the host to be the first
	argument; instead, use the first non option argument.

Tue Nov  8 14:02:53 1994  Ken Raeburn  <raeburn@cujo.cygnus.com>

	* login.c (main): Don't print "no kerberos tickets obtained"
	message.

Thu Nov  3 17:45:59 1994  Ian Lance Taylor  <ian@sanguine.cygnus.com>

	* rlogind.c: Declare error_message.

	* kcmd.c: Include <signal.h>, not <sys/signal.h>.
	(inet_ntoa): Declare.
	(kcmd): Always set status before jumping to bad2.

Wed Nov  2 18:55:53 1994  Ian Lance Taylor  <ian@sanguine.cygnus.com>

	* rlogind.c (doit): Declare ptsname before calling it.

	* kcmd.c (kcmd): Only worry about SIGURG if it is defined.  Use
	new signal blocking macros.
	* rlogin.c (main): Likewise.
	(doit): Declare type of argument as sigmasktype.  Use new signal
	blocking macros.
	(setsignal): Use new signal blocking macros.
	(copytochild): Only define if SIGURG is defined.
	(reader): Change type of argument to sigmasktype.  Only handle
	SIGURG if it is defined.
	* rsh.c (main): Use new signal blocking macros.

Wed Nov  2 16:09:43 1994  Mark Eichin  (eichin@cygnus.com)

	* rshd.c (doit): actually *use* the safe version of "hostname"
	from hp->h_name. strsave it (and the return from inet_ntoa as
	well) since it points to static data.

Tue Nov  1 17:07:52 1994  Ian Lance Taylor  <ian@sanguine.cygnus.com>

	* rlogin.c (catchild): Use waitpid instead of wait3 if POSIX is
	defined, not just if __svr4__ is defined.

	* rshd.c: Don't declare strncat.  Only declare errno if it is not
	a macro.

Fri Oct 28 15:19:07 1994  Ian Lance Taylor  <ian@sanguine.cygnus.com>

	* rlogind.c (doit): Use the macro krb_setpgrp rather than calling
	setpgrp directly.

Thu Oct  6 16:19:28 1994  Ken Raeburn  <raeburn@cujo.cygnus.com>

	* rshd.c (doit): Rewrite some conditionals to make emacs
	`backward-up-list' happy.  Only establish kstr2 if secondary
	network connection was established, and use that socket rather
	than file descriptor 2.  Clean up some other handling of the case
	where the secondary connection is not established.

Wed Oct  5 16:48:18 1994  Ken Raeburn  <raeburn@cujo.cygnus.com>

	* rshd.c: Include kstream.h.
	(eksh, kstr, kstr2, schedule): New variables.
	(main): If program name is "ekshd", set eksh and ksh.
	(copyout, copyin): New function.
	(doit): Do mutual authentication if eksh.  Always set up kstreams
	for both network connections.  If eksh, set up three pipes to
	child process, and handle them with select.

	* rsh.c: Include kstream.h.
	(EKSHELL): Define.
	(rem): Now global.
	(krem, krfd2, cred, schedule): New global variables.
	(main): Only print out "encrypted rsh unavailable" message if
	EKSHELL is not defined.  Pass MSG_DAT and sockaddr_in pointers to
	kcmd, not null pointers.  If xflag is given, use service name
	"ekshell", falling back to KRB_CRYPT_SHELL_PORT if defined; turn
	on mutual authentication; die instead of falling back to
	non-Kerberos rsh.  Set up kstreams for i/o, as in rlogin.  Update
	usage message.
	(main, sendsig): Use kstream_read and kstream_write on network
	connection.

Mon Oct  3 15:52:42 1994  Ken Raeburn  <raeburn@cujo.cygnus.com>

	* login.c: Include stdio.h before grp.h, due to problems in grp.h
	on DEC Alpha OSF/1 2.0.

Wed Sep 28 11:50:15 1994  Ken Raeburn  (raeburn@kr-pc.cygnus.com)

	* rlogin.c: Treat NetBSD like 386BSD, and include
	sys/ioctl_compat.h.

	* rcp.c (sys_errlist): Don't declare under NetBSD.

	* loginpaths.h: Added NetBSD definitions.

	* login.c (main): Don't use TIOCLSET if it is not defined.  If
	NTTYDISC isn't defined, use TTYDISC.
	(doremoteterm): Check "0" against specified terminal speed, not
	against an uninitialized local variable.

	* rlogind.c (doit): Treat NetBSD like 386BSD and use TIOCSCTTY.
	(fatalperror): On NetBSD, don't declare sys_errlist.

Fri Aug 26 16:45:19 1994  Mark Eichin  (eichin@rtl.cygnus.com)

	* rlogin.c (doit, mode): if we don't have VLNEXT, don't try to set it.

	* rcp.c (main): use seteuid hack on solaris only, not on general
	svr4 systems, but provide setreuid from setuid for svr4 (since
	they don't always have it after all.)

	* rshd.c, rsh.c, rlogin.c: check NO_SYSIO instead of DGUX (or
	hp300). This covers the lack of sys/filio.h and sys/sockio.h on an
	otherwise __svr4__ system.

Mon Aug 22 13:59:53 1994  Mark Eichin  (eichin@cygnus.com)

	* rcp.c (sink): size is an off_t, not an int, since it is passed
	to ftruncate.

Wed Aug 17 17:53:41 1994  Mark Eichin  (eichin@cygnus.com)

	* rlogin.c (exit_rlogin): new function. Don't use exit() as a
	signal handler, to avoid bogus exit values and to avoid the need
	for a declaration of exit as a function.

Tue Aug 16 17:15:39 1994  Mark Eichin  (eichin@cygnus.com)

	* login.c (doremoteterm): Don't allow a baud rate setting of "0",
	since that will likely hangup the tty.

Fri Aug 12 21:25:41 1994  Mark Eichin  (eichin@cygnus.com)

	* rsh.c: don't (mis-)declare getpwuid.
	* rcp.c: ditto.
	* rlogin.c: ditto. Also drop malloc since we never call it anyhow.

Fri Aug  5 15:29:24 1994  Mark Eichin  (eichin@cygnus.com)

	* rshd.c (error): change pseudo-varargs to use char*, instead of
	int; in the only case of multiple arguments, it's a char*, and
	this will actually work on an AXP.

Mon Jul 25 18:34:41 1994  Mark Eichin  (eichin@cygnus.com)

	* login.c (main): use POSIX_TERMIOS
	Make POSIX imply POSIX_TERMIOS.
	(doremoteterm): avoid clearing non-POSIX extension flags in
	c_lflag, by only explicitly setting the documented ones; also set
	ECHOCTL, ECHOKE if they are defined.

	* rlogind.c (doit): use POSIX_TERMIOS
	Make POSIX imply POSIX_TERMIOS.

Mon Jul 25 16:36:23 1994  Mark Eichin  (eichin@cygnus.com)

	* rlogin.c (main): add "-p###" to specify alternate port to
	connect to rlogind (to simplify testing.)

Fri Jul 22 20:53:27 1994  John Gilmore  (gnu@cygnus.com)

	* login.c:  Allow -f and -h simultaneously (for ktelnetd).
	This is not sufficient for bug-free operation, but gets us started.
	* login.c, rcp.c, rsh.d, rshd.c:  Remove RCS crud.

Wed Jul 20 20:33:39 1994  Mark Eichin  (eichin@cygnus.com)

	* login.c (strsave): only define locally if HAVE_STRSAVE isn't
	set.
	* rcp.c (strsave): ditto.
	* loginpaths.h: add pyramind, dgux cases.
	* rlogin.c: DGUX doesn't have sys/sockio.h.
	* rlogind.c: DGUX doesn't have sys/fileio.h, but needs
	sys/stream.h.
	* rsh.c: DGUX doesn't have sys/filio.h.
	* rshd.c: DGUX doesn't have sys/filio.h.
	(strsave): only define locally if HAVE_STRSAVE isn't set.
	(main): BSD might be "" so use BSD+0 >= 43 instead.

Tue Jul 19 20:01:12 1994  Ken Raeburn  (raeburn@cujo.cygnus.com)

	* rlogin.c (oob) [!NOENCRYPTION]: If kstream oob debugging is
	enabled, print out symbolic descriptions of all oob messages.

Tue Jul 12 15:46:49 1994  Ken Raeburn  (raeburn@cujo.cygnus.com)

	* rlogind.c (wtmp): Variable deleted.
	(NMAX): In sizeof expression, cast null to a pointer rather than
	using an otherwise unused variable.

	* logutil.c (HAVE_GETUTENT): Define for Alpha AXP OSF/1.

Fri Jul  1 06:29:29 1994  John Gilmore  (gnu@cygnus.com)

	* kcmd.c:  Cast -1 to (char) so it will compare on machines
	with unsigned chars.
	* login.c, rcp.c, rlogin.c, rsh.c, rshd.c: krb_err_txt =>
	krb_get_err_text.

Wed Jun 29 18:10:19 1994  Ken Raeburn  (raeburn@cujo.cygnus.com)

	* login.c (krb_err_txt): Deleted declaration.

Wed Jun 22 21:26:55 1994  Ken Raeburn  (raeburn@cujo.cygnus.com)

	* login.c (WAIT_TYPE): Define, based on WAIT_USES_INT.
	(dofork): Use it.

	* rcp.c (calloc): Declare.
	* rshd.c (malloc): Declare.
	(strsave): Don't cast malloc return value.

Sat Jun 18 08:23:31 1994  John Gilmore  (gnu@cygnus.com)

	* Makefile.in (crlogin):  Rename to cygin everywhere.
	* kcmd.c:  Avoid N-second timeout if Kerb rcmd fails; fall
	back immediately to ordinary rlogin.  Remove RCS crud.
	* rlogin.c (main, try_normal):  Handle argv[0] == "cygin".

Tue May 24 06:30:26 1994  John Gilmore  (gnu@cygnus.com)

	* login.c:  Lint: time() declaration was out of scope of 2nd use.

Sat May 21 04:48:18 1994  John Gilmore  (gnu@cygnus.com)

	* rlogin.c, rlogind.c, rsh.c:  Clean up signal types with sigtype.
	Lint.  RCS.  Improves HPPA warnings.

Fri May 13 01:38:51 1994  John Gilmore  (gnu@cygnus.com)

	* kcmd.c, login.c, logutil.c, rcp.c, rlogin.c, rlogind.c, rsh.c,
	rshd.c:  Include "conf.h" to pick up #define's from the host
	configuration (rather than from the compiler command line).

Sun May  8 16:12:35 1994  John Gilmore  (gnu@cygnus.com)

	* login.c (sigtype):  Get defn from osconf.h, don't try to guess
	it ourselves.

Fri Mar  4 15:33:57 1994  Ken Raeburn  (raeburn@cujo.cygnus.com)

	* Makefile.in (clean): Remove crlogin.

Sun Jan 30 16:56:43 1994  Ken Raeburn  (raeburn@kr-pc.cygnus.com)

	* rlogin.c (main): Handle systems like NetBSD, where cfgetospeed
	returns ospeed as a number (baud rate), not a table index.

	* Makefile.in (crlogin): Force removal of old crlogin before
	making link; never let rm prompt for verification.

Sun Oct 17 13:32:11 1993  Ken Raeburn  (raeburn@cambridge.cygnus.com)

	* rlogin.c (catchild): If WAIT_USES_INT, do same as for POSIX.

	* rcp.c, rsh.c, rshd.c: Include <string.h>, delete explicit
	declarations of strcpy.

	* loginpaths.h: Added alpha-osf versions.

Mon Oct  4 00:51:41 1993  Ken Raeburn  (raeburn@cambridge.cygnus.com)

	* rsh.c (main): If port number is set from hard-coded default,
	don't exit immediately after setting it.

Wed Jun 30 21:09:20 1993  Mark Eichin  (eichin at tweedledumber)

	* rlogin.c (main): if `-d' given, set _kstream_des_debug_OOB as
	well as socket options.

Mon Jun  7 14:56:33 1993  Ken Raeburn  (raeburn@cambridge.cygnus.com)

	* rsh.c (main): Reject `-x' if not running rlogin.

Mon Nov 30 09:30:46 1992  Ken Raeburn  (raeburn@cambridge.cygnus.com)

	* login.c (kdata, krbflag): Default C initializers will suffice;
	save a few bytes in disk image.
	(ticket): Deleted.
	(do_krb_login): Variable "ticket" now automatic in this function.
	(main): Option `e' now takes an argument, the remote hostname.
	* rlogind.c (doit): Pass hostname with "-e".

	* rlogind.c (do_krb_login): Accept file descriptor argument.  Call
	fatal or fatalperror with it, instead of simply exiting.
	(doit): Pass file descriptor to do_krb_login.
	(doit): Use a static buffer for pty name template, not a read-only
	string.

Mon Nov  9 21:30:27 1992  Mark Eichin  (eichin at tweedledumber.cygnus.com)

	* rlogind.c (doit): don't send trailing null at end of SECURE_MESSAGE
