Mon Oct 28 22:49:28 PST 1991  Paul Vixie  (vixie at decwrl)

	* mail11d.c: fixed quote bug in personal-name scanning

Sun Oct 27 20:57:59 PST 1991  Paul Vixie  (vixie at decwrl)

	* mail11d.c: various fixes from fred avolio on the
	  personal-name quoting

Sat Oct 12 19:29:01 PDT 1991  Paul Vixie  (vixie at decwrl)

	* Makefile: vixie: add PERCENTIFY and FAKEOUT_NMAIL options

	* decnet-ultrix.c: better debugging output from decnet_eof();
	  send client back its own RFM and RAT (instead of zeros).

	* smtp-pipe-sendmail.c: better debugging output;
	  tell sendmail to mail errors back rather than
	  telling us about them synchronously.

	* mail11d.c: now prints cwd at startup so you can find core dumps :-);
	  comment cleanup; no more message_pending logic -- sends message text
	  back to client at every opportunity using new mail11_error() func;
	  new RewritePath() stuff (controlled by PERCENTIFY option) which we
	  are not using since our local sendmail.cf isn't smart enough to deal
	  with the replies properly; don't send DATA if we got a fatal error
	  in the RCPT or MAIL commands; waits for client to close connection
	  (we get a decnet_eof() in this case) before exiting; moved all header
	  concoction to its own function; added personal_name handling in
	  recipient headers (it's not just for from lines, it seems).

Wed Sep 25 17:54:52 PDT 1991  Paul Vixie  (vixie at decwrl)

	* mail11d.c: deal with unquoted user-fullname strings

	* debug.c: change DEBUG_DumpBlock output to not be confusing
	  as measured against the smtp debugging output.

	* decnet.h decnet-ultrix.c: add DECNET_FDOpen_In function

	* mail11d.c: new block mode implementation,
	  and new object system for modes.


Tue Sep 24 18:56:56 PDT 1991  Paul Vixie  (vixie at decwrl)

	* decnet-ultrix.c debug.c mail11d.c: block mode bug


Sun Sep 22 17:46:37 PDT 1991  Paul Vixie  (vixie at decwrl)

	* Makefile: cleaned up, parameterized, added saber support,
	  "diffs" target.

	* mail11d.c: general cleanup and parameterization.  don't use
	  environment variables, use command line options.
	  correct and expand comments.  add register decl's.
	  add MakeLowerCase() func and call it in lots of
	  places to generate lower-case names in headers.
	  strip our nodename from RCPT's handed to sendmail.
	  try RCPT:<postmaster> if RCPT:<system> doesn't work.
	  call HackRecipientHeader() on mail11 to/cc fields.
	  add HackRecipientHeader() func to commaize header
	  and clean up each term therein to relativize (add
	  remote nodename to unqualified usernames, remove
	  local nodename if present, shift to lower-case).
	  add ConcoctRcvdHeader() func and call it instead
	  of generating Received: inline with two copies of
	  identical code.  parameterize for multi-line or
	  single-line generated Received: headers.  add a
	  configurable option to make mail11's TO/CC the
	  rfc822 To:/Cc: and use the mail11 envelope as
	  rfc822's X-Mail11-To:, vs standard behaviour which
	  is the other way around.  strip local nodename
	  from sender if present.  add debugging printout
	  for mail11 envelope info.  configurably remove
	  the *_DOMAIN environment variable lookups.

	* mail11.c: fix some lint

	* smtp-tcp-bsd.c: 7-bit compare on double-dot algorythm

	* smtp-pipe-sendmail.c: 7-bit compare on double-dot algorythm;
	  use UNIX_ErrorMessage() instead of referencing sys_errlist[].

	* decnet-ultrix.c: cleanup and parameterize.
	  fix bug in use of getsockopt().

	* text.c: added TEXT_Init() function.  fixed two off-by-one
	  errors in Text_Append().

	* unix.c: use strerror() instead of referencing sys_errlist[].

	* debug.h,decnet.h,mail11.h,rfc822.h,smtp.h,string.h,text.h:
	  cleanup and parameterize

	* MANIFEST: added defs.h and mail11d.sh.dec
	  changed def'n of mail11d.sh.utk

	* PROBLEMS: reformatted.  added an explaination of how DEC
	  avoids one of the problems UTK has.

	* README: reformatted.  added notes about DEC additions.

	* README.DEC: new file contains internal announcement of
	  the software; has a few tidbits of information in it.
	  but basically if you want to know what the compile-time
	  options are (and i think you do want to know), look at
	  the source.  if you compile and install this software
	  without looking at the source, you are an idiot.

Sat Jun 30 23:27:24 1990  Keith Moore  (moore at betelgeuse)

	* mail11d.c (ReadLineFromMessageBody):
	  Was not returning a length for non-block mode reads.
	  Fixed that.

	* mail11d.c (FillBlockBuffer):
	  If record is a marker (indicating end of message body),
	  return EOF;

	* decnet-ultrix.c (DECNET_AcceptConnection), and also
	  sunlink-dni.c (DECNET_AcceptConnection):
	  if client offers to send in block mode, agree to do so.

	* Makefile: change references to "dna" to "dni" instead.

Mon May 21 00:03:41 1990  Keith Moore  (moore at betelgeuse)

	* mail11d.c:
	  Added code to receive messages in block mode.

Sun May 20 23:10:06 1990  Keith Moore  (moore at betelgeuse)

	* mail11d.c (StateMachine)
	  Rearranged code and edited comments.  This is no longer is
	  implemented as a state machine, to make it easier to support
	  block mode transfers.  Renamed routine to TranslateMail11ToRFC822().

	  Don't generate ASCII HT (011, 0x09, '\t', ^I) in message
	  headers, because they don't survive translation to and
	  from EBCDIC when going over RSCS/NJE links.

Mon Jan 29 04:38:44 1990  Keith Moore  (moore at betelgeuse)

	* sunlink-dni.c (DECNET_EOF):  The sunlink code to detect
	  end of file on a DECnet channel wasn't working properly.
	  Replaced with simply "return 0", which shouldn't cause
	  a problem given that we know when to stop reading from
	  the client anyway.

Wed Jan 10 00:05:10 1990  Keith Moore  (moore at betelgeuse)

	* Makefile: when compiling sunlink-dni.c, check for
	  include file <netdni/dni.h>.  If not present, assume
	  Sunlink DNI version 5 and pass appropriate flags to CC.

	* sunlink-dni.c: #include <netdni/dni.h> by default,
	  unless OLD_SUNLINK_DNI is defined, in which case <netdna/dna.h>
	  is #included instead.

	* released version 1.6

Wed Nov 22 02:50:24 1989  Keith Moore  (moore at betelgeuse)

	* mail11d.c (HackSender)
	  If STRIP_QUOTES_IN_SENDER is #defined at compile time,
	  HackSender will remove occurances of '"' in the sender's
	  address rather than quoting them with backslash.
	  This means that BITNET%"MOORE@TNTECH" will become
	  "BITNET%MOORE@TNTECH"@UTKVX.UTK.EDU rather than
	  "BITNET%\"MOORE@TNTECH\""@UTKVX.UTK.EDU .
	  The latter confuses many mail user agents, and the
	  quotes are stripped from envelopes by sendmail anyway.
	  The utk-mail11 gateway knows how to add the quotes back in the
	  right places so that the message is replyable.

	* mail11d.c (StateMachine)
	  If TRUST_RECEIVED_HEADER is #defined at compile time,
	  and the first line of the received message body begins with
	  "Received:", utk-mail11d will not add its own message header.
	  It will, however, prepend its own Received: and Resent-To:
	  lines.

Fri Jul 21 02:51:44 1989  Keith Moore  (moore at cs.utk.edu)

	* Add feature to smtp-pipe-sendmail.c:
	  If environment variable SMTP_COMMAND is defined,
	  run that program instead of /usr/lib/sendmail.
	  It's not fully general yet, since the args are still
	  "sendmail" "-bs", but it should be okay for firing
	  up things from shell scripts. 

Fri Jul  7 03:42:17 1989  Keith Moore  (moore at utkcs2)

	* Version 1.5

	* Cleaned up some of the installation stuff.

Sat Mar 25 18:12:17 1989  Keith Moore  (moore at utkcs2)

	* Now works in deferred mode, and exchanges protocol
	  config information with client.  Supports reception of
	  Cc: lines (converting to X-Cc:).

	* Ported to SunOS 3.5 with SunLink DNI 5.0

Fri Mar 24 23:43:45 1989  Keith Moore  (moore at utkcs2)

	* version 1.4

	* portability hack -- express success_code and error_code
	  as character arrays, which are independent of byte
	  order on a particular machine.

	* Generate ersatz To: header last, so the human will
	  see the X-To: header first.  Sometimes the To: header
	  that we generate is very long, because it results from
	  the expansion of an address list.  Most UA's page the
	  output, so this way the human sees the original headers
	  first.

	* Add PMDF-style translation of recipient names.
	  This is necessary because VMS MAIL provides no way to
	  put a double-quote in the recipient address, unless it's
	  to quote the entire string.

	  single quotes get translated to double quotes.  
	  \S, \s, and \' become single quotes
	  \D and \d become double quotes
	  \\ becomes \
	  single double quotes are deleted
	  doubled double quotes become a single double quote

	* Got the pipe interface working.  This works better
	  (with IDA sendmail anyway), because IDA sendmail
	  checks the sender's IP address when talking TCP.

Thu Mar 23 14:26:31 1989  Keith Moore  (moore at utkcs2)

	* Fix bug that generated garbage from addresses on traffic
	  from a DECnet-Ultrix v3.x system.

	* wrote a man page.  Changed a few things in mail11d.c
	  to work like the man page says.  Removed hard-coded
	  UTK-specific stuff.

	* address translation on From: lines is now performed
	  by translating the environment variable FOO_DOMAIN
	  to get the Internet domain equivalent for DECnet node FOO.
	  If that translation fails, a domain name is synthesized
	  from the concatenation of FOO (the DECnet node name)
	  and the translation of DECNET_DOMAIN_SUFFIX.
	  The default for DECNET_DOMAIN_SUFFIX is ".DECnet".
	  
Wed Mar 22 14:29:31 1989  Keith Moore  (moore at utkcs2)

	* in debug.c:  make sure debug_file != NULL before closing.

Wed Mar 15 23:44:14 1989  Keith Moore  (moore at utkcs2)

	* Don't issue DATA command until we have at least one
	  line of the message body.

Mon Mar 13 06:06:55 1989  Keith Moore  (moore at utkcs2)

	* Allow site-setting of DECNET_DOMAIN_SUFFIX environment variable,
	  which is consulted to determine what domain to append
	  to the DECnet node name.  (e.g. "SPAN" or "EasyLink")
	  DECNET_DOMAIN defaults to "DECnet" if not set.

	* New function: ConcoctDomain, which tries to translate
          a DECnet node name into a domain name.  Currently it
	  uses a hard-coded table.  Eventually it should hook
	  in to a database and/or the domain name server.

        * Tested the case when the sending DECnet node name is unknown.

Sun Mar 12 04:43:18 1989  Keith Moore  (moore at utkcs2)

	* New function XlateRecipient: translate a recipient
	  address to local format.  Currently this involves removing
	  quotes if they exist, but later it should at least requote
	  any wierd characters in the quoted string.

Sat Mar 11 06:42:37 1989  Keith Moore  (moore at utkcs2)

	* First version that really works. (v1.3)
	  Uses SMTP/TCP interface to sendmail.


