There are 27 other files named mxver.mac in the archive. Click here to see a list.
SUBTTL Global edit history for MX
! COPYRIGHT (c) 1985 BY
! Digital Equipment Corporation, Maynard, MA.
! This software is furnished under a license and may be used
! and copied only in accordance with the terms of such
! license and with the inclusion of the above copyright
! notice. This software or any other copies thereof may not
! be provided or otherwise made available to any other
! person. No title to and ownership of the software is
! hereby transferred.
! The information in this software is subject to change
! without notice and should not be construed as a commitment
! by Digital Equipment Corporation.
! Digital assumes no responsibility for the use or
! reliability of its software on equipment which is not
! supplied by Digital.
! FACILITY: Decmail/MS Message eXchange
! MX controls mail message queing and delivery.
! ENVIRONMENT: TOPS-20 / TOPS-10
! AUTHOR: Richard B. Waddington, CREATION DATE: 2-APR-1985
! MODIFIED BY:
! Revision history follows
! Global Edit History for MX
1 by RBW on 5-Jun-85
Use byte count to calculate page count instead of sizef's pagecount.
2 by RBW on 26-Jun-85
Module: Minor changes to all, Significant changes to MXLCL.BLI and
Changes required so that MX will run under TOPS-10. Also, move call to
NMU$SCHED_PAUSE from LCLSPL to LOCAL_DELIVER. Pause before writing
each recipients MAIL.TXT file.
3 by RBW on 28-Jun-85
Module: MXERR,MXLCL -fix error handling bug in Local Mail
Changes to support DECNET servers and spoolers.
4 by RBW on 26-Jul-85
Module: MXERR,MXLCL,MXQMAN -minor bug fixes
Initial implementation of SMTP over DECNET.
5 by RBW on 29-Jul-85
Module: MXLCL, MXERR, NMUT20.MAC
Fix SYSTEM mail bug which caused MX crashes. MX crashes now restart
RUNMX: and create DMP:MX.DMP files (SYSTEM: if DMP: does not exist)
6 by RBW on 31-Jul-85
Turn on the crash recovery code.
7 by RBW on 5-Aug-85
Fix bugs found when MS started trying to send all mail through MX.
This MX is a useable multi-domain mailer...
10 by RBW on 9-Aug-85
The MX$MESSAGE_QUEUE_POST routine will now delete the message file if
there are no work requests to be posted. This is a hack until such
time that MS can get it's act together as per what to do with leftover
message files... MAILER used to delete them.
11 by RBW on 16-Aug-85
Checkpoint the message after each local recipient receives mail. This
solves the problem of large address lists getting duplicate messages if
the work request is defered for some reason (i.e. a recipient is over
12 by RBW on 20-Aug-85
Update ipcf header HDR_ID field correctly. Multiple page IPCF packets
13 by RBW on 21-Aug-85
Stop clobbering IPCF hdr_status field on errors, and assorted other
places. Make sure its initialized correctly on "continuation" packets.
14 by RBW on 21-Aug-85
Bump BASIC_MEMORY from 5000 to 15000. This may minimize recent
15 by RBW on 22-Aug-85
Correctly remove recipients from recipient list after local delivery.
This was causing at least some of the Memory Management/Illegal
16 by RBW on 22-Aug-85
Fix "off by one bug" introduced in previous edit...
17 by RBW on 26-Aug-85
Fix bugs in MX$COMMUNICATE routine which caused MX to crash when trying
to send back mail telling about errors.
20 by RBW on 28-Aug-85
Bump timeout value in READ_MESSAGE macro from 60 Seconds to 1800
Seconds so messages don't get doubled up by the SMTP protocol.
21 by RBW on 28-Aug-85
When the file open fails for a MAIL.TXT file, check to see if the error
is OPNX9 - Invalid Simultaneous Access. If so, defer the message.
22 by RBW on 28-Aug-85
Add VRSTR macro to this module and define global symbol VERSTR which is
an ASCIZ string containing our version number.
23 by RBW on 28-Aug-85
Modify MX$COMMUNICATE routine to include MX's version number in
messages that get mailed from POSTMASTER to SENDER.
24 by RBW on 29-Aug-85
Only checkpoint the message after each work-request as opposed to
checkpointing after every recipient.
25 by RBW on 29-Aug-85
Fix length bug in TOPS20 get_name routine which caused illegal
character in filename failures on MAIL.TXT.1
26 by RBW on 30-Aug-85
Add NW$ERR and S2$ERR to error table for MAIL-11.
27 by RBW on 4-Sep-85
Turn off CF%NUD bit on last call to CHFDB jsys in the CLOSE_FILE
routine. This will ensure that EOF gets broadcast to other systems in
a CFS cluster.
30 by RBW on 10-Sep-85
Added error logging. MX now creates a log file MX:MX.LOG. Also added
code to ChecKPoint this file periodically if necessary.
31 by RBW on 10-Sep-85
Change the log routine to do a write to the error log. Call the log
routine for every error processed through the error processor or the
error condition handler.
32 by RBW on 11-Sep-85
Change the $TRACE macro to write to the log file rather than issue
33 by RBW on 11-Sep-85
Fix off by one bug in the MX$COMMUNICATE routine which caused MX to
tell MS that the message from POSTMASTER was longer than it really was.
34 by RBW on 12-Sep-85
Open the log file for append if the file exists.
35 by RBW on 12-Sep-85
Don't fail if there's no file to initialize the Local domain from. Use
the global NODAM...
36 by RBW on 12-Sep-85
Module: MXERR.REQ, MXLCL
Clean up error message LS$INN.
37 by RBW/JR on 13-Sep-85
Module: NETTAB.MAC, MXDCNT, created SENVAX & LISVAX
Add support for MAIL-11.
40 by RBW/SM on 17-Sep-85
Miscellaneous bug fixes to get MAIL-11 & SMTP to work together in the
41 by RBW on 18-Sep-85
Cosmetic changes to error strings so the log file looks better.
42 by RBW on 18-Sep-85
Clean up the "no message file" error message.
43 by RBW on 24-Sep-85
Module: NMUT20.R36, NMUNET
Correctly handle the case of a VAX sending an empty record during the
MAIL-11 protocol...This prevents the MAIL-11 listener from hanging when
an empty record is sent...
44 by RBW on 2-Oct-85
Fix off by one bug in LOG routine. This caused nulls to get written to
the log file after each message.
45 by RBW on 2-Oct-85
Add routines MX$COPY_FILE and MX$BUILD_REPAIR_SPEC. These are unused
at this time, but will be required for new support of MS's repair
46 by RBW on 2-Oct-85
Change the check for system mail. It is now done in
MX$VALIDATE_LOCAL_USER. It returns -1 if it is for SYSTEM. The local
server performs a privilege check. All other servers will fail on mail
to SYSTEM. This change allows PS:<SYSTEM> to be FILES-ONLY and still
be a valid user.
47 by RBW on 3-Oct-85
Clean up S2$ERR and NW$ERR for MAIL-11.
50 by RBW on 3-Oct-85
Remove recipients who received mail via decnet servers for REJECTed or
51 by RBW on 9-Oct-85
Change the way the MAIL-11 listener's and sender's handle rejected
recipients. It no longer involves aborting the link each time an
invalid recipient is encountered...
52 by RBW on 10-Oct-85
Fix envelope file parser which caused MX to trash the RNOD field of the
52-1 BY RBW ON 14-OCT-85
CHECK TO SEE IF FLAGS ARE BEING RETURNED IN LEFT HALF OF AC1 AFTER
GTJFN. IF SO, THIS COULD BE WHAT'S TRASHING DIRECTORY QUOTAS. (DELF
JSYS IN MX$DELETE_FILE)
53 by RBW on 16-Oct-85
Increase the number of MAIL-11 Listeners from 1 to 6.
54 by RBW on 19-Oct-85
Revisit edit 43. We weren't always detecting nullbytes correctly.
55 by RBW on 22-0ct-85
Put TRACE_ALWAYS macros to log messages coming and going.
56 by SM on 23-Oct-85
Fix off by one bug which caused NULs at the end of SMTP messages.
57 by RBW on 23-Oct-85
Place call to NMU$SCHED_PAUSE after the SOUTR in the WRITE_MESSAGE
macro, and after the SOUT in the WRITE_STRING macro. This will help
the IPCF listener give better response if MAIL-11 is sending long mail
60 by JR on 24-Oct-85
Fix various cases where LISVAX and SENVAX were doing the wrong xlation
from SMTP to MAIL-11 and vice versa. Also, stop removing quotes from
VAX personal names. Also, accomodate sender strings of the form
USERNAME, in addition to the standard USERNAME@NODE.
61 by JR on 24-Oct-85
Stop stripping quotes, and converting underscores to spaces. Thats
what we get for trying to do what VMAILR does...
62 by RBW on 25-Oct-85
Fix several bugs in the destination string parser. In particular, MX
will now correctly parse quoted strings, usernames with no @NODE at the
end, as well as @N1:USER@N2 and @N1,@N2,@NN:USER@NP1. Quoted strings
are allowed anywhere a username may go.
63 by JR on 28-Oct-85
Fix off-by-one bug in edit 61 which caused REPLY'ing on a VAX to win a
64 by RBW on 29-Oct-85
Add support for handling SUBJECT strings. In particular, add routine
GETSUB to MXDCNT, add record type 4 (rec_subj) in MXLCL.REQ, define
msg_subject_string in MXQMAN.REQ, copy the string from the IPCF packet
in MXLCL, and delete the string as part of cleanup in MXQMAN.
65 by JROSSELL on 29-Oct-85
Use new subject string code when sending to VAXEN. In no case should
we use "Mail from a TOPS node" as the subject.
66 by RBW on 29-Oct-85
Swap the ADJSP P,-3 and the JUMPLE T1,SFERR so that the JUMPLE comes
first. (ADRFAI:+11) This is because the code at SFERR: has its own
ADJSP! Consequently, the stack gets corrupted, and bizarre things
start to happen.
67 by RBW on 30-Oct-85
Make SCAN_PACKET more defensive about packets. It will now complain
about Invalid Header Types and Invalid Record Types. These 2 errors
were added to the error table in MXERR.REQ. In addition, I changed
MX$ERROR_HANDLER slightly. The severity code severe sets the message
to be canceled, but does not do a SETUNWIND.
70 by JR on 1-Nov-85
Fix various bugs in the listener. The major change is when someone on
a vax sends to N1::N2::N3::USER. Instead of turning that into the SMTP
routing address (@N1,@N2:USER@N3), we now just turn it into USER@N3.
MS cannot parse the routing address. Minor bugfixes in the sender:
Remove extraneous NULs from the "Deliver by TOPS Message Services"
message, and fix stack corruption problem.
71 by RBW on 4-Nov-85
Add call to CLSFIL during error paths. Somehow this got dropped during
the recent edits.
72 by JR on 12-Nov-85
Don't use the NODE% jsys to get the local node name. The local node
name is stored as a 7 bit asciz string at location NODNAM. (NODNAM is
in the MXQMAN module)
73 by RBW on 20-Nov-85
Add routine COPY_ASCIZ. Use this routine instead of COPY_STRING in
code called by SCAN%P. This makes SCAN%P much less sensitive to length
errors in its data packet.
74 by RBW on 20-Nov-85
Fix "dot" problem in call to MX$DATA_ADD_NODE if host file did not
exist for the local domain. (The "dot" needed to be removed...)
75 by RBW on 20-Nov-85
Change the unique file name from DSK:unique-name to MX:unique-name.
76 by RBW/JR on 20-Nov-85
Fix erroneous CONNECT_BLOCK_SIZE. It was set as either 40 or 50. It
should be 64.
77 by RBW on 20-Nov-85
Miscellaneous bug fixes relating to tops-10.
100 by RBW on 21-Nov-85
Perform a RLJFN after an abort close.
101 by RBW on 21-Nov-85
Change the way the MX$RECOVERY routine works. Now it builds a linked
list of filespecs. This was done because on TOPS-20, GNJFN breaks when
the file gets deleted. Other solutions resulted in complicated
102 by JR on 21-Nov-85
MX will no longer make any translations on address strings. The
translation table has been completely removed.
103 by RBW on 21-Nov-85
Back out some of the protocol level 3 support that got inadvertantly
included in this module.
104 by JR on 22-Nov-85
Put back the upper case conversion. VMS can't deal with the lowercase
usernames. This seems like a VMS bug to me... Under no circumstances
do we change any characters other than "a" - "z".
105 by RBW on 26-Nov-85
Enhance the file parser to deal with /INVALID switch, and routing
strings. The DB%VD8 (MX$DATA_VALIDATE) now returns 1/LH = address of
asciz routing string,, RH = domain id.
106 by RBW on 26-Nov-85
Call routine ROUTE_MESSAGE to put the routing string into the work
request block. This does not yet deal with multiple routing strings.
In addition, change NETTAB to use DECNET validation instead of FILE
validation. This means that at startup, DCN-HOSTS is read if it
exists, and other nodes are validated by the monitor.
107 by JR on 27-Nov-85
Fix bug in case conversion of routing strings which caused syntax
errors from VMS.
110 by RBW on 3-Dec-85
During DEFER processing, call MX$FILE_CLOSE if logfile has changed.
Set MXLOGF to 0. In LOG, if MXLOGF = 0 then do a MX$FILE_OPEN.
111 by RBW on 6-Dec-85
Store the date and time the node database gets initialized. During
DEFER processing, check each node file to see if it has changed. If
so, reinitialize the domain. Changes had to be made to the database
init routines so that this would work. The routine to return the
last-write-date of a file was put in MXLCL. We should probably move
all of the miscellaneous utility routines to their own module.
112 by RBW on 9-Dec-85
Clean up use of TTMSG. Make "New message-of-the-day available" message
appear for system mail. (TOPS-20 Only)
113 by RBW on 10-Dec-85
Change "New message of the day available" to "New SYSTEM mail
114 by RBW on 11-Dec-85
In PAR_WORK_REQUEST (part of RECOVERY processing) call PARSE_RCPT to
get the various pointers set up correctly. This prevents the bug that
caused No such user errors from recovered messages.
115 by RBW on 11-Dec-85
Removed the line of "="s that MX used to write at the end of each
116 by RBW on 11-Dec-85
Cleaned up the NOQuota message...
117 by RBW on 12-Dec-85
Rename the message file to be name.MX to indicate that MX has queued
the message. If there were errors, and REPAIR can be used to fix the
message, rename the message file to be name.RPR.
120 by RBW on 17-Dec-85
Fix change_ext to handle filenames with T20 subdirectories.
121 by JR on 7-Jan-86
Add dashes at the end of incoming MAIL-11 messages to be consistant
with messages originating from MS.
122 by RBW on 21-Jan-86
Change test after RCDIR jsys in GET_QUOTA routine. This fixes a very
rare case where the quota check does not correctly occur for system
mail. In particular, if POBOX:<SYSTEM> is FILES-ONLY, and some user is
over quota with mail queued for him, then mail for SYSTEM picks up his
quota, the quota check fails, and the SYSTEM mail would be queued
waiting for the quota problem to be resolved. The old test would not
perform the GTDAL jsys if the directory was FILES-ONLY.
123 by RBW on 21-Jan-86
Do a RLJFN if the OPENF fails. Also, call routine CLOSE_FILE if the
SIZEF fails (both in routine OPEN_FILE). This should prevent MX from
collecting JFNs on file open failures...
124 by RBW on 4-Feb-86
Modules: MXERR.REQ, MXLCL.REQ, MXQMAN.REQ, MXUFIL.REQ, MXDATA, MXERR,
MXLCL, MXQMAN, MXUFIL, NEWT10.B36, MXUT10.MAC
Moved many of the utility routines from MXQMAN and MXLCL to MXUFIL.
Rewrote much to the TOPS-10 specific code for the file_open routine,
ENQ/DEQ code, added code to MXUT10.MAC to create/delete default
search-lists, and rewrote the TOPS-10 side of APPEND_MAIL to
accommodate all this stuff. Also fixed a plethora of minor little bugs
as they came up. This edit is simply a merge of the last 3 weeks T10
125 by RBW on 10-Feb-86
Fixed envelope parser bug caused by bit 35 being lit.
126 by RBW on 10-Feb-86
Fixed error path for the file rename code. If a rename failure occurs,
MX will just go ahead and use the unrenamed files to deliver the mail.
127 by RBW on 10-Feb-86
Change the read message routine to handle randomly lost EOM bits. A
side affect is that we should now be able to handle infinite decnet
messages with multiple reads.
130 by RBW on 11-Feb-86
Module: SMTLIS, LISVAX, MXLCL
Change the call to SCAN%P so that SCAN%P knows that this is a decnet
listener. This prevents MAIL for SYSTEM from coming in over the net.
Also fix bug in MX$VALIDATE_LOCAL_USER.
131 by RBW on 11-Feb-86
Module: MXUFIL, MXLCL, MXERR
Fix the case of an empty message file causing MX to win an ILL. MEM.
REF. Return an error message to the sender.
132 by RBW on 13-Feb-86
Change "DCN-HOSTS.TXT" to "DNHOST.TXT" for TOPS-10 compatibility.
133 by RBW on 13-Feb-86
Module: MXQMAN, NETTAB, NMUT20.MAC
Change "MX:" to "UPS:" for TOPS-10 compatibility.
134 by SM/RBW on 13-Feb-86
Module: SMTLIS, SMTSEN
Change SMTP Listner/Sender to buffer data rather than send it line by
line. Also, the sender will now only change the state of a work
request once. This solves the SMTP multiple messages bug which was
caused by the link going away too quickly after the message was
delivered. The sender noted that the link went away and requeued the
already delivered message.
135 by CA/SM on 13-Feb-86
Module: SMTLIS, SMTSEN, NETT20.B36
Change the SMTP listener/sender to use a named object (MX-LISTENER,
MX-SENDER) instead of object 200.
136 by JR on 14-Feb-86
The VAX sender now tells the MAIL-11 listener at NODE that USER@NODE is
USER instead of NODE::USER. The VMS systems don't seem to care either
way, but NETMAI on TOPS10 sure does!
137 by RBW on 15-Feb-86
Module: MXERR.REQ, MXLCL, MXQMAN
Clean up some error strings, and add code to support the new repair
command. Mail from POSTMASTER now adds the message "You may use the
command "REPAIR nnnn" to repair this message", where nnnn are the
digits required by the REPAIR command to find MSnnnn.RPR.
140 by RBW on 17-Feb-86
Module: NETTAB.MAC, MXQMAN.REQ, MXDCNT
The number of SMTP/MAIL-11 listeners to start up is now determined in
NETTAB.MAC. This can be changed with out recompiling by poking NSMTP
for the number of SMTP listeners, and NVM11 for the number of MAIL-11
141 by CJA on 19-Feb-86
Module: NEWT10.B36, MXUFIL.REQ
Light the "new mail" bit when delivering Tops-10 Mail.
142 by CJA on 19-Feb-86
Return the node number of undefined nodes which send mail. Tops-10
ONLY. Tops-20 requires a monitor patch. Someday, perhaps...
143 by RBW on 21-Feb-86
Add privilege check. Stop program if it fails...
144 by CJA on 26-Feb-86
Module: MXUFIL, NEWT10.B36, MXUT10.MAC, MXUFIL.REQ
Perform file operations "ON BEHALF OF" the recipients PPN (Tops-10
145 by CJA on 26-Feb-86
Fix MX$FILE_LENGTH bug. This amounted to an almost total rewrite of
146 by RBW on 3-Mar-86
Make sure KLEANUP gets called. It wasn't if the user was over quota.
147 by RBW on 3-Mar-86
Put dashes at the end of the postmaster message. (CRLF too!)
150 by CJA on 7-Mar-86
Module: NMUIPC, MXLCL
Use a system pid for MX on TOPS-10.
151 by CJA on 7-Mar-86
Perform file operations "in behalf of" the recipient/sender's ppn.
Also fix file length routine errors.
152 by RBW on 10-Mar-86
Test for "creating logical link" errors during recipient confirmation.
153 by RBW on 10-Mar-86
By default, put the local node in the database even if it is omitted
from LCHOST.TXT. If they really don't want it there, they can include
it with the /INVALID switch applied...
154 by RBW on 11-Mar-86
Module: MXDATA, MXHOST, MXDCNT, MXQMAN.REQ, SENVAX
Implement the /STRIP switch.
155 by RBW/JR on 11-Mar-86
Quote the Sender's name if it contains "special" characters... "@" in
156 by RBW on 13-Mar-86 QAR 907001
In PARSE_RECIPIENT, if the username is in quotes ("foo"@bar), set the
username pointer past the leading quote and subtract 2 from the length
of the username. This fixes the case where MX validates the local user
as POBOX:<"FOO.BAR"> which always fails...
In MX$VALIDATE, ignore quotes. This insures network mail gets
157 by RBW on 13-Mar-86 QAR 907000,907006
Module: MXLCL, LISVAX, SENVAX
LISVAX and SENVAX now call SCAN%P with -1,,address-of-string in the UID
parameter. This causes the string to be displayed in the log file
rather than the random garbage the occasionally appears there.
160 by RBW on 20-Mar-86 QAR 907008
Module: NETTAB.MAC, MXLCL, MXDCNT
Implement settable retry timers for local mail and decnet mail.
DEFINE VRSTR(CS,VR,MN,EL) <
IFE CS, <IFE MN, <ASCIZ /VR'('EL')/>
IFN MN, <ASCIZ /VR'.'MN'('EL')/>>
IFN CS, <IFE MN, <ASCIZ /VR'('EL')-'CS/>
IFN MN, <ASCIZ /VR'.'MN'('EL')-'CS/>>>
CUSTVR==0 ;CUSTOMER VERSION
DECVER==1 ;DEC VERSION
DECMVR==0 ;DEC MINOR VERSION
DECEVR==160 ;DEC EDIT LEVEL
.JBVER: EXP MXVER
COPYRIGHT (C) 1985 BY
Digital Equipment Corporation
All Rights Reserved