{y MX041.A`MX041.ABACKUP/INTERCHANGE/BLOCK=8192 KITINSTAL.COM,MX041.RELEASE_NOTES,MX_VERSION_TEST.ALPHA_OBJ,MX_VERSION_TEST.OBJ,MX_INSTALLING_VERSION.DAT,[-.COMMON]COMMON.OLB,[-.COMMON]COMMON.ALPHA_OLB SYS$DISK:[]MX041.A/SAVE GOATHUNTER  V6.1 _ALPHA::  _ALPHA$DKB100: V6.1  *[MX.KIT]KITINSTAL.COM;10+,./ 4i- 0123KPWO56!A7V&89GHJ$! [MX.KIT]KITINSTAL.COM$!/$! KITINSTAL procedure for installing MX V4.1.D$! Copyright 1993,1994 by MadGoat Software. All rights reserved.$!0$! 22-OCT-1991 A2.4 Madison T2.4 pre-alpha.?$! 28-OCT-1991 B2.4 Madison Let user pick what to install.2$! 15-NOV-1991 T3.0 Madison Now at T3.0 beta.=$! 22-NOV-1991 V3.0 Madison Add .TEMPLATE files for MLF.7$! 19-FEB-1992 X3.1 Madison Banner changes. XSMTP.@$! 11-FEB-1993 V3.2 Goatley Added FLQ_DIR subdirs, MXALIAS.?$! 11-MAR-1993 V3.3 Goatley Added support for OpenVMS AXP.D$! 16-APR-1993 V3.3-1 Goatley Clean up AXP stuff a little more.M$! 16-JUN-1993 V3.3-1 Wing Prompt for multiple instances for agents.5$! 28-MAR-1994 V4.0 Goatley Updated for MX V4.0.5$! 22-MAY-1994 V4.1 Goatley Updated for MX V4.1.I$! 8-JUN-1994 V4.1-1 Altmayer Use MX_TIMEZONE, Prompt for auto-purge$!%$ ON CONTROL_Y THEN GOTO MX_CONTROL_Y$ ON WARNING THEN GOTO MX_FAIL$!1$ IF P1 .EQS. "VMI$_INSTALL" THEN GOTO MX_INSTALL9$ IF P1 .EQS. "VMI$_POSTINSTALL" THEN GOTO MX_POSTINSTALL$ EXIT VMI$_UNSUPPORTED$!$MX_CONTROL_Y:5$ IF F$TRNLNM ("MX_STAR") .NES. "" THEN CLOSE MX_STAR5$ IF F$TRNLNM ("MX_STMP") .NES. "" THEN CLOSE MX_STMP5$ IF F$TRNLNM ("MX_LTMP") .NES. "" THEN CLOSE MX_LTMP5$ IF F$TRNLNM ("MX_LOGI") .NES. "" THEN CLOSE MX_LOGIK$ IF F$TRNLNM ("MX_DEVICE", "LNM$PROCESS") .NES. "" THEN DEASSIGN MX_DEVICEG$ IF F$TRNLNM ("MX_ROOT", "LNM$PROCESS") .NES. "" THEN DEASSIGN MX_ROOT@$ IF F$TRNLNM ("MX_INSTALL_ROOT", "LNM$PROCESS") .NES. "" THEN - DEASSIGN MX_INSTALL_ROOTL$ IF F$TRNLNM ("MX_FLQ_SHR","LNM$PROCESS") .NES. "" THEN DEASSIGN MX_FLQ_SHRD$ IF F$TRNLNM ("MX_SHR","LNM$PROCESS") .NES. "" THEN DEASSIGN MX_SHRD$ IF F$TRNLNM ("MX_MSG","LNM$PROCESS") .NES. "" THEN DEASSIGN MX_MSGR$ IF F$TRNLNM ("NETLIB_SHRXFR","LNM$PROCESS") .NES. "" THEN DEASSIGN NETLIB_SHRXFR$ VMI$CALLBACK CONTROL_Y$! $MX_FAIL:$ MX_STATUS == $STATUS;$ IF F$TRNLNM ("MX_OLD_FLQ") .NES. "" THEN CLOSE MX_OLD_FLQ5$ IF F$TRNLNM ("MX_LOGI") .NES. "" THEN CLOSE MX_LOGI5$ IF F$TRNLNM ("MX_STAR") .NES. "" THEN CLOSE MX_STAR5$ IF F$TRNLNM ("MX_STMP") .NES. "" THEN CLOSE MX_STMP5$ IF F$TRNLNM ("MX_LTMP") .NES. "" THEN CLOSE MX_LTMPK$ IF F$TRNLNM ("MX_DEVICE", "LNM$PROCESS") .NES. "" THEN DEASSIGN MX_DEVICEG$ IF F$TRNLNM ("MX_ROOT", "LNM$PROCESS") .NES. "" THEN DEASSIGN MX_ROOT@$ IF F$TRNLNM ("MX_INSTALL_ROOT", "LNM$PROCESS") .NES. "" THEN - DEASSIGN MX_INSTALL_ROOTL$ IF F$TRNLNM ("MX_FLQ_SHR","LNM$PROCESS") .NES. "" THEN DEASSIGN MX_FLQ_SHRD$ IF F$TRNLNM ("MX_SHR","LNM$PROCESS") .NES. "" THEN DEASSIGN MX_SHRD$ IF F$TRNLNM ("MX_MSG","LNM$PROCESS") .NES. "" THEN DEASSIGN MX_MSGR$ IF F$TRNLNM ("NETLIB_SHRXFR","LNM$PROCESS") .NES. "" THEN DEASSIGN NETLIB_SHRXFR$ EXIT 'MX_STATUS$!$! $MX_INSTALL:$!$ IF P2 THEN SET VERIFYD$ VMI$CALLBACK TELL_QA "MX KITINSTAL has TELL_QA callbacks enabled."E$ VMI$CALLBACK SET POSTINSTALL YES !Do queue conversion after install$!$!$ MX_SAY := WRITE SYS$OUTPUT$ LINK := LINK/NOUSERLIBRARY$!$! Determine Architecture type$!!$ IF f$getsyi("HW_MODEL").lt.1024$ THEN$ MX_VAX = 1$ MX_AXP = 0$ NETLIB_VAX = 1$ NETLIB_AXP = 0$ MX_REQD_VMSVER = "V5.0"$ MX_REQD_VMSVER_OLD = "050"C$ VMI$CALLBACK CHECK_VMS_VERSION MX_VMSVEROK 'MX_REQD_VMSVER_OLD'$ IF .NOT. MX_VMSVEROK$ THEN$$ VMI$CALLBACK MESSAGE E VMSVER -F "This product requires VMS version ''MX_REQD_VMSVER' to run.'$ EXIT VMI$_FAILURE $ ENDIF$ OBJ = ".OBJ"$ OPT = ".OPT"$ OLB = ".OLB"$ ELSE$ MX_VAX = 0$ MX_AXP = 1$ NETLIB_VAX = 0$ NETLIB_AXP = 1$ OBJ = ".ALPHA_OBJ"$ OPT = ".ALPHA_OPT"$ OLB = ".ALPHA_OLB"$ ENDIF$!?$ VMI$CALLBACK CHECK_NET_UTILIZATION MX_ENOUGHDISK 2500 30 2500/$ IF .NOT. MX_ENOUGHDISK THEN EXIT VMI$_FAILURE$!*$ VMI$CALLBACK SET SAFETY CONDITIONAL 4000$!)$ MX_INSTALL_NODE = F$GETSYI ("NODENAME")$!4$ OPEN/READ MX_TMP VMI$KWD:MX_INSTALLING_VERSION.DAT#$ READ MX_TMP MX_INSTALLING_VERSION$ CLOSE MX_TMP$! Pull off (VAX) or (AXP)A$ mx_installing_version = f$element(1," ", mx_installing_version)$!$ TYPE SYS$INPUT:< Message Exchange V4.1 Installation ProcedureE Copyright 1993,1994, MadGoat Software. All Rights Reserved.@ Redistribution for no commercial gain is permitted.@ DEC, VMS, OpenVMS, VAX, AXP, DECnet, and VMScluster> are trademarks of Digital Equipment Corporation.> MultiNet  is a registered trademark of TGV, Inc.> LISTSERV is a trademark of L-Soft International.B TCPware is a trademark of Process Software Corporation.D Jnet is a registered trademark of Wingra Technologies, Inc.N WIN/TCP and Pathway are registered trademarks of The Wollongong Group, Inc.$ mx_flq_file = ""K$ IF (F$TRNLNM ("MX_FLQ_DIR","LNM$FILE_DEV",,"EXECUTIVE") .NES. "") .and. -6 (F$SEARCH ("MX_FLQ_DIR:SYSTEM_QUEUE.FLQ_CTL").nes."")6$ THEN mx_flq_file = "MX_FLQ_DIR:SYSTEM_QUEUE.FLQ_CTL"$ ELSEH$ IF (F$TRNLNM ("FLQ_DIR","LNM$FILE_DEV",,"EXECUTIVE") .NES. "") .and. -? (F$SEARCH ("FLQ_DIR:SYSTEM_QUEUE.FLQ_CTL").nes."") THEN -. mx_flq_file = "FLQ_DIR:SYSTEM_QUEUE.FLQ_CTL"$ ENDIF$ mx_old = mx_flq_file.nes."" $ IF mx_old$ THEN type sys$inputF********************************************************************** IMPORTANT!!> The MX message queueing subsystem was completely rewrittenD for MX V4.0. The indexed file has been replaced by a sequentialA file, which MX accesses using block I/O, providing tremendous" gains in MX queue performance.E Unfortunately, the old queue format cannot easily be converted toC the new queue format, and this installation makes no attempt toE convert it. Instead, a new MX message queue file will be createdB and any messages currently existing in the queue will be lost.B If the MX queue is not empty and you cannot afford to lose anyA messages in the queue, do *NOT* continue this installation at this time.F**********************************************************************$ VMI$CALLBACK ASK mx_go_on -9 "Do you wish to continue with this installation" "YES" B+$ IF .not.mx_go_on then EXIT VMI$_FAILURE$ ENDIF$ VMI$CALLBACK SET PURGE ASK$!)$ mx_cluster = f$getsyi("CLUSTER_MEMBER")$ if MX_CLUSTER$ then type sys$input! Mixed VAX and AXP VMSclusters! -----------------------------E This system is part of a VMScluster. If this VMScluster includesC both VAX and AXP systems that will share the MX directories andB configuration files, it will be necessary to install MX twice:? once on a VAX system and once on an AXP system. It is only> necessary to install the FULL MX kit on one type of system (VAX or AXP).? The dual installation is required because the MX images areC linked during installation. However, when installing MX on theC second system, you may elect to install only the executables tP5iK MX041.A [MX.KIT]KITINSTAL.COM;10iLo% avoid the need to reconfigure MX.F The full MX installation MUST be installed from one of the systemsB for MX to work. During that installation, information must beB supplied pertaining to which nodes will run which agents, etc.#$ VMI$CALLBACK ASK MX_AXP_AND_VAX -@ "Does this VMScluster include both VAX and AXP systems" "NO" B0$ if .not.mx_axp_and_vax then goto MX_BUILD_MENU$ type sys$inputA MX AXP and MX VAX can share a common MX directory tree. When@ supplying MX directory information, be sure a common disk isE specified. Avoid using logical names like SYS$SYSDEVICE, because7 the two types of systems cannot share system disks!F If you elect to install NETLIB, you should specify that the NETLIB@ images should be installed in MX_ROOT:[EXE] for VAXen and in( MX_ROOT:[ALPHA_EXE] for AXP systems.$$ VMI$CALLBACK ASK MX_AXP_AND_VAX1 -F "Will the VAX and AXP systems share a common MX directory" "YES" B1$ if .not.mx_axp_and_vax1 then goto MX_BUILD_MENU $ if mx_vax$ then mx_system_type = "VAX"$ mx_other_type = "AXP"$ mx_article = "an"$ else mx_system_type = "AXP"$ mx_other_type = "VAX"$ mx_article = "a"$ endifF$ clustquest = f$fao("Has MX !AS already been installed on !AS !AS "+-3 "system in this cluster", mx_installing_version,- mx_article, mx_other_type)9$ VMI$CALLBACK ASK MX_AXP_AND_VAX2 "''clustquest'" "NO" B$ if mx_axp_and_vax2-$ then VMI$CALLBACK ASK MX_INSTALL_EXE_ONLY -K "Do you wish to install only the ''mx_system_type' executables" "YES" B$ else mx_install_exe_only = 0$ endif$!.$ if mx_axp_and_vax2 .and. mx_install_exe_only$ then mx_say ""H$ mx_say " Only the ''mx_system_type' executables will be installed" $ mx_say ""=$ VMI$CALLBACK ASK mx_axp_and_vax3 "Is this correct" "YES" B7$ if .not.mx_axp_and_vax3 then mx_install_exe_only = 0$ endif$ endif !IF mx_cluster$! $!%$! Build the tables for menu choices.$!$MX_BUILD_MENU:D$ if f$type(mx_install_exe_only).eqs."" then mx_install_exe_only = 0J$ if f$type(mx_need_to_convert_flq).eqs."" then mx_need_to_convert_flq = 0 $ IF MX_AXP$ THEN$ MX_OPT_NAMES = "?" +- ":Base MX software"+- ":NETLIB network support"+- ":SMTP interface support"+- ":Jnet interface support"+-" ":SMTP-over-DECnet support"+-% ":Site-provided interface support"+-& ":Mailing List/File Server support"+- ":LISTSERV interface support"+- ":Documentation"+- ":Example files and programs"+-' ":User-contributed files and programs"B$ MX_OPTS = "?:MX_DO_BASE:MX_DO_NETLIB:MX_DO_SMTP:MX_DO_JNET:"+-D "MX_DO_DNSMTP:MX_DO_SITE:MX_DO_MLF:MX_DO_LSV:MX_DO_DOC:"+- "MX_DO_EXAMPLES:MX_DO_CONTRIB"$ MX_DO_UUCP = " "$ MX_DO_XSMTP = " "$ ELSE$ MX_OPT_NAMES = "?" +- ":Base MX software"+- ":NETLIB network support"+- ":SMTP interface support"+- ":Jnet interface support"+- ":UUCP interface support"+- ":SMTP-over-DECnet support"+- ":SMTP-over-X.25 support"+-% ":Site-provided interface support"+-& ":Mailing List/File Server support"+- ":LISTSERV interface support"+- ":Documentation"+- ":Example files and programs"+-' ":User-contributed files and programs"M$ MX_OPTS = "?:MX_DO_BASE:MX_DO_NETLIB:MX_DO_SMTP:MX_DO_JNET:MX_DO_UUCP:"+-F "MX_DO_DNSMTP:MX_DO_XSMTP:MX_DO_SITE:MX_DO_MLF:MX_DO_LSV:"+-* "MX_DO_DOC:MX_DO_EXAMPLES:MX_DO_CONTRIB"$ ENDIF !IF MX_AXP $ MX_I = 0$MX_INIT_LOOP:$ MX_I = MX_I + 1'$ MX_OPT = F$ELEMENT (MX_I,":",MX_OPTS)0$ IF MX_OPT .EQS. ":" THEN GOTO MX_END_INIT_LOOP$ 'MX_OPT = " "$ GOTO MX_INIT_LOOP$!$MX_END_INIT_LOOP:$!$ MX_MUST_DO_BASE = 0>$ IF F$TRNLNM ("MX_ROOT","LNM$FILE_DEV",,"EXECUTIVE") .EQS. ""$ THEN$ MX_DO_BASE = "*"$ MX_MUST_DO_BASE = 1$ ELSE $ if mx_axp!$ then mx_exe_dir = "ALPHA_EXE"$ mx_obj = "ALPHA_OBJ"$ else mx_exe_dir = "EXE"$ mx_obj = "OBJ"$ endif !mx_axp>$ IF F$SEARCH ("MX_ROOT:[''mx_exe_dir']MX_SHR.EXE") .EQS. ""$ THEN$ MX_DO_BASE = "*"$ MX_MUST_DO_BASE = 1$ ELSE0$ define mx_shr mx_root:['mx_exe_dir']mx_shr.exeR$ LINK/EXE=VMI$KWD:MX_VERSION_TEST VMI$KWD:MX_VERSION_TEST.'mx_obj',SYS$INPUT:/OPT MX_SHR/SHARE8$ DEFINE/USER MX_SHR MX_ROOT:['mx_exe_dir']MX_SHR.EXE8$ DEFINE/USER MX_MSG MX_ROOT:['mx_exe_dir']MX_MSG.EXE $ RUN VMI$KWD:MX_VERSION_TEST+$ mx_version = f$element (1," ",mx_version).$ IF MX_VERSION .NES. MX_INSTALLING_VERSION $ THEN$ MX_DO_BASE = "*"$ MX_MUST_DO_BASE = 1 $ ENDIF$ ENDIF !IF F$SEARCH....$ ENDIF !IF F$TRNLNM$!$ GOSUB FIND_AGENTS_TO_UPDATE$MX_SELECT_MENU:$ TYPE SYS$INPUT:- Component SelectionE Select the MX components you wish to install from the menu below.C An asterisk appears next to the packages that have already beenE selected. You can remove a package from the list by selecting itD again. You may enter more than one selection by separating your choices with commas. $ MX_M = 0 $MX_SEL_LOOP:$ MX_M = MX_M + 1*$ MX_N = F$ELEMENT (MX_M,":",MX_OPT_NAMES)+$ IF MX_N .EQS. ":" THEN GOTO MX_SELECT_ASK%$ MX_T = F$ELEMENT (MX_M,":",MX_OPTS)9$ IF MX_T .EQS. "MX_DO_BASE" .AND. MX_MUST_DO_BASE THEN - MX_N = MX_N + " (REQUIRED)"9$ MX_SAY F$FAO (" !2UL. [!AS] !AS", MX_M, 'MX_T, MX_N)$ GOTO MX_SEL_LOOP$MX_SELECT_ASK: $ MX_SAY ""+$ MX_SAY F$FAO (" !2UL. Exit", MX_M) $ MX_SAY "" $ MX_SAY ""$!&$ VMI$CALLBACK ASK MX_CHOICE_INPUT -" " Your choice" "''MX_M'" $ MX_I = -1$MX_PARSE_LOOP:$ MX_I = MX_I + 14$ MX_CHOICE = F$ELEMENT (MX_I, ",", MX_CHOICE_INPUT)1$ IF MX_CHOICE .EQS. "," THEN GOTO MX_SELECT_MENU#$ MX_CHOICE = F$INTEGER (MX_CHOICE)-$ IF MX_CHOICE .EQ. MX_M THEN GOTO MX_CONFIRM.$ IF MX_CHOICE .LT. 1 .OR. MX_CHOICE .GT. MX_M$ THEN&$ VMI$CALLBACK MESSAGE E BADCHOICE -D "Choice ''MX_CHOICE' invalid; choices range from 1 to ''MX_M'."$ ELSE.$ MX_T = F$ELEMENT (MX_CHOICE, ":", MX_OPTS)$ IF MX_T .EQS. "MX_DO_BASE"$ THEN-$ IF 'MX_T .EQS. "*" .AND. MX_MUST_DO_BASE $ THEN,$ VMI$CALLBACK MESSAGE E MUSTDOBASE -H "You MUST install the ''MX_INSTALLING_VERSION' base software."$ GOTO MX_PARSE_LOOP $ ENDIF $ ENDIF$ IF 'MX_T .EQS. "*"$ THEN$ 'MX_T = " "$ ELSE$ 'MX_T = "*" $ ENDIFQ$ IF MX_T .EQS. "MX_DO_SMTP" .AND. 'MX_T .EQS. "*" .AND. MX_DO_NETLIB .NES. "*"$ THEN*$ VMI$CALLBACK MESSAGE I WILLDONETLIB -D "Will also install NETLIB network support for SMTP support."$ MX_DO_NETLIB = "*" $ ENDIF$ ENDIF$ GOTO MX_PARSE_LOOP$! $MX_CONFIRM: $ MX_SAY "":$ MX_SAY " You have selected the following components:" $ MX_SAY "" $ MX_CNT = 0 $ MX_M = 0$MX_CONF_LOOP:$ MX_M = MX_M + 1*$ MX_N = F$ELEMENT (MX_M,":",MX_OPT_NAMES))$ IF MX_N .EQS. ":" THEN GOTO MX_CONF_ASK%$ MX_T = F$ELEMENT (MX_M,":",MX_OPTS)$ IF 'MX_T .EQS. "*"$ THEN$ MX_PRI = MX_M$ MX_SAY " ",MX_N$ MX_CNT = MX_CNT + 1$ ENDIF$ GOTO MX_CONF_LOOP$! $MX_CONF_ASK:/$ IF MX_CNT .EQ. 0 THEN MX_SAY " (None)" $ MX_SAY "" $ MX_SAY ""2$ VMI$CALLBACK ASK MX_OK "Is this correct" "YES" B)$ IF .NOT. MX_OK THEN GOTO MX_SELECT_MENU$!*$ MX_CLUSTER = F$GETSYI ("CLUSTER_MEMBER") $ MX_EXPLAINED_CLUSTER_NAMES = 0"$ MX_EXPLAINED_MULTIPLE_AGENTS = 0$!$!$ IF MX_DO_BASE .EQS. "*"$ THEN$ IF .not.MX_INSTALL_EXE_ONLY'$ THEN CREATE VMI$KWD:MX_LOGICALS.DAT.$ OPEN/APPEND MX_LOGI VMI$KWD:MX_LOGICALS.DAT%$ CREATE VMI$KWD:MX_STA} MX041.A [MX.KIT]KITINSTAL.COM;10i}RTUP_INFO.DAT2$ OPEN/APPEND MX_STAR VMI$KWD:MX_STARTUP_INFO.DAT $ ENDIF$!>$ MX_DEF_ROOT = F$PARSE ("MX_ROOT:[000000]",,,,"NO_CONCEAL") $ IF "''MX_DEF_ROOT'" .EQS. "",$ THEN MX_DEF_ROOT = "SYS$SYSDEVICE:[MX.]"$ ELSEI$ MX_DEF_ROOT = F$PARSE ("MX_ROOT:[000000]",,,"DEVICE","NO_CONCEAL")+-E F$PARSE ("MX_ROOT:[000000]",,,"DIRECTORY","NO_CONCEAL")-- "[000000]" $ ENDIF*$ MX_DEF_ROOT = MX_DEF_ROOT - ".]" + "]"$!$ TYPE SYS$INPUT:0 Configuring Base MX Directories and Logicals0 --------------------------------------------G MX places most of its files in a private directory structure. ThisL directory structure can be located on any disk, but the disk must eitherK have disk quotas disabled or sufficient diskquota to hold all of the MX+ images, temporary files, and log files.$!N$ VMI$CALLBACK ASK MX_ROOT "Where should the MX top directory be located?" - "''MX_DEF_ROOT'"$ MX_ROOT = MX_ROOT - "]"E$ MX_TMP = F$PARSE (MX_ROOT+"]",,,,"NO_CONCEAL,SYNTAX_ONLY") - "]["3$ MX_INSTALL_DEVICE = F$PARSE (MX_TMP,,,"DEVICE")%$ MX_INSTALL_ROOT = "MX_DEVICE:"+ -0 F$PARSE (MX_TMP,,,"DIRECTORY") - "]" + ".]"I$ DEFINE MX_DEVICE 'MX_INSTALL_DEVICE'/TRANSLATION=(CONCEALED,TERMINAL)B$ DEFINE MX_INSTALL_ROOT 'MX_INSTALL_ROOT'/TRANSLATION=CONCEALED:$ DEFINE MX_ROOT 'MX_INSTALL_ROOT'/TRANSLATION=CONCEALED$!/$ IF F$SEARCH("''MX_ROOT']*.*").eqs."" then -1$ VMI$CALLBACK CREATE_DIRECTORY USER 'MX_ROOT'] -0 "/OWNER=[1,4]/PROT=(S:RWE,O:RWE,G:RE,W:E)"3$ IF F$SEARCH("''MX_ROOT']EXE.DIR").eqs."" then -14 VMI$CALLBACK CREATE_DIRECTORY USER 'MX_ROOT'.EXE] -0 "/OWNER=[1,4]/PROT=(S:RWE,O:RWE,G:RE,W:E)"9$ IF F$SEARCH("''MX_ROOT']ALPHA_EXE.DIR").eqs."" then -l: VMI$CALLBACK CREATE_DIRECTORY USER 'MX_ROOT'.ALPHA_EXE] -0 "/OWNER=[1,4]/PROT=(S:RWE,O:RWE,G:RE,W:E)"$!$ TYPE SYS$INPUT: I MX uses a file queue directory for storing mail messages. This queuedK directory may be placed with the other MX directories, or may be placedfL on a different disk. The disk on which the queue directory resides mustM also have quotas disabled or must have sufficient system quota to provide * for a backlog of undelivered messages.)$ MX_DEF_QDIR = F$TRNLNM ("MX_FLQ_DIR")aH$ IF "''MX_DEF_QDIR'" .EQS. "" THEN MX_DEF_QDIR = F$TRNLNM ("FLQ_DIR")G$ IF "''MX_DEF_QDIR'" .EQS. "" THEN MX_DEF_QDIR = MX_ROOT + ".QUEUE]"_!$ VMI$CALLBACK ASK MX_FLQ_DIR -3 "Where would you like the MX message queue?" - "''MX_DEF_QDIR'"O*$ IF F$SEARCH("''MX_FLQ_DIR'*.*").eqs."":$ THEN VMI$CALLBACK CREATE_DIRECTORY USER 'MX_FLQ_DIR' -, "/PROT=(S:RWE,O:RWE,G:RE,W)/OWNER=[1,4]" $ ENDIFM"$ define mx_flq_dir 'MX_FLQ_DIR'$!<$ IF f$search("MX_FLQ_DIR:MX_SYSTEM_QUEUE.FLQ_CTL").eqs.""$ THEN TYPE SYS$INPUTE. Selecting the Size of the MX Message Queue. ------------------------------------------C The MX queueing subsystem uses a fixed-size sequential file for@ the MX queue. The size of the file determines the number ofC messages that can be in the queue at any one time. The size ofSB the file can be extended at a later date using the MCP command QUEUE EXTEND.HB For each message, one block is required. To allow up to 5,000D messages to be in the queue at any one time, the queue file must@ be slightly larger than 5,000 blocks. The required file sizeD depends heavily on your site's e-mail traffic. For a workstation@ that normally receives a couple of hundred messages a day, a< queue file of 100 blocks or less is probably sufficient.A For sites with a lot of mail traffic, a size of 5,000--10,000FC blocks is recommended. If disk space is not a problem, you canXD specify as many as 131,072 (128K) messages, which is the maximum$ number MX is designed to handle.$ mx_ask_for_flq_size:"$ VMI$CALLBACK ASK mx_flq_size -; "Maximum number of entries to allow in the queue" "5000" I 3$ if (mx_flq_size.gt.131072).or.(mx_flq_size.lt.10)N$ then mx_say ""D$ mx_say "An invalid queue file size was given; please enter a size"*$ mx_say "between 10 and 131,072 entries." $ mx_say ""D$ goto mx_ask_for_flq_size$ endifB)$ define mx_max_flq_entries 'mx_flq_size'I$ ENDIF_$!6$! Now create the 10 subdirectories used by MX v3.2+.$!$ TYPE SYS$INPUTF MX uses 10 subdirectories under the MX message queue directory forC the actual storage of files. Those directories will be created! now, if necessary.$!H$! Set flag indicating whether or not the FLQ file should be converted.H$! If the [.0] subdirectory exists under MX_FLQ_DIR, then it is assumed3$! that the queue file has already been converted.Q$!D$ mx_move_files_to_subdirs = f$search("''mx_flq_dir'0.DIR").eqs.""K$ mx_need_to_convert_flq = (f$search("''mx_flq_dir'0.DIR").eqs."") .and.- 8 (f$search("''mx_flq_dir'SYSTEM_QUEUE.FLQ_CTL").nes."")G$ if (f$search("''mx_flq_dir'MX_SYSTEM_QUEUE.FLQ_CTL").eqs."") THEN -F mx_need_to_convert_flq = 1 9$ mx_flq_dir2 = mx_flq_dir - "]" + ".'mx_flq_dir_cnt']"V$ mx_flq_dir_cnt = 0$ mx_flq_dir_create_loop:BA$ if f$search("''mx_flq_dir'''mx_flq_dir_cnt'.DIR").eqs."" then - 3 VMI$CALLBACK CREATE_DIRECTORY USER 'MX_FLQ_DIR2' -U, "/PROT=(S:RWE,O:RWE,G:RE,W)/OWNER=[1,4]"%$ mx_flq_dir_cnt = mx_flq_dir_cnt + 1R<$ if mx_flq_dir_cnt .lt. 10 then goto mx_flq_dir_create_loop$!H$! Now make sure we get a proper DEFAULT_PROTECTION ACL on the directory$!3$ MX_qspec = F$PARSE (MX_FLQ_DIR,,,,"NO_CONCEAL") $$ IF MX_qspec .EQS. "" THEN EXIT 0+$ MX_qdev = F$PARSE (MX_qspec,,,"DEVICE"),<$ MX_qdir = F$PARSE (MX_qspec,,,"DIRECTORY") - "][" - "><"$ MX_i = F$LENGTH (MX_qdir)t$MX_Find_Dot_Loop:$ MX_i = MX_i - 11$ IF MX_i .GE. 0$ THENC$ IF F$EXTRACT (MX_i,1,MX_qdir) .EQS. "." THEN GOTO MX_Found_Dota$ GOTO MX_Find_Dot_Loop $ ENDIFM'$ MX_fspec = MX_qdev + "[000000]" + -t9 F$EXTRACT (1,F$LENGTH(MX_qdir)-2,MX_qdir) + ".DIR;1"r$ GOTO MX_Perform_Checki$MX_Found_Dot:D$ MX_fspec = MX_qdev + "[" + F$EXTRACT (1,MX_i-1,MX_qdir) + "]" +-H F$EXTRACT (MX_i+1,F$LENGTH(MX_qdir)-MX_i-2,MX_qdir) + ".DIR;1"$MX_Perform_Check:A$ SET ACL/ACL=(DEFAULT_PROTECTION,S:RWED,O:RWED,G,W) 'MX_fspec' $!$!5$ if MX_INSTALL_EXE_ONLY then goto MX_END_HOST_CONFIGg$!G$! MX_STARTUP_INFO.DAT is read if it already exists. The values in itV3$! are used as defaults for all the prompts below.L$!6$ startup_file = "MX_ROOT:[000000]MX_STARTUP_INFO.DAT"F$ if f$search(startup_file).eqs."" then goto _mx_loop_read_startup_fin'$ open/read mx_star_info 'startup_file'-$ _mx_loop_read_startup_info:TA$ read/error=_mx_loop_read_startup_fin mx_star_info startup_line_8$ startup_line = f$edit(startup_line,"COLLAPSE,UPCASE")9$ agent = f$extract(3,100,f$element(0,":",startup_line))*($ nodes = f$element(1,":",startup_line) $ mx_'agent'_default_nodes = ""$ _mx_node_loop2:3$ if nodes.eqs."" then goto _mx_node_loop2_end $$ part = f$element(0,",",nodes)!$ nodes = nodes - part - ","c#$ node = f$element(0,"=",part)e%$ number = f$element(1,"=",part)c*$ if number.eqs."=" then number = "1"<$ mx_'agent'_default_nodes = mx_'agent'_default_nodes - + node + ","$ if node.nes."*".$ then mx_'agent'_'node'_default = number,$ else mx_'agent'_star_default = number $ endif$ goto _mx_node_loop2$ _mx_node_loop2_end:#$ mx_'agent'_default_nodes = -tM f$extract(0,f$length(mx_'agent'_default_nodes)-1,mx MX041.A [MX.KIT]KITINSTAL.COM;10iq-_'agent'_default_nodes)&$ goto _mx_loop_read_startup_info$ _mx_loop_read_startup_fin:=$ if f$trnlnm("MX_STAR_INFO").nes."" then close mx_star_infow$!$!$!$ TYPE SYS$INPUT:l9 H O S T N A M E S E L E C T I O NG There are two host names you must designate for the "local" host orT cluster.$MX_HOST_NAMES: .$ MX_DEF_FLQ_NODE = F$TRNLNM ("FLQ_NODE_NAME")$ IF MX_DEF_FLQ_NODE .EQS. ""-$ THEN;$ MX_DEF_FLQ_NODE = F$TRNLNM ("SYS$CLUSTER_NODE") - "::"M'$ IF MX_DEF_FLQ_NODE .EQS. "" THEN -s7$ MX_DEF_FLQ_NODE = F$TRNLNM ("SYS$NODE") - "::"g$ ENDIFi$ TYPE SYS$INPUT:e MX Cluster Namec --------------- @ This is a 1-to-6 character name that uniquely identifies theB system (when standalone) or MX Cluster (when in a VMScluster).< This name should generally be the DECnet node name (when? standalone) or DECnet cluster alias (when in a VMScluster).h$!$ ask_for_mx_flq_node:<$ VMI$CALLBACK ASK MX_FLQ_NODE "Enter the MX Cluster Name" - "''MX_DEF_FLQ_NODE'" $ if f$length(mx_flq_node).gt.6i'$ then VMI$CALLBACK MESSAGE E TOOLONG - C "The specified name is too long; please specify 1 to 6 characters"i$ goto ask_for_mx_flq_node$ endif ,$ MX_DEF_MX_NODE = F$TRNLNM ("MX_NODE_NAME")$ TYPE SYS$INPUT:e MX Network Host Name --------------------B This is a 1-to-255 character name that is your "official" host name for E-mail purposes. A For Internet hosts, this should be your Internet domain name.i# (Example: myhost.mycompany.com)@ For BITNET hosts that are not Internet hosts, this should be: your BITNET host name with ".BITNET" added to the end. (Example: MYORG.BITNET)lB For UUCP hosts that are not Internet hosts, this should eitherA be your registered domain name (if you have one) or your UUCPo, node name with ".UUCP" added to the end.6 (Example: myhost.mycompany.com -or- myhost.UUCP)B$ VMI$CALLBACK ASK MX_NODE_NAME "Enter the MX network node name" - "''MX_DEF_MX_NODE'" SMm$!5$ MX_VMSMAIL_NAME = F$TRNLNM ("MX_VMSMAIL_LOCALHOST")iG$ IF MX_VMSMAIL_NAME .EQS. "" THEN MX_VMSMAIL_NAME = "@" + MX_NODE_NAMEm$! $ MX_SAY ""2$ MX_SAY " MX Cluster Name: ", MX_FLQ_NODE3$ MX_SAY " Network Host Name: ", MX_NODE_NAMEe$!3$ VMI$CALLBACK ASK MX_OK "Is this correct" "YES" BD)($ IF .NOT. MX_OK THEN GOTO MX_HOST_NAMES$!>$ WRITE MX_LOGI "MX_FLQ_NODE_NAME\/SYSTEM/EXEC\",MX_FLQ_NODE;$ WRITE MX_LOGI "MX_NODE_NAME\/SYSTEM/EXEC\",MX_NODE_NAMEmF$ WRITE MX_LOGI "MX_VMSMAIL_LOCALHOST\/SYSTEM/EXEC\",MX_VMSMAIL_NAME$!7$ WRITE MX_LOGI "MX_FLQ_DIR\/SYSTEM/EXEC\",MX_FLQ_DIR ?$ WRITE MX_LOGI "MX_ROUTER_DIR\/SYSTEM/EXEC\MX_ROOT:[ROUTER]"b=$ WRITE MX_LOGI "MX_LOCAL_DIR\/SYSTEM/EXEC\MX_ROOT:[LOCAL]"p@$ WRITE MX_LOGI "MX_MCP_HELPLIB\/SYSTEM\MX_DIR:MX_MCP_HELPLIB"D$ WRITE MX_LOGI "MX_ALIAS_HELPLIB\/SYSTEM\MX_DIR:MX_ALIAS_HELPLIB"$!0$ MX_DEF_MX_TIMEZONE = F$TRNLNM("MX_TIMEZONE").$ IF "''MX_DEF_MX_TIMEZONE'" .NES. "" THEN -= WRITE MX_LOGI "MX_TIMEZONE\/SYSTEM/EXEC\",MX_DEF_MX_TIMEZONEe$!.$ IF F$TRNLNM("MX_FLQ_AUTOPURGE_FIN").nes.""$ THEN#$ MX_ENABLE_AUTOPURGE = "YES" $ ELSE"$ MX_ENABLE_AUTOPURGE = "NO" $ ENDIF-$ TYPE SYS$INPUT$ Auto-purging of FINished entries$ --------------------------------E When an MX queue entry has been fully processed, it is marked asuE being "finished" and is left in the queue for a period of time.aE The MX Router or MX FLQ Manager scans the file every 15 minutes, ) by default, and purges "FIN" entries.OE Many sites, especially high-volume sites, don't need to keepLE finished entries in the queue for any length of time, so MX V4.1"E now includes optional automatic purging of entries in the queue.XE Enabling this feature causes queue entries and the associated-F files to be automatically deleted when they are marked "finished."*$ VMI$CALLBACK ASK MX_ENABLE_AUTOPURGE -; "Do you wish to enable auto-purging of FINished entries" -/ "''MX_ENABLE_AUTOPURGE'" BS$ IF MX_ENABLE_AUTOPURGE$ THEN>$ WRITE MX_LOGI "MX_FLQ_AUTOPURGE_FIN\/SYSTEM/EXEC\TRUE" $ ENDIF $ TYPE SYS$INPUT MX Queue Manager Process ------------------------E The purging of processed entries from the MX message queue can beLD handled by the MX Router. You can also choose to run a separateD queue manager whose sole job is managing the message queue. The@ advantage of running the MX FLQ Manager is that it frees the# MX Router for routing messages.N%$ VMI$CALLBACK ASK MX_RUN_FLQ_MGR -XF "Do you wish to run the MX FLQ Manager as a separate process" "YES" B$ IF MX_RUN_FLQ_MGR $ THEN$ IF MX_CLUSTERS$ THENM$ IF .NOT. MX_EXPLAINED_CLUSTER_NAMES THEN GOSUB MX_EXPLAIN_CLUSTER_NAMES &$ VMI$CALLBACK ASK MX_FLQMGR_QUE -8 "Enter the node(s) that will run the MX FLQ Manager" - "''mx_flq_mgr_default_nodes'".7$ MX_STARTUP_PROCESS = "002FLQ_MGR:''MX_FLQMGR_QUE'"_$ MX_MULTIPLE_ALLOWED = 0i $ mx_say ""r%$ WRITE MX_STAR MX_STARTUP_PROCESSE$ ELSE($ MX_STARTUP_PROCESS = "002FLQ_MGR:*"$ MX_MULTIPLE_ALLOWED = 0H%$ WRITE MX_STAR MX_STARTUP_PROCESSO$ ENDIFe $ ENDIFR$ IF MX_CLUSTERS$ THENM$ IF .NOT. MX_EXPLAINED_CLUSTER_NAMES THEN GOSUB MX_EXPLAIN_CLUSTER_NAMESn%$ VMI$CALLBACK ASK MX_ROUTER_QUE -I/ "Enter the node(s) that will run the Router" -E "''mx_router_default_nodes'"9$ MX_STARTUP_PROCESS = "002ROUTER:''MX_ROUTER_QUE'"S$ MX_MULTIPLE_ALLOWED = 1N"$ GOSUB MULT_STARTUP_PROCESS%$ WRITE MX_STAR MX_STARTUP_PROCESS$!$$ VMI$CALLBACK ASK MX_LOCAL_QUE -E "Enter the node(s) that will run the Local delivery agent" -e "''MX_ROUTER_QUE'"p7$ MX_STARTUP_PROCESS = "003LOCAL:''MX_LOCAL_QUE'"e$ MX_MULTIPLE_ALLOWED = 1 "$ GOSUB MULT_STARTUP_PROCESS%$ WRITE MX_STAR MX_STARTUP_PROCESSe$ ELSE*$ MX_STARTUP_PROCESS = "002ROUTER:*"$ MX_MULTIPLE_ALLOWED = 1M"$ GOSUB MULT_STARTUP_PROCESS%$ WRITE MX_STAR MX_STARTUP_PROCESS:)$ MX_STARTUP_PROCESS = "003LOCAL:*"E$ MX_MULTIPLE_ALLOWED = 1 "$ GOSUB MULT_STARTUP_PROCESS%$ WRITE MX_STAR MX_STARTUP_PROCESSU $ ENDIFX$ CLOSE MX_STARU$ CLOSE MX_LOGI,$ ELSE0$ MX_ROOT = F$TRNLNM ("MX_ROOT") - "][" - ".]"E$ MX_TMP = F$PARSE (MX_ROOT+"]",,,,"NO_CONCEAL,SYNTAX_ONLY") - "][" 3$ MX_INSTALL_DEVICE = F$PARSE (MX_TMP,,,"DEVICE")-%$ MX_INSTALL_ROOT = "MX_DEVICE:"+ - 0 F$PARSE (MX_TMP,,,"DIRECTORY") - "]" + ".]"I$ DEFINE MX_DEVICE 'MX_INSTALL_DEVICE'/TRANSLATION=(CONCEALED,TERMINAL)"B$ DEFINE MX_INSTALL_ROOT 'MX_INSTALL_ROOT'/TRANSLATION=CONCEALED:$ DEFINE MX_ROOT 'MX_INSTALL_ROOT'/TRANSLATION=CONCEALED $ IF MX_VAXM#$ THEN MX_EXE = MX_ROOT + ".EXE]"A)$ ELSE MX_EXE = MX_ROOT + ".ALPHA_EXE]"' $ ENDIF /$ COPY 'MX_ROOT']MX_STARTUP_INFO.DAT VMI$KWD:E+$ COPY 'MX_ROOT']MX_LOGICALS.DAT VMI$KWD:T $ DEFINE MX_SHR 'MX_EXE'MX_SHR $ DEFINE MX_MSG 'MX_EXE'MX_MSG($ DEFINE MX_FLQ_SHR 'MX_EXE'MX_FLQ_SHR$ ENDIFC$!5$ if MX_INSTALL_EXE_ONLY then goto MX_END_HOST_CONFIG $ IF MX_DO_SMTP .EQS. "*"'$ THEN$ IF MX_CLUSTERG$ THENM$ IF .NOT. MX_EXPLAINED_CLUSTER_NAMES THEN GOSUB MX_EXPLAIN_CLUSTER_NAMES=#$ VMI$CALLBACK ASK MX_SMTP_QUE - D "Enter the node(s) that will run the SMTP delivery agent" - "''mx_smtp_default_nodes'" 2$ MX_STARTUP_PROCESS = "004SMTP:''MX_SMTP_QUE'"$ MX_MULTIPLE_ALLOWED = 1u$ G MX041.A [MX.KIT]KITINSTAL.COM;10i<OSUB MX_ADD_STARTUP $!%$ VMI$CALLBACK ASK MX_SMTPSV_QUE -< "Enter the node(s) that will run the SMTP server" -* "''mx_smtp_server_default_nodes'";$ MX_STARTUP_PROCESS = "004SMTP_SERVER:''MX_SMTPSV_QUE'"O$ MX_MULTIPLE_ALLOWED = 0F$ GOSUB MX_ADD_STARTUPA"$ GOSUB ASK_HOW_MANY_INCOMING_SMTP$ ELSE%$ MX_STARTUP_PROCESS = "004SMTP:*"S$ MX_MULTIPLE_ALLOWED = 1$ GOSUB MX_ADD_STARTUPS,$ MX_STARTUP_PROCESS = "004SMTP_SERVER:*"$ MX_MULTIPLE_ALLOWED = 0!$ GOSUB MX_ADD_STARTUPN"$ GOSUB ASK_HOW_MANY_INCOMING_SMTP $ ENDIFY$ ENDIFX$!$ IF MX_DO_JNET .EQS. "*"_$ THEN$ IF MX_CLUSTERB$ THENM$ IF .NOT. MX_EXPLAINED_CLUSTER_NAMES THEN GOSUB MX_EXPLAIN_CLUSTER_NAMESR#$ VMI$CALLBACK ASK MX_JNET_QUE -? "Enter the node(s) that will run the Jnet interface" -  "''mx_jnet_default_nodes'"A2$ MX_STARTUP_PROCESS = "004JNET:''MX_JNET_QUE'"$ MX_MULTIPLE_ALLOWED = 1D$ GOSUB MX_ADD_STARTUP $!$ ELSE%$ MX_STARTUP_PROCESS = "004JNET:*"V$ MX_MULTIPLE_ALLOWED = 1N$ GOSUB MX_ADD_STARTUP $ ENDIFX$ ENDIF0$!$ IF MX_DO_UUCP .EQS. "*""$ THEN$ IF MX_CLUSTER $ THENM$ IF .NOT. MX_EXPLAINED_CLUSTER_NAMES THEN GOSUB MX_EXPLAIN_CLUSTER_NAMEST#$ VMI$CALLBACK ASK MX_UUCP_QUE -E "Enter the node(s) that will run the UUCP interface agent" - "''mx_uucp_default_nodes'"I2$ MX_STARTUP_PROCESS = "004UUCP:''MX_UUCP_QUE'"$ MX_MULTIPLE_ALLOWED = 1g$ GOSUB MX_ADD_STARTUPn$ ELSE%$ MX_STARTUP_PROCESS = "004UUCP:*"-$ MX_MULTIPLE_ALLOWED = 1o$ GOSUB MX_ADD_STARTUPr $ ENDIFc$ ENDIFi$!$ IF MX_DO_DNSMTP .EQS. "*"e$ THEN$ IF MX_CLUSTERh$ THENM$ IF .NOT. MX_EXPLAINED_CLUSTER_NAMES THEN GOSUB MX_EXPLAIN_CLUSTER_NAMESt%$ VMI$CALLBACK ASK MX_DNSMTP_QUE -dK "Enter the node(s) that will run the DECnet-SMTP delivery agent" -e! "''mx_dnsmtp_default_nodes'"F6$ MX_STARTUP_PROCESS = "004DNSMTP:''MX_DNSMTP_Q@UE'"$ MX_MULTIPLE_ALLOWED = 1S$ GOSUB MX_ADD_STARTUPX$ ELSE'$ MX_STARTUP_PROCESS = "004DNSMTP:*" $ MX_MULTIPLE_ALLOWED = 1$ GOSUB MX_ADD_STARTUPI $ ENDIF $ ENDIF"$!$ IF MX_DO_XSMTP .EQS. "*"$ THEN$ IF MX_CLUSTERC$ THENM$ IF .NOT. MX_EXPLAINED_CLUSTER_NAMES THEN GOSUB MX_EXPLAIN_CLUSTER_NAMES $$ VMI$CALLBACK ASK MX_XSMTP_QUE -I "Enter the node(s) that will run the X.25-SMTP delivery agent" -M "''mx_xsmtp_default_nodes'"4$ MX_STARTUP_PROCESS = "004XSMTP:''MX_XSMTP_QUE'"$ MX_MULTIPLE_ALLOWED = 0M$ GOSUB MX_ADD_STARTUPF$ ELSE&$ MX_STARTUP_PROCESS = "004XSMTP:*"$ MX_MULTIPLE_ALLOWED = 0"$ GOSUB MX_ADD_STARTUPr $ ENDIF $ ENDIF_$!$ IF MX_DO_SITE .EQS. "*"t$ THEN$ IF MX_CLUSTER$ THENM$ IF .NOT. MX_EXPLAINED_CLUSTER_NAMES THEN GOSUB MX_EXPLAIN_CLUSTER_NAMESO#$ VMI$CALLBACK ASK MX_SITE_QUE -LE "Enter the node(s) that will run the SITE interface agent" -\ "''mx_site_default_nodes'" 2$ MX_STARTUP_PROCESS = "004SITE:''MX_SITE_QUE'"$ MX_MULTIPLE_ALLOWED = 1L$ GOSUB MX_ADD_STARTUPC$ ELSE%$ MX_STARTUP_PROCESS = "004SITE:*"/$ MX_MULTIPLE_ALLOWED = 1 $ GOSUB MX_ADD_STARTUPI $ ENDIFX$ ENDIFT$!$ IF MX_DO_MLF .EQS. "*"$ THEN$ IF MX_CLUSTERD$ THENM$ IF .NOT. MX_EXPLAINED_CLUSTER_NAMES THEN GOSUB MX_EXPLAIN_CLUSTER_NAMES"$ VMI$CALLBACK ASK MX_MLF_QUE -I "Enter the node(s) that will run the Mailing List/File Server" -_ "''mx_mlf_default_nodes'"0$ MX_STARTUP_PROCESS = "005MLF:''MX_MLF_QUE'"$ MX_MULTIPLE_ALLOWED = 0$ GOSUB MX_ADD_STARTUP $ ELSE$$ MX_STARTUP_PROCESS = "005MLF:*"$ MX_MULTIPLE_ALLOWED = 0I$ GOSUB MX_ADD_STARTUP $ ENDIFt$ ENDIF $!$ IF MX_DO_LSV .EQS. "*"$ THEN$ IF MX_CLUSTERe$ THENM$ IF .NOT. MX_EXPLAINED_CLUSTER_NAMES THEN GOSUB MX_EXPLAIN_CLUSTER_NAMESh"$ VMI$CALLBACK ASK MX_LSV_QUE -C "Enter the node(s) that will run the LISTSERV interface" -  "''mx_lsv_default_nodes'"0$ MX_STARTUP_PROCESS = "005LSV:''MX_LSV_QUE'"$ MX_MULTIPLE_ALLOWED = 0$ GOSUB MX_ADD_STARTUP $!$ ELSE$$ MX_STARTUP_PROCESS = "005LSV:*"$ MX_MULTIPLE_ALLOWED = 0n$ GOSUB MX_ADD_STARTUPX $ ENDIFi$ ENDIFf$!$MX_END_HOST_CONFIG:$ IF MX_DO_NETLIB .EQS. "*" $ THEN$ TYPE SYS$INPUT:e5 Now installing NETLIB library for TCP/IP support.A"$ VMI$CALLBACK RESTORE_SAVESET BC$ MX_NETLIB_RELNOT = F$SEARCH ("VMI$KWD:NETLIB%%%.RELEASE_NOTES")U $ IF MX_NETLIB_RELNOT .NES. ""$ THEN?$ MX_NETLIB_RELNOT = F$PARSE (MX_NETLIB_RELNOT,,,"NAME") +-"6 F$PARSE (MX_NETLIB_RELNOT,,,"TYPE")I$ VMI$CALLBACK PROVIDE_FILE MX_OK 'MX_NETLIB_RELNOT' VMI$ROOT:[SYSHLP]i=$ MX_NETLIB_PRODNAME = F$PARSE (MX_NETLIB_RELNOT,,,"NAME")t9$ MX_NETLIB_PRODVER = MX_NETLIB_PRODNAME - "NETLIB"eE$ MX_NETLIB_VER = "V" + F$EXTRACT (0,2,MX_NETLIB_PRODVER) + "." +-r+ F$EXTRACT (2,-1,MX_NETLIB_PRODVER)e5$ IF F$EXTRACT (1,1,MX_NETLIB_VER) .EQS. "0" THEN-A, MX_NETLIB_VER = MX_NETLIB_VER - "0"&$ VMI$CALLBACK MESSAGE I NETLRNOT -N "Release notes for NETLIB ''MX_NETLIB_VER' have been copied to SYS$HELP."$ ELSE%$ MX_NETLIB_PRODNAME = "NETLIB016"X $ ENDIFE!$ MX_SAVE_PRODUCT = VMI$PRODUCT_$$ VMI$PRODUCT = MX_NETLIB_PRODNAME$ @VMI$KWD:NETLIB_INSTALL"!$ VMI$PRODUCT = MX_SAVE_PRODUCT.&$ MX_STARTUP_PROCESS = "001NETLIB:*":$ if .not.mx_install_exe_only then GOSUB MX_ADD_STARTUP2.$ DEFINE NETLIB_SHRXFR VMI$KWD:NETLIB_SHRXFR$!$ ELSE1$ DEFINE NETLIB_SHRXFR NETLIB_DIR:NETLIB_SHRXFRL$ ENDIFO$!,$!--- no more questions after this point ---$!$ TYPE SYS$INPUT: ? The installation will continue for another 5 to 45 minutes,E< depending on your CPU type, distribution media, etc. No further input is required.$!$ IF MX_DO_BASE .EQS. "*" $ THEN$ TYPE SYS$INPUT:e3 Now loading the Message Exchange base software.E"$ VMI$CALLBACK RESTORE_SAVESET C$!6$ IF F$SEARCH("''MX_ROOT']ROUTER.DIR").eqs."" then -7 VMI$CALLBACK CREATE_DIRECTORY USER 'MX_ROOT'.ROUTER] -Q0 "/OWNER=[1,4]/PROT=(S:RWE,O:RWE,G:RE,W:E)"5$ IF F$SEARCH("''MX_ROOT']LOCAL.DIR").eqs."" then -p6 VMI$CALLBACK CREATE_DIRECTORY USER 'MX_ROOT'.LOCAL] -0 "/OWNER=[1,4]/PROT=(S:RWE,O:RWE,G:RE,W:E)"$! $ IF MX_VAXE#$ THEN MX_EXE = MX_ROOT + ".EXE]"C)$ ELSE MX_EXE = MX_ROOT + ".ALPHA_EXE]"= $ ENDIF:$!4$! >> NOTE: MX_MAILSHR depends on MX_MAILSHRP!!! <<$!Q$ MX_IMAGES = "MX_FLQ_SHR/SHARE,MX_MSG/SHARE,MX_SHR/SHARE,MX_MAILSHRP/SHARE,"+-01 "MX_MAILSHR/SHARE,MCP,MX_ROUTER,"+- F "MX_LOCAL,MAILQUEUE,MLFAKE,MXALIAS,MX_DECODE,MX_FLQ_MGR"D$ MX_TRACES = "NOTRACE,NOTRACE,NOTRACE,NOTRACE,NOTRACE,NOTRACE,"+-? "TRACE,TRACE,NOTRACE,NOTRACE,NOTRACE,NOTRACE,NOTRACE"O $ MX_I = -1N$MX_BASE_LOOP:$ MX_I = MX_I + 1S/$ MX_IMAGE = F$ELEMENT (MX_I, ",", MX_IMAGES)X4$ IF MX_IMAGE .EQS. "," THEN GOTO MX_END_BASE_LOOP*$ MX_IMGQ = F$ELEMENT (1, "/", MX_IMAGE)-$ IF MX_IMGQ .EQS. "/" THEN MX_IMGQ = "EXE"E+$ MX_IMAGE = F$ELEMENT (0, "/", MX_IMAGE)I$!>$!---> note special handling of the privileged shareable <----#$ IF MX_IMAGE .EQS. "MX_MAILSHRP"_$ THEN=$ IF MX_AXP THEN MX_IMGQ = "PROTECT/SYSEXE/NOSYSSHR/SHARE".6$ IF MX_VAX THEN MX_IMGQ = "PROTECT/NOSYSSHR/SHARE" $ ENDIFI$!5$ MX_TRACE = "/" + F$ELEMENT (MX_I, ",", MX_TRACES)EA$ VMI$CALLBACK MESSAGE I LINKING "Link,t MX041.A [MX.KIT]KITINSTAL.COM;10i>King image ''MX_IMAGE'..."E5$ LINK/'MX_IMGQ'=VMI$KWD:'MX_IMAGE'.EXE'MX_TRACE' -M? VMI$KWD:'MX_IMAGE''OPT'/OPT,VMI$KWD:'MX_IMAGE'.VERSION/OPT $!G$! After linking MX_MAILSHR, we need to relink MX_MAILSHRP without the_$! universal symbols.$!"$ IF MX_IMAGE .EQS. "MX_MAILSHR"$ THENH$ VMI$CALLBACK MESSAGE I LINKING "Linking image MX_MAILSHRP (secure)..."=$ IF MX_AXP THEN MX_IMGQ = "PROTECT/SYSEXE/NOSYSSHR/SHARE"R6$ IF MX_VAX THEN MX_IMGQ = "PROTECT/NOSYSSHR/SHARE"2$ LINK/'MX_IMGQ'=VMI$KWD:MX_MAILSHRP.EXE/NOTRACE -+ VMI$KWD:MX_MAILSHRP_NOUNIV'OPT'/OPTIONS,-e! VMI$KWD:MX_MAILSHRP.VERSION/OPTP>$ VMI$CALLBACK PROVIDE_IMAGE MX_IMGOK MX_MAILSHRP.EXE 'MX_EXE' $ ENDIFC$!N$ IF MX_IMAGE .NES. "MLFAKE" THEN SET PROTECTION=W:RE VMI$KWD:'MX_IMAGE'.EXE$!*$ IF MX_IMAGE .NES. "MX_MAILSHRP" THEN -< VMI$CALLBACK PROVIDE_IMAGE MX_IMGOK 'MX_IMAGE'.EXE 'MX_EXE'$ GOTO MX_BASE_LOOP $MX_END_BASE_LOOP:G$ IF f$search("''MX_EXE'FLQU.EXE").nes."" then - !Get rid of obsoleteL< VMI$CALLBACK DELETE_FILE 'MX_EXE'FLQU.EXE !... FLQU utilityJ$ IF f$search("''MX_EXE'FLQ_SHR.EXE").nes."" then - !Get rid of obsolete@ VMI$CALLBACK DELETE_FILE 'MX_EXE'FLQ_SHR.EXE !... FLQ_SHR imageG$!$ VMI$CALLBACK PROVIDE_FILE MX_TMP MX_SYSTEM_QUEUE.FDL 'MX_FLQ_DIR' >$ IF F$SEARCH("''MX_FLQ_DIR'MX_SYSTEM_QUEUE.FLQ_CTL").eqs.""$ THEN$$ VMI$CALLBACK MESSAGE I NEWQUE -L "The MX system message queue will be created later in the install."$ ELSE&$ VMI$CALLBACK MESSAGE I NONEWQUE -I "The MX message queue file already exists and will be retained."N!$ VMI$CALLBACK SET POSTINSTALL NON $ ENDIFI&$ IF .not.MX_INSTALL_EXE_ONLY THEN -4 VMI$CALLBACK PROVIDE_FILE "" MX_FILE_LIST.TXT "" T;$ IF f$search("''MX_ROOT']MCP_HELPLIB.HLB").nes."" then - 3 VMI$CALLBACK DELETE_FILE 'MX_ROOT']MCP_HELPLIB.HLBh!$ CREATE VMI$KWD:MX_STARTUP.COMt.$ OPEN/APPEND MX_STMP VMI$KWD:MX_STARTUP.COM$ write mx_stmp -RB f$fao("$!! MX_STARTUP.COM, created during installation of !AS",- mx_installing_version)A$ write mx_stmp f$fao("$!! at !%D by user !AS on node !AS",-I? 0,f$edit(f$getjpi("","USERNAME"),"TRIM"),f$getsyi("SCSNODE"))iL$ WRITE MX_STMP "$ @''MX_EXE'MX___STARTUP 'P1 'P2 'P3 'P4 'P5 'P6 'P7 'P8"$ write mx_stmp "$ EXIT"$ CLOSE MX_STMPBI$ VMI$CALLBACK PROVIDE_FILE MX_OK MX_STARTUP.COM VMI$ROOT:[SYS$STARTUP] $ DEFINE MX_SHR VMI$KWD:MX_SHR($ DEFINE MX_FLQ_SHR VMI$KWD:MX_FLQ_SHR$ ENDIFt$!($! Begin the SMTP support installation.$!$ IF MX_DO_SMTP .EQS. "*" $ THEN$ TYPE SYS$INPUT:S4 Now providing the SMTP support files and images."$ VMI$CALLBACK RESTORE_SAVESET D$!4$ IF F$SEARCH("''MX_ROOT']SMTP.DIR").eqs."" then -5 VMI$CALLBACK CREATE_DIRECTORY USER 'MX_ROOT'.SMTP] - . "/OWNER=[1,4]/PROT=(S:RWE,O:RWE,G:RE,W)"$!<$ MX_IMAGES = "MX_SMTP,SMTP_SERVER,DOMAIN_EXPANSION/SHARE"%$ MX_TRACES = "TRACE,TRACE,NOTRACE" $ MX_I = -1e$MX_SMTP_LOOP:$ MX_I = MX_I + 1e/$ MX_IMAGE = F$ELEMENT (MX_I, ",", MX_IMAGES) 4$ IF MX_IMAGE .EQS. "," THEN GOTO MX_END_SMTP_LOOP*$ MX_IMGQ = F$ELEMENT (1, "/", MX_IMAGE)-$ IF MX_IMGQ .EQS. "/" THEN MX_IMGQ = "EXE"U+$ MX_IMAGE = F$ELEMENT (0, "/", MX_IMAGE)T5$ MX_TRACE = "/" + F$ELEMENT (MX_I, ",", MX_TRACES)LA$ VMI$CALLBACK MESSAGE I LINKING "Linking image ''MX_IMAGE'..."M4$ LINK/'MX_IMGQ'=VMI$KWD:'MX_IMAGE'.EXE'MX_TRACE'-? VMI$KWD:'MX_IMAGE''OPT'/OPT,VMI$KWD:'MX_IMAGE'.VERSION/OPTq.$ SET PROTECTION=W:RE VMI$KWD:'MX_IMAGE'.EXE?$ VMI$CALLBACK PROVIDE_IMAGE MX_IMGOK 'MX_IMAGE'.EXE 'MX_EXE',$ GOTO MX_SMTP_LOOP $MX_END_SMTP_LOOP:$!$ ENDIF $!$ IF MX_DO_JNET .EQS. "*"e$ THEN$ TYPE SYS$INPUT:d4 Now providing the Jnet support files and images."$ VMI$CALLBACK RESTORE_SAVESET E$!0$ IF F$SEARCH ("JAN_SYS:ZIPPROT.EXE") .EQS. ""$ THEN%$ VMI$CALLBACK MESSAGE E OLDJNET - 9 "This version of MX requires Jnet V3.5 or later"E$ GOTO MX_JNET_END_INSTALLU $ ENDIFM$!4$ IF F$SEARCH("''MX_ROOT']JNET.DIR").eqs."" then -5 VMI$CALLBACK CREATE_DIRECTORY USER 'MX_ROOT'.JNET] -F. "/OWNER=[1,4]/PROT=(S:RWE,O:RWE,G:RE,W)"$!*$ MX_IMAGES = "MX_JNET,MX_MFSDISP/SHARE" $ IF MX_AXP:-$ THEN MX_TRACES = "TRACE/NONATIVE,NOTRACE" $$ ELSE MX_TRACES = "TRACE,NOTRACE" $ ENDIFc $ MX_I = -1X$MX_JNET_LOOP:$ MX_I = MX_I + 1H/$ MX_IMAGE = F$ELEMENT (MX_I, ",", MX_IMAGES)h4$ IF MX_IMAGE .EQS. "," THEN GOTO MX_END_JNET_LOOP*$ MX_IMGQ = F$ELEMENT (1, "/", MX_IMAGE)-$ IF MX_IMGQ .EQS. "/" THEN MX_IMGQ = "EXE"h+$ MX_IMAGE = F$ELEMENT (0, "/", MX_IMAGE)t5$ MX_TRACE = "/" + F$ELEMENT (MX_I, ",", MX_TRACES)aA$ VMI$CALLBACK MESSAGE I LINKING "Linking image ''MX_IMAGE'..." 5$ LINK/'MX_IMGQ'=VMI$KWD:'MX_IMAGE'.EXE'MX_TRACE' -o? VMI$KWD:'MX_IMAGE''OPT'/OPT,VMI$KWD:'MX_IMAGE'.VERSION/OPT .$ SET PROTECTION=W:RE VMI$KWD:'MX_IMAGE'.EXE?$ VMI$CALLBACK PROVIDE_IMAGE MX_IMGOK 'MX_IMAGE'.EXE 'MX_EXE'e$ GOTO MX_JNET_LOOPe$MX_END_JNET_LOOP:9$ VMI$CALLBACK PROVIDE_FILE MX_TMP MX_JNET.COM 'MX_EXE'l$!$ TYPE SYS$INPUT:nI Remember that Jnet must be started AFTER MX is started. To start theiG MX/Jnet Interface, include the following commands in the JANSITE or0+ JANSITECOMMON procedures for your node: 7 $ DEFINE/SYS/EXEC JAN_MFSDISP MX_EXE:MX_MFSDISP(8 $ SUBMIT/NOPRINT/QUEUE=node_queue/USER=maileracct -2 SYS$STARTUP:MX_STARTUP/PARAM=JNETH where "node_queue" is the name of a batch queue that executes on theG node where you are running Jnet and "maileracct" is the username ofnK your mailer account. For more information, see the Installation Guide.z$!$MX_JNET_END_INSTALL:1$!$ ENDIFs$!$ IF MX_DO_UUCP .EQS. "*"_$ THEN$ TYPE SYS$INPUT:i4 Now providing the UUCP support files and images."$ VMI$CALLBACK RESTORE_SAVESET F$!4$ IF F$SEARCH("''MX_ROOT']UUCP.DIR").eqs."" then -5 VMI$CALLBACK CREATE_DIRECTORY USER 'MX_ROOT'.UUCP] - . "/OWNER=[1,4]/PROT=(S:RWE,O:RWE,G:RE,W)"$!"$ MX_IMAGES = "MX_UUCP,MX_RMAIL"$ MX_TRACES = "TRACE,TRACE" $ MX_I = -1t$MX_UUCP_LOOP:$ MX_I = MX_I + 1 /$ MX_IMAGE = F$ELEMENT (MX_I, ",", MX_IMAGES) 4$ IF MX_IMAGE .EQS. "," THEN GOTO MX_END_UUCP_LOOP*$ MX_IMGQ = F$ELEMENT (1, "/", MX_IMAGE)-$ IF MX_IMGQ .EQS. "/" THEN MX_IMGQ = "EXE""+$ MX_IMAGE = F$ELEMENT (0, "/", MX_IMAGE)x5$ MX_TRACE = "/" + F$ELEMENT (MX_I, ",", MX_TRACES)_A$ VMI$CALLBACK MESSAGE I LINKING "Linking image ''MX_IMAGE'..."M5$ LINK/'MX_IMGQ'=VMI$KWD:'MX_IMAGE'.EXE'MX_TRACE' -o? VMI$KWD:'MX_IMAGE''OPT'/OPT,VMI$KWD:'MX_IMAGE'.VERSION/OPTr+$ SET PROTECTION=W VMI$KWD:'MX_IMAGE'.EXEd?$ VMI$CALLBACK PROVIDE_IMAGE MX_IMGOK 'MX_IMAGE'.EXE 'MX_EXE'I$ GOTO MX_UUCP_LOOPI$MX_END_UUCP_LOOP:9$ VMI$CALLBACK PROVIDE_FILE MX_TMP MX_UUCP.COM 'MX_EXE'W$ TYPE SYS$INPUT@ If you're using a version of DECUS UUCP prior to V2.0, don'tA forget to modify the file UUCP_BIN:UUXQT_DCL.COM as describedDC in the installation guide to supply the hook needed to transferX mail from UUCP to MX.B DECUS UUCP V2.0 already supplies the MX hook in UUXQT_DCL.COM.D Also remember that DECUS UUCP should be started (or at least the+ logicals defined) before MX is started.D$ ENDIF $!$ IF MX_DO_DNSMTP .EQS. "*"G$ THEN$ TYPE SYS$INPUT:R; Now providing the DECnet-SMTP support files and images.T"$ VMI$CALLBACK RESTORE_SAVESET G$!6$ IF F$SEARCH("''MX_ROOT']DNSMTP.DIR").eqs."" then -7 VMI$CALLBACK CREATE_DIRECTORY USER 'MX_ROOT'.DNSMTP] -h. H MX041.A [MX.KIT]KITINSTAL.COM;10iZ"/OWNER=[1,4]/PROT=(S:RWE,O:RWE,G:RE,W)"$!)$ MX_IMAGES = "MX_DNSMTP,DNSMTP_SERVER" $ MX_TRACES = "TRACE,TRACE"H $ MX_I = -12$MX_DNSMTP_LOOP:$ MX_I = MX_I + 1:/$ MX_IMAGE = F$ELEMENT (MX_I, ",", MX_IMAGES)E6$ IF MX_IMAGE .EQS. "," THEN GOTO MX_END_DNSMTP_LOOP*$ MX_IMGQ = F$ELEMENT (1, "/", MX_IMAGE)-$ IF MX_IMGQ .EQS. "/" THEN MX_IMGQ = "EXE"v+$ MX_IMAGE = F$ELEMENT (0, "/", MX_IMAGE)l5$ MX_TRACE = "/" + F$ELEMENT (MX_I, ",", MX_TRACES)0A$ VMI$CALLBACK MESSAGE I LINKING "Linking image ''MX_IMAGE'..."o4$ LINK/'MX_IMGQ'=VMI$KWD:'MX_IMAGE'.EXE'MX_TRACE'-? VMI$KWD:'MX_IMAGE''OPT'/OPT,VMI$KWD:'MX_IMAGE'.VERSION/OPTm.$ SET PROTECTION=W:RE VMI$KWD:'MX_IMAGE'.EXE?$ VMI$CALLBACK PROVIDE_IMAGE MX_IMGOK 'MX_IMAGE'.EXE 'MX_EXE'a$ GOTO MX_DNSMTP_LOOPe$MX_END_DNSMTP_LOOP:$!$ TYPE SYS$INPUT:eE Please refer to the Installation Guide for information on settingp, up a DECnet object for SMTP-over-DECnet.$!$ ENDIF $!$ IF MX_DO_XSMTP .EQS. "*"$ THEN$ TYPE SYS$INPUT: 9 Now providing the X.25-SMTP support files and images. "$ VMI$CALLBACK RESTORE_SAVESET H$!5$ IF F$SEARCH("''MX_ROOT']XSMTP.DIR").eqs."" then -e6 VMI$CALLBACK CREATE_DIRECTORY USER 'MX_ROOT'.XSMTP] -. "/OWNER=[1,4]/PROT=(S:RWE,O:RWE,G:RE,W)"$!'$ MX_IMAGES = "MX_XSMTP,XSMTP_SERVER"_$ MX_TRACES = "TRACE,TRACE" $ MX_I = -1_$MX_XSMTP_LOOP:x$ MX_I = MX_I + 1 /$ MX_IMAGE = F$ELEMENT (MX_I, ",", MX_IMAGES)f5$ IF MX_IMAGE .EQS. "," THEN GOTO MX_END_XSMTP_LOOPn*$ MX_IMGQ = F$ELEMENT (1, "/", MX_IMAGE)-$ IF MX_IMGQ .EQS. "/" THEN MX_IMGQ = "EXE"m+$ MX_IMAGE = F$ELEMENT (0, "/", MX_IMAGE)f5$ MX_TRACE = "/" + F$ELEMENT (MX_I, ",", MX_TRACES) A$ VMI$CALLBACK MESSAGE I LINKING "Linking image ''MX_IMAGE'..."n4$ LINK/'MX_IMGQ'=VMI$KWD:'MX_IMAGE'.EXE'MX_TRACE'-? VMI$KWD:'MX_IMAGE''OPT'/OPT,VMI$KWD:'MX_IMAGE'.VERSION/OPTN.$ SET PROTECTION=W:RE VMI$KWD:'MX_IMAGE'.EXE?$ VMI$CALLBACK PROVIDE_IMAGE MX_IMGOK 'MX_IMAGE'.EXE 'MX_EXE'$ GOTO MX_XSMTP_LOOP$MX_END_XSMTP_LOOP: $!$ TYPE SYS$INPUT:TE Please refer to the Installation Guide for information on settingr* up a P.S.I. object for SMTP-over-X.25.$!$ ENDIFt$!$ IF MX_DO_SITE .EQS. "*"s$ THEN$ TYPE SYS$INPUT:lC Now providing the site-specific agent support files and images.r"$ VMI$CALLBACK RESTORE_SAVESET I$!4$ IF F$SEARCH("''MX_ROOT']SITE.DIR").eqs."" then -5 VMI$CALLBACK CREATE_DIRECTORY USER 'MX_ROOT'.SITE] -M. "/OWNER=[1,4]/PROT=(S:RWE,O:RWE,G:RE,W)"$!$$ MX_IMAGES = "MX_SITE,MX_SITE_IN"$ MX_TRACES = "TRACE,TRACE"C $ MX_I = -1L$MX_SITE_LOOP:$ MX_I = MX_I + 1o/$ MX_IMAGE = F$ELEMENT (MX_I, ",", MX_IMAGES)k4$ IF MX_IMAGE .EQS. "," THEN GOTO MX_END_SITE_LOOP*$ MX_IMGQ = F$ELEMENT (1, "/", MX_IMAGE)-$ IF MX_IMGQ .EQS. "/" THEN MX_IMGQ = "EXE"-+$ MX_IMAGE = F$ELEMENT (0, "/", MX_IMAGE)t5$ MX_TRACE = "/" + F$ELEMENT (MX_I, ",", MX_TRACES) A$ VMI$CALLBACK MESSAGE I LINKING "Linking image ''MX_IMAGE'..."e5$ LINK/'MX_IMGQ'=VMI$KWD:'MX_IMAGE'.EXE'MX_TRACE' -N? VMI$KWD:'MX_IMAGE''OPT'/OPT,VMI$KWD:'MX_IMAGE'.VERSION/OPTT+$ SET PROTECTION=W VMI$KWD:'MX_IMAGE'.EXE.?$ VMI$CALLBACK PROVIDE_IMAGE MX_IMGOK 'MX_IMAGE'.EXE 'MX_EXE' $ GOTO MX_SITE_LOOPo$MX_END_SITE_LOOP:9$ VMI$CALLBACK PROVIDE_FILE MX_TMP MX_SITE.COM 'MX_EXE'$ ENDIFn$!$ IF MX_DO_MLF .EQS. "*"$ THEN$ TYPE SYS$INPUT:cI Now installing the Mailing List/File Server support files and images.M$!"$ VMI$CALLBACK RESTORE_SAVESET J$!3$ IF F$SEARCH("''MX_ROOT']MLF.DIR").eqs."" then -S4 VMI$CALLBACK CREATE_DIRECTORY USER 'MX_ROOT'.MLF] -. "/OWNER=[1,4]/PROT=(S:RWE,O:RWE,G:RE,W)"A$ IF F$SEARCH("''MX_ROOT'.MLF]MAILING_LISTS.DIR").eqs."" then -SB VMI$CALLBACK CREATE_DIRECTORY USER 'MX_ROOT'.MLF.MAILING_LISTS] -. "/OWNER=[1,4]/PROT=(S:RWE,O:RWE,G:RE,W)"$!$ MX_IMAGES = "MX_MLF" MX_TRACES = "TRACE" $ MX_I = -1 $MX_MLF_LOOP:t$ MX_I = MX_I + 1t/$ MX_IMAGE = F$ELEMENT (MX_I, ",", MX_IMAGES) 3$ IF MX_IMAGE .EQS. "," THEN GOTO MX_END_MLF_LOOP*$ MX_IMGQ = F$ELEMENT (1, "/", MX_IMAGE)-$ IF MX_IMGQ .EQS. "/" THEN MX_IMGQ = "EXE"C+$ MX_IMAGE = F$ELEMENT (0, "/", MX_IMAGE)E5$ MX_TRACE = "/" + F$ELEMENT (MX_I, ",", MX_TRACES)TA$ VMI$CALLBACK MESSAGE I LINKING "Linking image ''MX_IMAGE'..."N5$ LINK/'MX_IMGQ'=VMI$KWD:'MX_IMAGE'.EXE'MX_TRACE' -M? VMI$KWD:'MX_IMAGE''OPT'/OPT,VMI$KWD:'MX_IMAGE'.VERSION/OPT $!?$ VMI$CALLBACK PROVIDE_IMAGE MX_IMGOK 'MX_IMAGE'.EXE 'MX_EXE'_$ GOTO MX_MLF_LOOP$MX_END_MLF_LOOP:_6$ IF MX_INSTALL_EXE_ONLY THEN goto MX_END_MLF_LOOP_27$ VMI$CALLBACK PROVIDE_FILE "" MX_MLIST_LIST.TXT "" T$$ MX_1 = MX_ROOT + ".LOCAL.MLIST]"*$ MX_2 = MX_ROOT + ".MLF.MAILING_LISTS]"B$ MX_FILES = "MLIST_ADD_MESSAGE.TXT,MLIST_REMOVE_MESSAGE.TXT,"+-4 "MLIST_FORWARD_MESSAGE.TXT,MLIST_HELP.TXT" $ MX_I = -1L$MX_MLF_LOOP_2:G$ MX_I = MX_I + 1E+$ MX_FILE = F$ELEMENT (MX_I,",",MX_FILES)4$ IF MX_FILE .EQS. "," THEN GOTO MX_END_MLF_LOOP_2?$ IF F$SEARCH (MX_2+MX_FILE) .NES. "" THEN GOTO MX_MLF_LOOP_2R'$ IF F$SEARCH (MX_1+MX_FILE) .NES. ""X$ THEN#$ RENAME 'MX_1''MX_FILE' 'MX_2';U$ GOTO MX_MLF_LOOP_2_ $ ENDIFC3$ VMI$CALLBACK PROVIDE_FILE MX_TMP 'MX_FILE 'MX_2 $ GOTO MX_MLF_LOOP_2$MX_END_MLF_LOOP_2:f$ IF .not.MX_INSTALL_EXE_ONLYF$ THEND$ IF F$SEARCH ("''MX_ROOT'.MLF]FILESERV_HELP.TXT") .EQS. "" THEN -F VMI$CALLBACK PROVIDE_FILE MX_TMP FILESERV_HELP.TXT 'MX_ROOT'.MLF]>$ VMI$CALLBACK PROVIDE_FILE MX_TMP MLF_CONFIG.COM 'MX_ROOT']$!$ ENDIFF$ ENDIFB$!$ IF MX_DO_LSV .EQS. "*"$ THEN$ TYPE SYS$INPUT:E0 Now installing the LISTSERV interface image.$!"$ VMI$CALLBACK RESTORE_SAVESET K$!3$ IF F$SEARCH("''MX_ROOT']LSV.DIR").eqs."" then -O4 VMI$CALLBACK CREATE_DIRECTORY USER 'MX_ROOT'.LSV] -. "/OWNER=[1,4]/PROT=(S:RWE,O:RWE,G:RE,W)"$!$ MX_IMAGES = "MX_LSV" MX_TRACES = "TRACE"= $ MX_I = -1T $MX_LSV_LOOP:_$ MX_I = MX_I + 1 /$ MX_IMAGE = F$ELEMENT (MX_I, ",", MX_IMAGES)I3$ IF MX_IMAGE .EQS. "," THEN GOTO MX_END_LSV_LOOP *$ MX_IMGQ = F$ELEMENT (1, "/", MX_IMAGE)-$ IF MX_IMGQ .EQS. "/" THEN MX_IMGQ = "EXE"e+$ MX_IMAGE = F$ELEMENT (0, "/", MX_IMAGE)e5$ MX_TRACE = "/" + F$ELEMENT (MX_I, ",", MX_TRACES)MA$ VMI$CALLBACK MESSAGE I LINKING "Linking image ''MX_IMAGE'..." 5$ LINK/'MX_IMGQ'=VMI$KWD:'MX_IMAGE'.EXE'MX_TRACE' -_? VMI$KWD:'MX_IMAGE''OPT'/OPT,VMI$KWD:'MX_IMAGE'.VERSION/OPTE$!?$ VMI$CALLBACK PROVIDE_IMAGE MX_IMGOK 'MX_IMAGE'.EXE 'MX_EXE'_$ GOTO MX_LSV_LOOP$MX_END_LSV_LOOP:D$ ENDIFH$!$ IF MX_DO_DOC .EQS. "*"$ THEN$ TYPE SYS$INPUT:B> Now providing MX documentation to directory MX_ROOT:[DOC]."$ VMI$CALLBACK RESTORE_SAVESET L3$ IF F$SEARCH("''MX_ROOT']DOC.DIR").eqs."" then -s4 VMI$CALLBACK CREATE_DIRECTORY USER 'MX_ROOT'.DOC] -1 "/OWNER=[1,4]/PROT=(S:RWE,O:RWE,G:RE,W:RE)"F5$ VMI$CALLBACK PROVIDE_FILE "" MX_DOC_LIST.TXT "" T?$ IF f$search("''MX_ROOT'.DOC]INSTALL_GUIDE.*").nes."" then -A7 VMI$CALLBACK DELETE_FILE 'MX_ROOT'.DOC]INSTALL_GUIDE.*]<$ IF f$search("''MX_ROOT'.DOC]MGMT_GUIDE.*").nes."" then -4 VMI$CALLBACK DELETE_FILE 'MX_ROOT'.DOC]MGMT_GUIDE.*;$ IF f$search("''MX_ROOT'.DOC]MLF_GUIDE.*").nes."" then -q3 VMI$CALLBACK DELETE_FILE 'MX_ROOT'.DOC]MLF_GUIDE.*_<$ IF f$search("''MX_ROOT'.DOC]USER_GUIDE.*").nes."" then -4 VMI$CALLBACK DELETE_FILE 'MX_ROOT'.DOC]USER_GUIDE.*<$ IF f$search("''MX_ROOT'.DOC]PROG_GUIDE.*").nes."" then -4 VMI$CALLBACK DELETE_FILE _H MX041.A [MX.KIT]KITINSTAL.COM;10ii'MX_ROOT'.DOC]PROG_GUIDE.*$ ENDIF$!$!$ IF MX_DO_EXAMPLES .EQS. "*"G$ THEN$ TYPE SYS$INPUT:RF Now providing MX example files and programs to MX_ROOT:[EXAMPLES]."$ VMI$CALLBACK RESTORE_SAVESET M8$ IF F$SEARCH("''MX_ROOT']EXAMPLES.DIR").eqs."" then -9 VMI$CALLBACK CREATE_DIRECTORY USER 'MX_ROOT'.EXAMPLES] -E1 "/OWNER=[1,4]/PROT=(S:RWE,O:RWE,G:RE,W:RE)"I:$ VMI$CALLBACK PROVIDE_FILE "" MX_EXAMPLES_LIST.TXT "" T$ ENDIFT$!$ IF MX_DO_CONTRIB .EQS. "*"$ THEN$ TYPE SYS$INPUT:XA Now providing MX user-contributed files to MX_ROOT:[CONTRIB]._"$ VMI$CALLBACK RESTORE_SAVESET N7$ IF F$SEARCH("''MX_ROOT']CONTRIB.DIR").eqs."" then -n8 VMI$CALLBACK CREATE_DIRECTORY USER 'MX_ROOT'.CONTRIB] -1 "/OWNER=[1,4]/PROT=(S:RWE,O:RWE,G:RE,W:RE)"I9$ VMI$CALLBACK PROVIDE_FILE "" MX_CONTRIB_LIST.TXT "" T $ ENDIFV$!$ IF .not.MX_INSTALL_EXE_ONLY/$ THEN<$ VMI$CALLBACK PROVIDE_FILE MX_OK MX_LOGICALS.DAT 'MX_ROOT']@$ VMI$CALLBACK PROVIDE_FILE MX_OK MX_STARTUP_INFO.DAT 'MX_ROOT']$ ENDIFE $ mx_say ""X2$ mx_say " MX installation procedure complete."$ IF MX_DO_BASEP$ THEN?$ if ($type(mx_flq_size).nes."").and.(.not.mx_install_exe_only) $ then mx_say ""G$ mx_say " The MX message queue will be created after the new files"S;$ mx_say " have been moved to their target directories."i&$ else VMI$CALLBACK SET POSTINSTALL NO8$ IF f$trnlnm("MX_OLD_FLQ").nes."" then close mx_old_flq$ endifI$ ENDIFT $ mx_say "" $ IF MX_DO_BASE/$ THEN$ TYPE SYS$INPUT:KE Be sure to follow the post-installation instructions described in,C the MX Installation Guide. This will minimally include editingM6 SYSTARTUP_V5.COM to include the following command:( $ @SYS$STARTUP:MX_STARTUP$ WAIT 00:00:05G$ TYPE SYS$INPUT:_C If this is a new installation of MX, or you need to reconfigureKC MX before starting it up, you should ensure that all MX logicalE names are defined and shareable images are installed by executingL1 $ @SYS$STARTUP:MX_STARTUP LOGICALSUI immediately after VMSINSTAL completes. If this is a new installationbD of MX, use the MXCONFIG procedure to build a base configuration:! $ @MX_DIR:MXCONFIGX$ ENDIFTL$ IF F$TRNLNM ("MX_FLQ_SHR","LNM$PROCESS") .NES. "" THEN DEASSIGN MX_FLQ_SHRD$ IF F$TRNLNM ("MX_SHR","LNM$PROCESS") .NES. "" THEN DEASSIGN MX_SHRR$ IF F$TRNLNM ("NETLIB_SHRXFR","LNM$PROCESS") .NES. "" THEN DEASSIGN NETLIB_SHRXFR$ EXIT VMI$_SUCCESS $!$ EXIT 1$!$MX_EXPLAIN_CLUSTER_NAMES:$!$ TYPE SYS$INPUT:w$ Specifying VMScluster Node Names$ --------------------------------E This system is part of a VMScluster. For each component you have.D selected that includes a process to be run, you will be asked to@ select which nodes in the cluster should run the component'sA process. You may run each process on any or all of the nodesPC in the cluster, under the MX Cluster guidelines outlined in then Installation Guide.G When specifying node names, use a system's cluster (SCS) node name.SC You may specify more than one node name by separating them with( commas.  E You may specify an asterisk ("*") as the node name if you want to 4 execute the process on all nodes in the cluster. $ MX_EXPLAINED_CLUSTER_NAMES = 1$ RETURN$! :$!$MX_ADD_STARTUP:$!$ GOSUB MULT_STARTUP_PROCESS$!$MX_ADD_STARTUP2::P$ MX_TMP = F$EXTRACT (3,-1,F$EDIT (F$ELEMENT (0,":",MX_STARTUP_PROCESS),"TRIM"))/$ OPEN/READ MX_STAR VMI$KWD:MX_STARTUP_INFO.DAT$$ CREATE VMI$KWD:MX_STARTUP_INFO.TMP1$ OPEN/APPEND MX_STMP VMI$KWD:MX_STARTUP_INFO.TMPD $MX_AS_LOOP:*$ READ/END=MX_AS_DONE_READ MX_STAR MX_TMP2S$ IF MX_TMP .NES. F$EXTRACT (3,-1,F$EDIT (F$ELEMENT (0,":",MX_TMP2),"TRIM")) THEN -: WRITE MX_STMP MX_TMP2 $ GOTO MX_AS_LOOPP$MX_AS_DONE_READ:_$ CLOSE MX_STAR"$ WRITE MX_STMP MX_STARTUP_PROCESS$ CLOSE MX_STMPe>$ SORT VMI$KWD:MX_STARTUP_INFO.TMP VMI$KWD:MX_STARTUP_INFO.DAT#$ PURGE VMI$KWD:MX_STARTUP_INFO.DATM&$ DELETE VMI$KWD:MX_STARTUP_INFO.TMP;*$ RETURN$!$! L$MULT_STARTUP_PROCESS:B$ IF (.NOT.MX_EXPLAINED_MULTIPLE_AGENTS) .AND. MX_MULTIPLE_ALLOWED$ THEN TYPE SYS$INPUTE/ Specifying the Number of MX Agent ProcessesR/ -------------------------------------------nA For some components, you will be asked to enter the number ofXC processes to be run on each specified node. Multiple processes/B can increase the total throughput of messages processed by MX.B Valid numbers range from 1 to 99. These values can be changed< at any time after the installation by modifying the file MX_DIR:MX_STARTUP_INFO.DAT.P"$ MX_EXPLAINED_MULTIPLE_AGENTS = 1$ ENDIFsL$ VMI$CALLBACK TELL_QA "MSP start: MX_STARTUP_PROCESS=''MX_STARTUP_PROCESS'"1$ NODE_LIST = F$ELEMENT(1,":",MX_STARTUP_PROCESS)B@$ MX_STARTUP_PROCESS = F$ELEMENT(0,":",MX_STARTUP_PROCESS) + ":"$ MX_STARTUP_AGENT = -? f$extract(3,f$length(mx_startup_process)-4,mx_startup_process)_$ MSP_COUNT = 0e$! $MSP_LOOP:+$ NODE = F$ELEMENT(MSP_COUNT,",",NODE_LIST)N&$ IF NODE .EQS. "," THEN GOTO MSP_EXITJ$ IF (.NOT. F$GETSYI("CLUSTER_MEMBER",NODE)) .AND. (NODE .NES. "*") THEN -( VMI$CALLBACK MESSAGE I NODENOTMEM -= "Node ''NODE' is not currently a member of this cluster" D$ mx_prompt = "Number of ''MX_STARTUP_AGENT' agent processes to run"$ IF node.eqs."*"_A$ THEN IF MX_CLUSTER THEN mx_prompt = mx_prompt + " on all nodes" 6$ if f$type(mx_'mx_startup_agent'_star_default).nes.""<$ then mx_instances_def = mx_'mx_startup_agent'_star_default$ else mx_instances_def = 1=$ endifE1$ ELSE mx_prompt = mx_prompt + " on node ''NODE'"S8$ if f$type(mx_'mx_startup_agent'_'node'_default).nes."">$ then mx_instances_def = mx_'mx_startup_agent'_'node'_default$ else mx_instances_def = 1A$ endifO$ ENDIF $ IF MX_MULTIPLE_ALLOWED$ THENE$ VMI$CALLBACK ASK MX_INSTANCES "''MX_PROMPT'" 'mx_instances_def' IE4$ IF MX_INSTANCES .LT. 1 .OR. MX_INSTANCES .GT. 99$ THEN$ MX_INSTANCES = 1W$ VMI$CALLBACK MESSAGE I CHANGED "Valid values are 1 through 99. Number set to 1."A $ ENDIFsW$ MX_STARTUP_PROCESS = MX_STARTUP_PROCESS + NODE + "=" + F$STRING(MX_INSTANCES) + ","I$ ELSE8$ MX_STARTUP_PROCESS = MX_STARTUP_PROCESS + NODE + ","$ ENDIFS$!$ MSP_COUNT = MSP_COUNT + 1S$ GOTO MSP_LOOP/$! $MSP_EXIT:'$ IF MX_MULTIPLE_ALLOWED THEN MX_SAY "" U$ MX_STARTUP_PROCESS = F$EXTRACT(0,F$LENGTH(MX_STARTUP_PROCESS)-1,MX_STARTUP_PROCESS)uK$ VMI$CALLBACK TELL_QA "MSP exit: MX_STARTUP_PROCESS=''MX_STARTUP_PROCESS'""$ RETURN$! e$ASK_HOW_MANY_INCOMING_SMTP:;$ IF f$search("VMI$KWD:MX_LOGICALS.DAT").eqs."" THEN RETURNM$ TYPE SYS$INPUTC Specifying the Number of Simultaneous Incoming SMTP ConnectionsIC --------------------------------------------------------------- C By default, the MX SMTP Server will accept up to 4 simultaneousRC SMTP connections for incoming mail. Any value from 1 to 16 may C be specified. This value can be changed after the installation C by editing MX_DIR:MX_LOGICALS.DAT and changing the value of the# logical MX_SMTP_SERVER_THREADS.>$ VMI$CALLBACK TELL_QA "MSP start: ASK_HOW_MANY_INCOMING_SMTP"J$ mx_prompt = "Number of simultaneous incoming SMTP connections to accept"7$ mx_smtp_inst_def = f$trnlnm("MX_SMTP_SERVER_THREADS") 6$ if mx_smtp_inst_def.eqs."" then mx_smtp_inst_def = 4J$ VMI$CALLBACK ASK MX_SMTP_INSTANCES "''MX_PROMPT'" 'mx_smtp_inst_def' I>$ IF MX_SMTP_INSTANCES .LT. 1 .OR. MX_SMTP_INSTANCES .GT. 16$ THEN*$ MX_SMTP_IN s? MX041.A [MX.KIT]KITINSTAL.COM;10ixSTANCES = mx_smtp_inst_defi$ VMI$CALLBACK MESSAGE I CHANGED "Valid values are 1 through 16. Number set to ''mx_smtp_inst_def'."E $ ENDIFM/$ OPEN/APPEND MX_LOGI VMI$KWD:MX_LOGICALS.DATOJ$ WRITE MX_LOGI "MX_SMTP_SERVER_THREADS\/SYSTEM/EXEC\",MX_SMTP_INSTANCES$ CLOSE MX_LOGIS$! $ MX_SAY ""y=$ VMI$CALLBACK TELL_QA "MSP exit: ASK_HOW_MANY_INCOMING_SMTP"o$ RETURN$! t$!$!$FIND_AGENTS_TO_UPDATE: $!6$ IF MX_MUST_DO_BASE .and. (f$trnlnm("MX_EXE").nes."")$ THEN $ MX_I = 0$FIND_AGENTS_LOOP:$ MX_I = MX_I + 1U'$ MX_OPT = F$ELEMENT (MX_I,":",MX_OPTS)i4$ IF MX_OPT .EQS. ":" THEN GOTO END_FIND_AGENTS_LOOP%$ IF (MX_OPT .eqs."MX_DO_SMTP").and.- ) (f$search("MX_EXE:MX_SMTP.EXE").nes."")$ THEN 'MX_OPT' = "*"O2$ MX_DO_NETLIB = "*" !Do NETLIB too if doing SMTP$ ENDIFr%$ IF (MX_OPT .eqs."MX_DO_JNET").and.-n= (f$search("MX_EXE:MX_JNET.EXE").nes."") then 'MX_OPT' = "*"S%$ IF (MX_OPT .eqs."MX_DO_UUCP").and.-h= (f$search("MX_EXE:MX_UUCP.EXE").nes."") then 'MX_OPT' = "*"'$ IF (MX_OPT .eqs."MX_DO_DNSMTP").and.-E? (f$search("MX_EXE:MX_DNSMTP.EXE").nes."") then 'MX_OPT' = "*"E&$ IF (MX_OPT .eqs."MX_DO_XSMTP").and.-> (f$search("MX_EXE:MX_XSMTP.EXE").nes."") then 'MX_OPT' = "*"%$ IF (MX_OPT .eqs."MX_DO_SITE").and.-E= (f$search("MX_EXE:MX_SITE.EXE").nes."") then 'MX_OPT' = "*"1$$ IF (MX_OPT .eqs."MX_DO_LSV").and.-< (f$search("MX_EXE:MX_LSV.EXE").nes."") then 'MX_OPT' = "*"$$ IF (MX_OPT .eqs."MX_DO_MLF").and.-< (f$search("MX_EXE:MX_MLF.EXE").nes."") then 'MX_OPT' = "*"2$ IF (MX_OPT .eqs."MX_DO_DOC") then 'MX_OPT' = "*"($ IF (MX_OPT .eqs."MX_DO_CONTRIB").and.-9 (f$search("MX_ROOT:[000000]CONTRIB.DIR").nes."") then -m 'MX_OPT' = "*")$ IF (MX_OPT .eqs."MX_DO_EXAMPLES").and.-L: (f$search("MX_ROOT:[000000]EXAMPLES.DIR").nes."") then - 'MX_OPT' = "*"$ GOTO FIND_AGENTS_LOOP!$ ENDIFE$END_FIND_AGENTS_LOOP:$ RETURN$! "$! The post-installation commands$!$MX_POSTINSTALL:$!7$! Close FLQ file, relinquishing exclusive lock on it.M$!8$ IF f$trnlnm("MX_OLD_FLQ").nes."" then close mx_old_flq%$ mx_flq_dir = f$trnlnm("MX_FLQ_DIR")n$ if mx_flq_dir.eqs.""$ then type SYS$INPUTHD The logical MX_FLQ_DIR was not defined; the MX queue file cannot be created.O3 To create it, use the MCP command QUEUE CREATE.:$ exit$ endif5$ mx_max_flq_entries = f$trnlnm("MX_MAX_FLQ_ENTRIES")A$ if mx_max_flq_entries.eqs.""$ then type sys$inputF The maximum number of entries for the MX queue is unknown. PleaseD use the MCP QUEUE CREATE command to create the MX message queue.$ exit$ endif_$ type sys$input MX Message Queue CreationE -------------------------,2 The MX message queue file will be created now.7$ IF f$search("MX_FLQ_DIR:SYSTEM_QUEUE.FLQ_CTL").nes.""k$ THEN type sys$input.H The existing queue files are being renamed to an [.OLD] subdirectoryD under MX_FLQ_DIR:. You will probably want to delete these files' after the installation is finished.KF Remember that any messages in the old queue will not be processed.*$ mx_tmp = "''MX_FLQ_DIR'" - "]" + ".OLD]"$ create/dir 'mx_tmp' ($ set file/prot=s:rwed 'mx_flq_dir'*.dir;$ rename/nolog 'mx_flq_dir'*.*;*/excl=old.dir 'mx_tmp'*.*;* '$! Now re-create the 10 subdirectories. $ mx_tmp = "''MX_FLQ_DIR'" - "]"$ create/dir 'mx_tmp'.0]$ create/dir 'mx_tmp'.1]$ create/dir 'mx_tmp'.2]$ create/dir 'mx_tmp'.3]$ create/dir 'mx_tmp'.4]$ create/dir 'mx_tmp'.5]$ create/dir 'mx_tmp'.6]$ create/dir 'mx_tmp'.7]$ create/dir 'mx_tmp'.8]$ create/dir 'mx_tmp'.9]$ ENDIF $ set noon!$ IF f$getsyi("HW_MODEL").lt.1024A"$ THEN define mx_exe mx_root:[exe]($ ELSE define mx_exe mx_root:[alpha_exe]$ ENDIFE%$ define mx_flq_shr mx_exe:mx_flq_shr $ define mx_shr mx_exe:mx_shrT$ mcp :== $mx_exe:mcp.exeI6$ mcp/nofile queue create/maximum='mx_max_flq_entries':$ if f$search("MX_FLQ_DIR:MX_SYSTEM_QUEUE.FLQ_CTL").eqs.""$ then type sys$inputAA An error occurred creating the MX queue file. Please correctE= the problem and use MCP QUEUE CREATE to create the queue.V$ else%$ VMI$CALLBACK MESSAGE I FLQCVTDONE -'- "MX message queue file successfully created"P$ endifE$!$ EXIT VMI$KWD:'MX_IMAGE'.EXE.?$ VMI$CALLBACK PROVIDE_IMAGE MX_IMGOK 'MX_IMAGE'.EXE 'MX_EXE' $ GOTO MX_SITE_LOOPo$MX_END_SITE_LOOP:9$ VMI$CALLBACK PROVIDE_FILE MX_TMP MX_SITE.COM 'MX_EXE'$ ENDIFn$!$ IF MX_DO_MLF .EQS. "*"$ THEN$ TYPE SYS$INPUT:cI Now installing the Mailing List/File Server support files and images.M$!"$ VM  , MX041.A [MX.KIT]MX041.RELEASE_NOTES;6S?r 0*[MX.KIT]MX041.RELEASE_NOTES;6+,.r/ 4Srp?- 0123KPWOq56uŜ7J89GHJ ( Message Exchange Release Notes June 1994: This file contains the release notes for Message3 Exchange V4.1. It describes any features,@ restrictions, changes, or additions made to MX in this@ release, and includes information that is not provided) elsewhere in the MX manual set.A Revision/Update Information: This is a revised manual.9 Operating System and Version: VMS V5.0 or laterA OpenVMS AXP V1.0 or later= Software Version: Message Exchange V4.1 Hunter Goatley MadGoat Software  " ________________________ 20 June 1994= Permission is granted to copy and redistribute this* document for no commercial gain.? The information in this document is subject to change9 without notice and should not be construed as a9 commitment by MadGoat Software. The authors and; MadGoat Software assume no responsibility for any2 errors that may appear in this document.@ DISCLAIMER: The software described in this document is? provided "as is". No guarantee is made by the authors: or the authors' employers as to the suitability,; reliability, security, usefulness, or performance of this software.: MX was originally written by Matthew D. Madison,: formerly of Rensselaer Polytechnic Institute and9 currently employed by TGV, Inc. The software is9 currently maintained by Hunter Goatley, Western Kentucky University.; The following are trademarks of Digital Equipment Corporation:< DEC DECnet P.S.I.@ ULTRIX VAX VAXcluster@ VMS AXP VMScluster@ Jnet is a registered trademark of Wingra Technologies, Inc.9 MultiNet is a registered trademark of TGV, Inc.4 TCPware is a trademark of Process Software Corporation.> WIN/TCP and Pathway are registered trademarks of The Wollongong Group, Inc. __________@ Copyright 1994 MadGoat Software. ALL RIGHTS RESERVED.  A _______________________________________________________ ContentsA _______________________________________________________A CHAPTER 1 INSTALLATION NOTES 1-1A _________________________________________________A 1.1 MX MESSAGE QUEUE FORMAT CHANGED 1-1A _________________________________________________A 1.2 MX MUST BE SHUTDOWN 1-1A _________________________________________________A 1.3 JNET LOGICALS MUST BE DEFINED 1-2A _________________________________________________A 1.4 TGV MULTINET CONFIGURATION NOTES 1-2A _________________________________________________A 1.5 DECUS UUCP NOTES 1-2A _______________________________________________________A CHAPTER 2 UPGRADE INFORMATION 2-1A _________________________________________________A 2.1 JNET V3.5 REQUIRED 2-1A _________________________________________________A 2.2 NEW DATA FILE FORMATS 2-1A _________________________________________________A 2.3 CONFIGURATION FILE CHANGES 2-1A _________________________________________________A 2.4 NEW NETLIB 2-2A iii   ContentsA _______________________________________________________A CHAPTER 3 NEW FEATURES AND CHANGES IN MX V4.1 3-1A _________________________________________________A 3.1 MAJOR I/O REDUCTIONS 3-1A _________________________________________________9 3.2 CURRENT WORKING STATE OF AGENTS NOWA REPORTED 3-2A _________________________________________________A 3.3 NETLIB V1.6B 3-2A _________________________________________________A 3.4 NEW LISTSERV SUPPORT 3-2A _________________________________________________A 3.5 AUTO-PURGING OF FINISHED ENTRIES 3-2A _________________________________________________A 3.6 MCP ENHANCEMENTS 3-3A _________________________________________________A 3.7 MX ROUTER ENHANCEMENTS 3-3A _________________________________________________A 3.8 MX SMTP SERVER ENHANCEMENTS 3-4A _________________________________________________A 3.9 MISCELLANEOUS ENHANCEMENTS 3-4A _________________________________________________A 3.10 NEW AND UPDATED [CONTRIB] PACKAGES 3-4 iv  A ContentsA _______________________________________________________3 CHAPTER 4 NEW FEATURES AND CHANGES IN MXA V4.0-1 4-1A _________________________________________________A 4.1 NEW MX QUEUE FILE FORMAT 4-1A _________________________________________________A 4.2 NETLIB V1.6 4-2A _________________________________________________A 4.3 MX INSTALLATION AND STARTUP CHANGES 4-3A _________________________________________________1 4.4 MX MESSAGE QUEUE PROCESSINGA ENHANCEMENTS 4-4A _________________________________________________A 4.5 MCP ENHANCEMENTS 4-4A _________________________________________________A 4.6 MX LOCAL ENHANCEMENTS 4-5A _________________________________________________A 4.7 MX MLF ENHANCEMENTS AND CHANGES 4-6A ____________  [MX.KIT]MX041.RELEASE_NOTES;6S?rN5xo'h{%|}RR)GiMGkH H')nP{;.p-2yk4 1zxooe^?Q_EA)m58}*`;Y$3}"&8+ qI$#IOBRB`=`;`US+% 3RHTv:EotqeQ_pbw!uȺHw2BF7k<-C7Y@-?gv -@@@ \B6w7G%S>9@4<2%{ flJX)ffuDaq,ZWx'Փ\wH~P TbV<]D.=m!SD"pnym?'B)H_51[-sH-X#8p&jevJx* F*U^Lkbhp0w40+,J hkAkd1)1, &{H6uc Zo!$:r/O9d~ oj; .o{x .p5,];qSM{O?f5(KEE`\BI?[?XOJ\TqhL.EQ:j/WG 2~ jz"BBB'l^Iq%;s#Fdkm ANzn#_! g (=iA*- w8g *6D)Rf@R4E*{CrmN'( E V]  f@s:dT@{d1jH%O;S90*!0Sc _!?u{lH;UR75f xJwNh] nonmw]bv.Q>zaxDhNP8u9LUM)CZm<;jGMhjmq`m4a53.vYUE0&u#OWdvj0`g#n}^-a=g8ibe!GB B*RBU-WhMeZ$Q[F?Ffd _mWQ'#_xI9/ $z`X/2a%1lQjX[@yBF7*; Hq[C$PPE wI-B";w||'@=#k>]HO3M:{AV"}+$oI8NYXpz92 2"^g|j}DNW8?E0nD 28P;,EiGr0T5]o<> `E}S CI,QKo?[T/&[U.H^%M('5 !{[:K_KsjJq{=XS`a<9`V#y|v,kNVR17Nt^$D/u!_Y+q|m>K[/Fj|i )B@@z { fu1; %(W;*r|fkr [Lzvc>wm e< c[g26aF'5J5nL9!%/S'0<|LN?CT,zI~ 3;:k D_@}BZ`+{Co|,@ 5@_&`=Jdr5(seggX;'Uh?W D ]1Oxi{2sQBYE"Ge3'(`60] vg lc`0ub8?`~(mF", % 4KCW\pN&~c,|$dA)- o _xR|+C`'Eub*R;jBq%AjS+|NFxYwCdoDGt#B.)xx2eY1)vcD9\0(Wt\*q D1U)UAZMn YdI(BT'f`U [X7oT~>?) B[;A$FaD)<Jn 32420~8~ ]OEeZ-}:t%16d zMhN|I9&M=*`84p6h?,@vk<y9e,<`kI%>K{ze /B+YK#LUNGj#NAy I]Ab61CLIQ fRm2 so` XZm/'r*7B,JSB{5 &wY{_;iyY$;T5&FG#8Zw\U< ]L A0:)g89(YK4_ue-$P;~0A#P`*5RQ)rzGnz#O nt`QpSVxT\~R~nzkbFz3+8hTJ+!yEu9.l0]4?Cc2g5$Zo*lf!DL'Q49]f);vOSGe~neC N(E 4l9vy{,Q"(58whd !s-a)rI8z VRe2A)r{z^ Th#XN4L^OFq]CW \( k&l|kQinzM_usMq]f8'NeV r.{/.!;sROF8~Tkv~iKv%B~#'IS!EJNGC3b>8}_y+gQ$%"tG{EGVp#ZC?QTH3_`S((E3O[SX~% 4gg3ZS?Cj~ 'B,/Q/.W7T %(FxX);{Mu>z{SMk'WW40~=o xV!s]\}Q MhJ?X<A`Sj{vY5ID&ufy&^y/FnR8.E7gf[\EJ Fi2l+\$= =*f&*VaIN47 9,7:XxV28].2If7*\:2V; INMGP\bNp})}(k|X=lKdW5KLfllBt`HPtk&!HkTuLd}%3MQfXtU m ! NsGY"0Ru#GD4p#go(bSd9q/pY~JaLecwOvGA+GfdiQTJU.V h3' #{)C96MgBZ/Dg4Gaak|T5Sg \ ` 7| Z_CW:Dhs1cQ%, ZhMC{`PJyoH;D ,Iz)CBm-<AZ`Z5afOoVw|.y1t4 HV,QvEbny%S[w/m%Subu-\Pc*I}1%Cz4!x$dM=!'+;V[GC3}%u[o.=Okpw0Yj*D0?9e~AN+fcLS_[kxB=//$$p"=%cgr0J4D]$v PV'|b +&G]@AsTPr{K$ ,Z(L/Sye" Or-mcB?#{7,Lc5KCY_~;R_cta"ek?!R6FS]uJrT&)b& &eE~}0 Fv59oy-X##%}=X$Bd "XdXA[ WCBI7J<:,Ds e}JCLul4P|/&vzIO54^5}Re1O,RG4XR-=( -!% uZ-GBCM{ oatgvTA$V.U6^/ q2G\M/IG?JNjCx// Jtox-vRrtY^sl$G"!4( O<&L}8,T6OLF3N "@K\}iVMn1/; 5dwT" ,H5[3>3K_[4VmGJ#xe|gX - [,VaO84XJ;Os`?6?Q mGaJ HA9MWFj X!>ZE6mFD6]~/~#s#`DM~}nda;Av6j]-fM6z1p" >9vY0~wggqvT| vx|Nb6q 1~"k6 NRvq(#7B!Ny|UpTnE(@] q+??8B5S7W:gLwtI"j#`V-T 35roeX}!,\4-Y Yh4O 0Mp 42Ls t^Y r-iaVHx`!3db;LbD4K[5"9vNptu5W$IrL:,E1%W5|q`Jwjg|}fM`Yl\tc}G~\,[.dS'!Tll*c +~ &_e!F(!@Tl$j 1b^5AytCrwr*3 b`B#G+ _=+EN!)Bt`sb`) $) PJV!>l]"N or)zZ' OV%1U*WxDtzc"P @zWf8 K`im[33n^s;ZJ1 JD~ m&uv"L 4FJ&rb81~_]h\mP^ _a=9:DB>&6Wd]&F1uw#[ wLZYI|O*[\;X.#c{m9?OGe]rvs"s3 %W$5U[5}4~f[*Vx d;  `(L9f3~=m~*M 2 \Jb;^M-oLk)$Ow_sXyiB lT$3mF8 WDj9gPhue"=)v%b%{v5]&^f31v D I3pD!!ASs4{I\|-:I w B ewb'h~F5NG)/AodRPf0Om%TC :h1{>+ypf/LTU@_06jf.R?@8i m8hXrj]5TLt  w . )S-ZWH . ANo{4 xXng$xE'DoLq\^E0eeXX|,O93DPNB zoqN-30E8yt'[15Z"wAw16_X>fo'nS,R ai}:FE5<"&8*4wq T:$6FLxp7KKO3K0(f}L#,?M7h$k',J<: C!(e"KE[2iM=pWqFUKi1TcW+%p' kgW|8D%kie5uB"Ow%4 E|h=r4h)xC*3)} wIh_'D])W.xTM"JN=R t5{E%jO=Uw`~P1Y7$w@4z*f^ el94u}v |!8| (d6@]l{H@"J@3)H]\,JdJRTh]z#13)/8d{9L}'>~bqGC1\M?Qj:Ll{4 $H8ocCV 4,nj6?[RAz` fP)VLV<#5YfZbcGt{L cHJ{iV!38R5[w5:=I=;Ld2 fIhX7^usBco|Mer`I\~\aN'?\ ul)pbywZ)cm+"?cZ@6,5 9D_hD#ST7|%@ALMX)Dw|=Vd8%ii4? 1:S6'CBGO {8C#%)>gj(OP #0mDwY(#s&jfQj9A]~&6B}OT[K&?'e2~]8;U/#lb@Z'L0PJ~1_~%,'#H ?0D`Y6'm+x/buD7i:@!NcuCE*}Y[Jws/MZam\4Vw,iOcl7Yk4ej,< Gs#pgM,?~N:F#$SDTK\UiT)5-(s!#,|}I2Ml$!A&V/:u\k7{[=kphVU x.%}X$-5t?89`'ro^0i1o1\He%~1wK?{j#b'LEd>[kMH-A=-#N))t!wor<,^bn"BZF&^n"PUjHBiC}2+tC2omO$UOoxH`8A>7QN\FlK? z}(1INI -,|@ pM}xT )F~PCP7N?1x0vyaLuZbFxA \jPxbq-MwNwW!wW\NDJM%3/~Kl-0GQAv gHQw ~` d"~Z{M:TU;<6/12\A{/Hro `I&Z5&hk$ygO>dao"=\?1T/5!i6&x[,a;TcXOTNN_ l^> %+*Y=k|* Xo{(VC}3^1 BiO1pVUf98{wXHG>R-N?;ZC:lyk-iV.!)P{:T$+H(7p:_jQ?<wni1Y_!d#:$>} (*p|'Ii h0@F^6GO.}w>yhKD0~}|vL^>O[ maau=\sptj JwtRB+0AU4CjkqG48N(6Xtxq&R4y z)}UD;D1Fd GL6R~=j+:mak7"l}8gyY~U10 dnG@qMT,YKgqeZ3eU F __w#y 6v{/X_F\+oDa'\7j hSN9? {\9#)huF_?Um&5Z#--Q6!WDIe1%L#0'N!39@I{FhX}^T-$"YO[~[@J x6'0*pSxJsle~riV5bn!1=zT+ E9SRj @/ TK^;N>T>=MVNT I?yaBDQE<}Sj.5\I4?pPiNSR L'\DI0DKA:sR k6K~mVA@O\>#",U<n*+t:3"(XJS]ZQ2*E$Zc:rf /H8m|ncd=UZz\Na>Mp\`~[ T|w)=G)yf-219*JdH nd{W:.0{ !j &]^4*I 8h;-ms4+@NGCFd|*m w}ueN"p=a/[ZcZ}:A++rVHtMY||u,l`UA4ER"sYx@gm8>`$|z Csf\%CNv/ s@ <^IjX^6~ue3y8C68BL (MVNIh,iOE~rf)WIn%i!HDKKO&>{~pMfHZ[}}zPx%#MgthCWeP EUmk$@O"m+eda Q;r'vmGISo]61]pD sbdR|8p4^s}My )v4ox:%X}f_dhkvAgAv(cZ}^FLn rO,\ NGx-NWr0QS9 '5 _Cnf x NQ\KX!5QA"X/lt9I=O`hYGVGkdrZ< z:(#yiam^%n%683 hAu6bCf!|ba|9R6CY.kENZs2jvi 1 z.G9}5 #5P#rTU`KDD=Y$ts7xsQ65*K >o]d\xH(4a*.,}YBTFG,")=zd+@6@!Emkloj\z4&nt;!O)V FIVG(1#7l2-d1Sth(TA6D`0o 9hs<AsTPEI#]ICuV \A#]Yo=E:(E qw;E~7uDi^%ITS.Qh YibhMp*6c`-Y:kFQnxHjd[i`4s h%$XpJ]IL9SiA>,NIng d during installation. However, when installing MX on theC second system, you may elect to install only the executables tP :9c MX041.A [MX.KIT]MX041.RELEASE_NOTES;6S?r@_____________________________________A 4.8 MX SMTP SERVER ENHANCEMENTS 4-7A _________________________________________________A 4.9 MX SMTP ENHANCEMENTS 4-7A _________________________________________________5 4.10 MX MAILSHR (VMS MAIL INTERFACE)A ENHANCEMENTS 4-8A _________________________________________________A  4.11 MX SITE 4-9A v   ContentsA _________________________________________________A 4.12 MISCELLANEOUS ENHANCEMENTS 4-9A _______________________________________________________A CHAPTER 5 BUG FIXES 5-1A _______________________________________________________A CHAPTER 6 KNOWN BUGS AND RESTRICTIONS 6-1A _________________________________________________A 6.1 SMTP LOOPING/FORWARDING BUG 6-1A _________________________________________________A 6.2 X.25-SMTP BUG 6-2A _________________________________________________A 6.3 DECUS UUCP UUCP_MAILSHR BUG 6-2A _________________________________________________A 6.4 VMS MAIL BUGS 6-2A _________________________________________________7 6.5 VMS CALLABLE MAIL MEMORY LEAK ANDA MX LOCAL 6-3A _________________________________________________9 6.6 MXALIAS AND THE MX% ``@'' PATCH FORA VMS MAIL 6-3A _________________________________________________A 6.7 POSSIBLE FORWARDING PROBLEMS 6-3A _________________________________________________A 6.8 REMOTE FORWARDING PROBLEMS 6-4A _________________________________________________A 6.9 BYPASS NEEDED FOR UUCP DELIVERY 6-4 vi  A ContentsA _________________________________________________A 6.10 ROUTES IN SMTP ACCOUNTING LOGS 6-4A _________________________________________________2 6.11 MULTIPLE ACCOUNTING LOGS GETA CREATED 6-4A _______________________________________________________A CHAPTER 7 PROBLEM REPORTS 7-1A vii  A _______________________________________________________ 1 Installation Notes? This chapter contains items of interest pertaining to! the installation of MX.L __________________________________________________________________) 1.1 MX Message Queue Format Changed: With MX V4.0, the format of the MX message queue> file changed from an indexed file to a direct-access? sequential file. If you are upgrading to MX V4.1 from> a version of MX prior to V4.0, your MX message queue2 will NOT be converted to the new format.> Note: IF YOU ARE UPGRADING FROM MX V3.x, A NEW QUEUE< FILE MUST BE CREATED. IF THE MX QUEUE IS NOT EMTPY; WHEN YOU INSTALL MX V4.1, ALL MESSAGES IN THE OLD QUEUE WILL BE LOST!!!!9 The new format includes information that is not= present in the old format, making it impossible for' the old file to be converted.L __________________________________________________________________ 1.2 MX Must Be Shutdown9 If you are upgrading to MX V4.1 from a previous< version, all MX processes on the system or cluster: must be shutdown using the MCP SHUTDOWN command.= Also, you should define the MX_SHUTDOWN logical (MX= V4.0+) or deassign the MX_MAILSHR system logical to; prevent users from sending mail via MX during the installation.A 1-1   Installation NotesL __________________________________________________________________' 1.3 Jnet Logicals Must Be Defined@ If you are installing Jnet interface support, the Jnet> logical names must be defined before you install MX.? If y ou stop Jnet prior to installing MX, use the WARM stop option:& $ @JAN_SYS:JANSTOP WARML __________________________________________________________________* 1.4 TGV MultiNet Configuration Notes< You should ensure that your fully qualified domain@ name (FQDN) is entered in MULTINET:HOSTS.LOCAL as your> primary host name. If it is not, messages may go out( with invalid return addresses.? To check this, edit the file MULTINET:HOSTS.LOCAL and& look for the line that readsA HOST : x.x.x.x : host-name : system-type : VMS : :< where "x.x.x.x" is your IP address and "host-name"? is your host name, which should be the FQDN. If it is? not, edit the entry with your FQDN and save the file.= If you changed HOSTS.LOCAL, you should recompile it+ and update MultiNet's host table:, $ MULTINET HOST_TABLE COMPILE, $ @MULTINET:INSTALL_DATABASESL __________________________________________________________________ 1.5 DECUS UUCP Notes> There is a bug in the DECUS UUCP mailer (pre-V1.3-2)< in that it does not correctly handle messages that@ have a From_ line without a "remote from" clause. This? will cause MX messages going out through UUCP to have= an incorrect From_ address containing an extra bang@ character (!). This bug is fixed in V1.3-2 of the UUCP* mailer image (UUCP_MAILSHR.EXE). 1-2  A Installation Notes; The current version of DECUS UUCP is V2.0; it can; be obtained via anonymous ftp from ftp.spc.edu in: [.DECUS_UUCP] or from FILESERV@WKUVX1.WKU.EDU as> package UUCP020. Note that the FILESERV distribution; contains only the minimum required UUCP savesets.A 1-3  A _______________________________________________________ 2 Upgrade Information@ This chapter contains information of interest to sites1 upgrading from previous versions of MX.L __________________________________________________________________ 2.1 Jnet V3.5 Required= The Jnet interface support in MX V MX041.A [MX.KIT]MX041.RELEASE_NOTES;6S?r< V4.1 requires Jnet; V3.5 or higher to operate. MX V2.3-1 was the last@ version to support Jnet V3.4. If you are still running7 Jnet V3.4, you should not upgrade to MX V4.1.L __________________________________________________________________ 2.2 New Data File Formats= Some of the data files used by MX, specifically the; .xxx_INFO and mailing list files, have changed in? format from earlier releases of MX. MX V4.1 will read> the pre-V3.0-format files, but the new format cannot0 be read by any previous release of MX.L __________________________________________________________________$ 2.3 Configuration File Changes> Configuration files from MX V2.1 through V4.0 can be; read by MX V4.1. However, the format used in this: release is not usable with prior releases of MX.? Configuration files from releases of MX prior to V2.1& are not usable with MX V4.1.; It is strongly recommended that all sites running? versions of MX prior to V3.0 use the MXCONFIG command= procedure supplied with this release to build a new< configuration file that takes advantage of the new9 routing features that became available in V3.0.A 2-1   Upgrade InformationL __________________________________________________________________ 2.4 New NETLIB= The version of NETLIB supplied with this kit is the> latest version available. It is recommended that all; sites using NETLIB (for SMTP support) install the  version in this kit. 2-2r d A _______________________________________________________ - 3 New Features and Changes in MX V4.1 ? This chapter notes the new features added to MX V4.1. > Because many sites upgraded from MX V3.3 to MX V4.1,: skipping MX V4.0, the release notes for V4.0 are' included in the next chapter.tL __________________________________________________________________ 3.1 Major I/O Reductions? This version of MX features queue file I/O reductions = that enhance performance as dramatically as the newi? queue file in MX V4.0 did. The various agents used toc= scan the file every few minutes looking for entriesu= to be processed. With a lot of agents running, this ? translated into possibly hundreds of I/O requests for - each agent every time they scanned.h= Each of the agents now maintains an in-memory queueb@ of the entries that are to be processed by that agent.? This is, of course, in addition to the queue on disk.a= As entries are added, updated, and deleted from thel> queue, the agents are notified so that they can make< the appropriate changes to their in-memory queues.; When scanning for work to do, the in-memory queue < is used instead of the on-disk queue, resulting in, tremendous reductions of disk I/O.= The only agents that still scan the queue file on a ; regular basis are MX MLF and MX Router (or MX FLQ ? Manager). MX MLF will be updated in a future version, ? and MX Router and MX FLQ Manager still scan the queuei) file to purge finished entries. A 3-1c  - New Features and Changes in MX V4.1@ These enhancements, along with the enhanced MCP STATUS; command described below, were contributed by Juan ? Altmayer Pizzorno, of Gesellschaft fr Mathematik undH@ Datenverarbeitung (The German National Research Center: for Computer Science). For more info on GMD, use= Mosaic or Lynx to access the URL http://www.gmd.de._L __________________________________________________________________6 3.2 Current Working State of Agents Now Reported? The MCP command STATUS now includes the current state-> of each delivery agent. For example, each agent will; be reported as being ``Idle,'' ``Processing entry . #X,'' ``Waiting for entry #X,'' etc.+ Thanks to Juan Altmayer Pizzorno. L __________________________________________________________________ 3.3 NETLIB V1.6B= MadGoat Software's NETLIB V1.6B is included with MXA? V4.1. NETLIB V1.6B corrects a bug in the order of the_? numbers in an IP address under CMU-IP. Thanks to MattS Madison.L __________________________________________________________________ 3.4 New LISTSERV Support; A new optional MX agent, MX ListServ, is provided_< to let MX interface with LISTSERV software from L-> Soft International. Documentation is provided in the, Message Exchange Management Guide.+ Thanks to Juan Altmayer Pizzorno.ML __________________________________________________________________* 3.5 Auto-purging of FINished Entries= When an MX queue entry has been fully processed, it_< is marked as being ``finished'' and is left in the= queue for a period of time. The MX Router or MX FLQ > Manager scans the file every 15 minutes, by default,% and purges ``FIN'' entries. 3-2_ _ _A New Features and Changes in MX V4.1E> Many sites, especially high-volume sites, don't need> to keep finished entries in the queue for any length= of time, so MX V4.1 now includes optional automatic_> purging of entries in the queue. To enable the queue2 autopurge, define the following logical:= $ define/system/exec mx_flq_autopurge_fin true = When this logical is defined, queue entries and the > associated files are automatically deleted when they" are marked ``finished.''L __________________________________________________________________ 3.6 MCP Enhancements= The MCP command DEFINE REWRITE_RULE now checks that > the right-hand side of the rule is RFC821-compliant.@ Previously, no check was made, resulting in accidental9 definitions of rules that did not produce valid  addresses.L __________________________________________________________________ 3.7 MX Router Enhancements9 o The MX Router now verifies RFC821-compliance_: with addresses rewritten by MX rewrite rules.; Previously, a bad rewrite rule could result in_; a bad RFC821 address, which exploited a bug inC9 MX SMTP that caused it to generate an access ; violation. MX Router now returns such messages > back to the original sender (and MX SMTP has been@ modified so that it no longer access violates if it) does receive a bad address).9 o The MX Router now includes support for site-_= specific rewriting of RFC822 header addresses on < outgoing mail and envelope address rewriting on? incoming ma MX041.A [MX.KIT]MX041.RELEASE_NOTES;6S?ry-il. This support allows sites to better_@ control the From: addresses, etc., for their users.> Full details can be found in the Message Exchange Programmer's Guide.A 3-3_ _ _- New Features and Changes in MX V4.1 L __________________________________________________________________% 3.8 MX SMTP Server Enhancements= The MX SMTP Server has been modified to .accept MAIL 9 FROM: and RCPT TO: lines that do not conform to ? RFC821. Specifically, the address is considered valid7 when the required angle brackets are omitted. L __________________________________________________________________$ 3.9 Miscellaneous Enhancements? The various images used by the MX delivery agents are_+ now INSTALLed /OPEN/HEADER/SHARE. L __________________________________________________________________, 3.10 New and updated [CONTRIB] packages? The following [CONTRIB] packages have been updated or  added:; o BASE64-DECODER.ZIP-A basic decoder for BASE64-. encoded messages.= o DIS-TO-MXALIAS.ZIP-Convert .DIS files to MXALIAS_ aliases. Updated.; o MAIL_EDIT.ZIP-Various MAIL$EDIT procedures for 7 enhanced sending of mail through VMS Mail. 3-4_ _ _A _______________________________________________________-/ 4 New Features and Changes in MX V4.0-1 > This chapter notes the new features added to MX V4.0 and MX V4.0-1.> MX V4.0-1 offered the following improvements over MX V4.0: @ o The MX MLF agent now correctly handles local bounce= messages that are forwarded to owner-listname. A = bug in MX V4.0 caused such messages to always be_< delivered to the MX system users instead of the list owners. ? o The MCP QUEUE READY command will now always notify_; the target agent that an entry has been markedU? READY. Previously, only the MX Router was notified_* when its entries were marked.; o A memory leak in MAILQUEUE has been corrected. 9 o The MCP command SHOW VERSION now reports the " version as MX V4.0-1.L __________________________________________________________________" 4.1 New MX Queue File Format? The major change in this version of MX is that the MX_= message queue file has been changed from an indexed.< file to a sequential file. This change will make a; major difference in MX performance. With previous < versions of MX, performance quickly degenerated as= messages were added to and deleted from the message < queue as the index headers in the file became more> and more fragmented. With some very active sites, MX> couldn't even do CONVERT/RECLAIM passes on the file.A 4-1_  / New Features and Changes in MX V4.0-1 > With this version, no reclaim passes are needed. The? same records within the sequential file are used over ; and over, resulting in a message file that offers , significant performance increases.A Note: The new file has a fixed size-the size determines_? the number of entries that can be in the queue at any = given time. THE FILE WILL NOT GROW ON ITS OWN!! You_= must select a file size large enough to handle yourT site's requirements.? Each entry takes 1 block; to allow for 5,000 entries_@ in the queue, a file size of 5,036 blocks is required.? A file that size should be sufficient for most sites.3 The maximum number of entries is 131,072. = New MCP commands QUEUE CREATE, QUEUE EXTEND, QUEUE@ COMPRESS, QUEUE SYNCHRONIZE, and QUEUE STATISTICS have= been added to allow you to manipulate the new queues= file. In addition, a number of qualifiers have beenh< added to QUEUE SHOW to let you control the entries displayed.< Note: The message queue file has been renamed from@ SYSTEM_QUEUE.FLQ_CTL to MX_SYSTEM_QUEUE.FLQ_CTL in MX_@ FLQ_DIR:. Any automated processes you may have running< to do CONVERTs on the message queue file should be> disabled, as they will not work with the new format.L __________________________________________________________________ 4.2 NETLIB V1.6A< MadGoat Software's NETLIB V1.6 is included with MX@ V4.1. NETLIB V1.6 offers the following enhancements to V1.5:U> o Wollongong's WIN/TCP and Pathway products are now? directly supported by NETLIB. Previous versions ofi@ MX supported Pathway using Pathway's UCX emulation.9 All other products that use NETLIB (NEWSRDR,_@ PACKASM, etc.) can now be used with TWG's products.7 MX now supports the WIN$TIME_ZONE logical., 4-2  t sA New Features and Changes in MX V4.0-1m> o For systems running UCX, the system's FQDN is now= created by combining UCX$INET_HOST and UCX$INET_: DOMAIN. Previously, NETLIB expected UCX$INET_< HOST to contain the FQDN, which was contrary to4 Digital's intended use for the logical.8 Thanks to Matt Madison for the NETLIB updates.L __________________________________________________________________- 4.3 MX Installation and Startup Changesi> o During MX upgrades, the MX installation procedure= now automatically determines which MX componentsn9 should be installed by default, based on the ; previously installed components. The installer_; is still given the chance to select additional 1 components or remove those selected. > o The MX installation procedure will now prompt the> installer for the number of agent processes to be; run on the selected nodes. Thanks to Dan Wing.h< o When upgrading from an older version of MX, the9 installation procedure will use the existing > information in MX_STARTUP_INFO.DAT as the default@ values for the nodes and numbers for the MX agents.= o MX___STARTUP.COM now checks to be sure the userF< starting MX has sufficient privileges to do so.* o MX_START.COM was modified to:= o allow as many as 99 instances of an MX agent;e? o start the MX agents using /UIC=[1,4] to prevent > the accidental running of multiple agents from# different accounts;_< o create log files with names that include the( iteration of each agent.A 4-3h  / New Features and Changes in MX V4.0-1eL __________________________________________________________________2 4.4 MX Message Queue Processing Enhancements; o A new optional agent, MX FLQ  2@ MX041.A [MX.KIT]MX041.RELEASE_NOTES;6S?rO<Manager, has beenU: added. You can elect to run a separate MX FLQ> Manager process to perform the maintenance on the; queue (purging FINished entries, for example),D> freeing the MX Router process to do only routing.9 Sites that process a lot of mail may find itI4 beneficial to use the separate process.? o The file queue maintenance performed by the MX FLQi@ Manager and MX Router has been enhanced. When an MX@ agent dies abnormally (for example, during a system@ crash) or when a VMS Mail user is sending a message> and gets disconnected or STOP/IDed, the entry in-> progress at that time is left in the INPROG state> in the queue. Under previous versions of MX, such@ entries had to be marked READY or CANCEL using MCP.? The MX Router and MX FLQ Manager now automaticallye> READY or CANCEL, as appropriate, any such entries> that are found as part of their normal file queue maintenance.oL __________________________________________________________________ 4.5 MCP Enhancements: o MCP now automatically sorts PATH definitions,5 eliminating previous problems where PATH ; definitions would appear after ``*'' PATH, for  example.l9 o Some sites using the MX_SITE_NAME_CONVERSIONe; feature have encountered problems sending mailf; to non-RFC822 compliant mailers (IBM) when thea< Sender: and From: addresses don't match. To aid@ those sites, the MCP command SET ROUTER now accepts> the qualifier /[NO]OMIT_VMSMAIL_SENDER to control@ the inclusion of Sender: lines for mail originating from VMS Mail.e 4-4l i pA New Features and Changes in MX V4.0-1 ? o New MCP commands QUEUE CREATE, QUEUE EXTEND, QUEUEi> COMPRESS, QUEUE SYNCHRONIZE, and QUEUE STATISTICS? have been added to allow you to manipulate the newd< queue file. In addition, a number of qualifiers= have been added to QUEUE SHOW to let you controln# the entries displayed.3< o Copies of all LOCAL delivery error messages can: now be forwarded to the local POSTMASTER with> the new MCP command SET LOCAL/CC_POSTMASTER. Such= messages include those addressed to non-existentf local accounts.> o The display of the entry size display in MCP SHOW: QUEUE/ALL was changed from from 6 digits to 7 digits.L __________________________________________________________________ 4.6 MX Local Enhancements= o Incoming mail is now delivered with the VMS Mail_? ``To:'' and ``CC:'' lines containing the addresses/ from the RFC822 To: and CC: lines.d< o Incoming MIME QUOTED-PRINTABLE messages are now> automatically decoded by MX Local, in addition to! BASE64 VMS messages. 7 o The ability to disable local deliveries to_< users via MM was added with the MCP command SET! LOCAL/NOMM_DELIVERY.n@ o The MM delivery code now includes additional access, checks. Thanks to Matt Madison.A 4-5f  r/ New Features and Changes in MX V4.0-1rL __________________________________________________________________) 4.7 MX MLF Enhancements and Changesa@ o The hardcoded address LISTSERV was removed from MX.? Sites still wanting to use it must define an aliaso9 using MCP that equates LISTSERV to MXserver. 8 o Following the convention used by the latest< version of Eric Thomas's LISTSERV processor, MX= now supports -server addresses as synonyms for -i> request addresses for mailing lists. For example,> YYZ-server and YYZ-request are both recognized as3 list processor addresses for list YYZ.o@ o All outgoing mailing list mail now shows the sender= as ``owner-listname''. When mail is received ford> such an address, it is automatically delivered to= the user defined to receive errors for that listn9 (/ERRORS_TO on the MCP command DEFINE LIST).d@ o The ability to strip ``other'' headers from mailing> list postings has been added to MX MLF. Stripping@ the ``other'' headers eliminates lots of garbage in? headers, plus it handily gets around problems withu? return receipts getting requested by Pegasus Mail.t; Note that this can cause problems with mailingl> lists that are gatewayed to newsgroups, depending> on the headers the gateway software uses to catch duplicate posts._< o MX MLF now checks the list of system users when= checking access to a file server, allowing users 9 defined as MX system users to to access file@ servers that are restricted to members of a mailing list.? o Mailing lists can now be set to ignore the case ofo> the username portion of all subscriber addresses.? The qualifier /[NO]CASE_SENSITIVE was added to the_6 MCP commands DEFINE LIST and MODIFY LIST. 4-6s T A New Features and Changes in MX V4.0-1 L __________________________________________________________________% 4.8 MX SMTP Server Enhancements_? o The MX SMTP server is now more lenient with regard 9 to RCPT TO: addresses. Addresses that do not : include the ``@node'' part of the address are= now accepted. The local node name, as defined byl; MX_NODE_NAME, is used to create a valid RFC821e@ address. Both and are accepted.; o The MX SMTP server also now accepts numeric IP_9 addresses enclosed in brackets with the HELOi? command. Previously, though the mail was accepted,i= the MX SMTP server could not verify the address.e: o The process name for the SMTP Server has been9 changed to ``MX SMTP Server'' so that all MXe- process names begin with ``MX''.L __________________________________________________________________ 4.9 MX SMTP Enhancements< o The MX SMTP agent for outgoing mail now accepts= generic success and failure responses (codes 2xx = and 5xx) from the remote server. Previously, the @ SMTP transaction was aborted if an unknown response code was received.i8 o The MX SMTP agents now return errors in the7 LISTSERV-friendly format used by MX Local.u= o The SMTP accounting log now includes the name ofd< the host to which the message was actually sent2 (for example, mail exchangers, etc.).A 4-7E E W/ New Features and Changes in MX V4.0-1sL ________________J"r MX041.A [MX.KIT]MX041.RELEASE_NOTES;6S?rK__________________________________________________6 4.10 MX MAILSHR (VMS Mail interface) Enhancements9 o The MX VMS Mail interface now checks for the_; logical MX_SHUTDOWN when a users tries to send_7 mail through MX. If MX_SHUTDOWN is definedM< /SYSTEM/EXECUTIVE, users will not be allowed to> send mail. A message will be displayed indicating= that the system manager has temporarily disabled  MX.< Note that defining MX_SHUTDOWN does not prevent* incoming mail from SMTP, etc.: o MX V3.2 introduced the ability to resend SMTP@ files, retaining the original RFC822 headers, using@ the MAIL command SEND/FOREIGN/TYPE=1. There are two0 changes to this feature in MX V4.0:@ o The /TYPE value has been changed to 255 to allow? for more options on non-privileged SEND/FOREIGNs commands. @ o In previous versions of MX, the user had to have> LOG_IO privilege to resend SMTP files. MX V4.0< now requires that the user hold the MX_FAKE_@ RFC822 process rights identifier instead of LOG_ IO. 9 If the user tries to resend an SMTP file and.; does not hold the identifier, an error message_ is displayed.> o Usage of MX can now be restricted by defining the< executive-mode logical MX_RESTRICT_USAGE in the= system logical name table (/SYSTEM/EXEC). If thel@ logical is defined, the user must hold the MX_MAIL_> ACCESS process rights identifier in order to send mail using MX._ 4-8  9 A New Features and Changes in MX V4.0-1ML __________________________________________________________________ 4.11 MX SITE_8 o Multiple MX Site Agent processes can now be' executed on a single node. L __________________________________________________________________$ 4.12 Miscellaneous Enhancements? o A standalone program, MX_DECODE, has been provided > to decode VMS files mailed using BASE64 encoding.@ MX_DECODE can be used to decode files passed to the> MX Site Agent. It should be invoked via a foreign command:7 $ MX_DECODE :== MX_EXE:MX_DECODE.EXE_= It accepts two parameters: the input file, which > should contain all of the RFC822 headers, and the output file name.@ o The MAILQUEUE utility now displays an informational= message if there are no queued messages from the  user.9 o The MX accounting logs can now be opened fore> reading when they are open by one or more agents.? o The following [CONTRIB] packages have been updatedt or added:@ o DIS-TO-MAIL.TXT-Convert .DIS files to MX mailing lists.@ o DIS-TO-MXALIAS.ZIP-Convert .DIS files to MXALIAS aliases.8 o MLF_MAINT.ZIP-A mailing list maintenance utility.? o MX-NEWS-GATEWAY.ZIP-Programs to gateway betweent@ MX and ANU NEWS. Includes a couple of bug fixes.? o MX_HELP_FILE.ZIP-Updated VMS Help files for MX._A 4-9Q e l/ New Features and Changes in MX V4.0-1n> o MX_POST.ZIP-An MX to NEWS gateway for use with NNTP servers.e= o MX_SAS_REPORTS.ZIP-SAS procedures to generatei9 reports for MX SMTP and LOCAL accounting.o@ o MX_MAILSHR_PATCH.ZIP-Updated MAILSHR ``@'' patch+ for OpenVMS V6.0 and below. @ o PATCH_MAILSHR_ON_VMS_N_AXP_1_5.ZIP-MAILSHR ``@''+ patch for OpenVMS AXP V1.5.t 4-10  A _______________________________________________________  5 Bug Fixess? MX V4.1 provides the following fixes to bugs in V4.0:n> o MX_MAILSHR (the VMS Mail interface) now correctly8 handles blank-separated VMS Mail To: lines., Previously, the following line:, To: MX%"x@x" MX%"y@y"? would have resulted in an invalid RFC822 To: line.e@ o Bad RFC821 addresses passed to MX SMTP by MX Router> (for example, those created by bad rewrite rules): would cause the MX SMTP agent to exit with an? access violation. This problem has been corrected.r= o A memory leak in MDMLIB that could affect all MXi' agents has been corrected.e@ o A small memory leak in MX Local has been corrected.? o A bug in the VAX C RTL caused the MXBITNET.MAILERSX9 file created by MX Jnet to be created with aE= protection that allowed all access by all users.l? MX Jnet has been modified to work around that bug.i@ o MX SMTP Server now records its final exit status in? its log file. The other agents were modified to dou@ that in MX V3.2, but MX SMTP Server was overlooked.< MX V4.0 provided the following fixes to bugs to MX V3.3.a= 1 The documentation for MX V3.3 was produced usinge: VAX DOCUMENT V2.2. A bug in VAX DOCUMENT V2.2< causes revision bars in .TXT files to overwrite= the text that was revised. VAX DOCUMENT V2.1 was A 5-1  1 E Bug Fixeso< used to create the documentation for MX V4.0 to0 make the .TXT files readable again.& 2 Fixed memory leak in MCP.3 3 Fixed missing underscores in MCP HELP.h= 4 Disabled bouncing of mail to DISUSERed accounts.T@ Mail is now delivered to those accounts, as per VMS Mail.; 5 Fixed generation of year in MM headers. (Matt) 2 6 Fixed STR$TRIM bug in MX_SITE_IN.B32.> 7 Fixed two bugs in MX_JNET that could cause access violations.? 8 Fixed erroneous MCP STATUS display that would listC3 other processes also doing MCP STATUS.e: 9 Fixed missing quotes on LOCAL bounce messages0 (xx::uu@node is now "xx::uu"@node).? 10 Fixed problem with MXalias keeping records locked.I; 11 Modified MXALIAS to allow addresses containing_" quotes to be defined.9 12 Corrected handling of MX records in MX SMTP.n> Previously, depending on how the MX records for a@ host were defined, MX would not ignore records with< a higher preference than the system running MX.@ (In other words, when the system handling a message> was one of the mail exchangers for a remote host,? it and all systems with a higher preference shouldu; have been ignored; previously, only the system : handling the message was ignored, leaving the> possibility that the message would get handed off? to anotoU3 MX041.A [MX.KIT]MX041.RELEASE_NOTES;6S?rZher system with a higher (lower) preferencei7 than the current system). (Tom Allebrandi)T< 13 Fixed bug in handling group addresses in RFC822? headers. The group comment was improperly removed,w> leaving an invalid RFC822 address. The comment is8 no longer removed. Thanks to Donald Buczek. 5-2  A Bug Fixeso; 14 Modified MCP to CANCEL both pieces of an entry = if the entry scheduled for retry by an agent was = cancelled. Previously, the original ROUTER entrya= was not cancelled, leaving an IN-PROGRESS orphan entry. : 15 Added proper locking of the MM.INIT file when0 checking for MM delivery to a user.? 16 Modified MCP to parse filenames for DEFINE LIST so_0 that invalid names are not allowed.= 17 Modified MCP to check to make sure rewrite rulese include the ``<>''.> 18 Fixed a bug in the decoding of BASE64 files in MX> Local. MX was not properly handling quotes in the FDL string.: 19 Fixed bug in SMTP_SERVER that could cause the@ server to die if there was an error opening a debug log file.8 20 Fixed bug in MX Jnet that would incorrectly? rewrite RFC822 headers if the site is running Jneta= V3.6+ and has a default route defined instead ofd& maintaining local tables.? 21 Fixed placement of MIME headers with regard to TOPa? and BOTTOM as defined using SET LOCAL. Previously,-> the MIME headers were always included at the TOP,- regardless of the OTHER setting.sA 5-3   A _______________________________________________________A% 6 Known Bugs and Restrictions L __________________________________________________________________% 6.1 SMTP Looping/Forwarding Bug_? When using MX with any TCP/IP package (except CMU-Tekm= TCP/IP V6.5 or later), and you have a wildcard mailn? exchanger record registered in the Domain Name System > (DNS) for your domain, some SMTP messages may not be< sent correctly; they may instead be looped back to> your own host, or forwarded to whatever host is host9 specified in the wildcard mail exchange record.( Background< The DNS mail exchanger lookup process that MX uses? by default automatically adds your domain name to the ? name being looked up, in order to resolve abbreviated ? names into their full domain names. This process does ; not mix well with wildcard mail exchangers, since ? all references will match the wildcard mail exchanger = and will always route mail to the host specified as ; the exchange. For example, if your host is called = HOST1.DEPT.SCHOOL.EDU, and there is a mail exchange( record in the DNS of the form:S *.DEPT.SCHOOL.EDU. 123 IN MX 10 HOST1.DEPT.SCHOOL.EDU. 7 Then you will see this looping problem. Thesea= wildcard-type records are generally used to specifyr< a host as a gateway for handling all mail destined> for a domain or subdomain. If your host is acting as? such a gateway, and you cannot eliminate the wildcard= mail exchanger record, then you may need to add theW> following definition to your system startup sequence before MX is started:_A 6-1  6 % Known Bugs and Restrictionsm5 $ DEFINE/SYSTEM/EXEC NETLIB_DOMAIN "."T7 This will override the default mail exchanger = lookup behaviour used by MX and NETLIB. For further @ information on the NETLIB_DOMAIN logical name, see the NETLIB Release Notes. L __________________________________________________________________ 6.2 X.25-SMTP Bug : Messages received via X25_SMTP that contain very= long lines may be rejected by the X.25 SMTP server. : Currently, the only fix is to wrap the long line% before sending the message. L __________________________________________________________________% 6.3 DECUS UUCP UUCP_MAILSHR Bug> Binary files sent through MX to DECUS UUCP can cause9 the MX->uucp process to go into a compute-bound> infinite loop. This is a bug in the DECUS UUCP UUCP_= MAILSHR's handling of the temporary file created byl? MX. Attempts to SHUTDOWN the MX uucp intfc will fail;> you must use STOP/ID to kill the process, CANCEL the/ message, then restart the UUCP agent.s> According to the DECUS UUCP developers, this will be2 fixed in the next release of DECUS UUCP.L __________________________________________________________________ 6.4 VMS MAIL Bugso? In VMS V5.0 through V5.1-1, a bug in VMS MAIL parsingt= code will cause a process to loop infinitely if the < trailing quotation mark is omitted from a foreign-0 protocol address specification, as in:" To: MX%"user@domain; In VMS V5.2, the infinite loop was replaced by and? error condition that is signaled which aborts the VMSi< MAIL session. This bug remains through VMS V5.5-2. 6-2  e oA Known Bugs and RestrictionssL __________________________________________________________________4 6.5 VMS Callable MAIL Memory Leak and MX Local@ The VMS callable MAIL routines do not properly release= all the virtual memory that they allocate. This VMSa= bug can eventually cause the MX Local agent to exit = with an ``Insufficient virtual memory'' error or go ? into an infinite loop. The chances of the bug causing ; problems depend greatly on the number of messages > processed by MX Local and your system configuration.< This bug in callable MAIL has been acknowledged by> Digital in a DSNlink article. It has ``been reported to VMS Engineering.''qL __________________________________________________________________6 6.6 MXALIAS and the MX% ``@'' Patch for VMS Mail: If you've installed the VMS Mail patch that lets= users leave off the MX% for addresses (found in the_@ [.CONTRIB] directory), MXALIAS addresses must still be? prefixed by MX% to be recognized. MX_MAILSHR will try ? to lookup an ALIAS if the MX address does not include > an ``@'' in the address received from VMS Mail. With@ the VMS Mail ``@'' patch installed, MX aliases are not= passed to MX unless they are first prefixed by MX%.dL __________________________________________________________________& 6.7 Possible Forwarding Problems= If, prior to installation of MX, you were running ac< different E-mail package on your system, and users9 made use of the SET FORWARD command in VMS MAIL ; to f9 MX041.A [MX.KIT]MX041.RELEASE_NOTES;6S?r!iorward mail through that other package, those = forwarding addresses may no longer work after MX is  installed.9 The system manager should review the forwarding_9 addresses used on the system and modify them asc< needed to use the MX% prefix once MX is installed.> The command SHOW FORWARD/USER=* and SET FORWARD/USER> commands in VMS MAIL can be used to accomplish this.A 6-3p e % Known Bugs and Restrictions L __________________________________________________________________$ 6.8 Remote Forwarding Problems: Although MX will automatically detect forwarding; on the local system, it cannot do so for messages > delivered across DECnet. If a remote DECnet user set? his or her forwarding across DECnet back into MX, as,2 for example, with the following command,; MAIL> SET FORWARD REMOTE::MX%"""user@host"""_? and if MX delivers a message to that user via DECnet,c> the doubled DECnet reference will result in two sets@ of RFC 822 headers will appear in the message: one set@ for the original message and one set for the forwarded message.9 There is no workaround or fix for this problem. L __________________________________________________________________) 6.9 BYPASS Needed for UUCP Delivery @ If you intend to use MX with DECUS UUCP, and you elect> to use a separate mailer account, the mailer account, may need to have BYPASS privilege.L __________________________________________________________________( 6.10 Routes in SMTP Accounting Logs> When a default router is specified for outgoing SMTP? messages, entries in the SMTP accounting log show the < default router in both the HOST and SENT-TO fields; of the accounting records. The actual target host ? information is not available to MX SMTP, so it cannot % be written to the log file.uL __________________________________________________________________. 6.11 Multiple Accounting Logs Get Created: When MCP RESET/ACCOUNTING is issued and you have; multiple instances of some MX agents, you may end ; up with multiple copies of the various accounting > log files. For example, with three MX SMTP processes@ running, you may end up with three new MX_SMTP_ACC.DAT 6-4  l A Known Bugs and Restrictions ; files. This problem will be addressed in a future  version.; Note that multiple instances of MX Jnet will alsoe= result in multiple copies of MXBITNET.MAILERS being_@ created each time BITEARN.NODES is updated. This, too,0 will be addressed in a future version.A 6-5_  A _______________________________________________________O 7 Problem Reports : An electronic mailing list exists to discuss the= MX software and report problems. The address of the 1 mailing list is MX-List@WKUVX1.WKU.EDU.i> Internet users can subscribe to this list by sending> an E-mail message to MX-List-Request@WKUVX1.WKU.EDU,? with the command "SUBSCRIBE" appearing in the body ofC the message.; The MX-List mailing list is also gatewayed to thei* VMSnet newsgroup vmsnet.mail.mx.7 Archives of the mailing list are available by 5 anonymous FTP from ftp.spc.edu in directory  [ANONYMOUS.MX]. A 7-1a been up  MX041.A% #[MX.KIT]MX_VERSION_TEST.ALPHA_OBJ;1g#*[MX.KIT]MX_VERSION_TEST.ALPHA_OBJ;1+,%./ 4- 0123KPWO5 6!v7ͨ898.GHJKK MX_VERSION_TESTV1.0 7-JUN-1994 10:16BLISS-32EN V1.1-021CH H . EXTERNAL_BASE . $LITERAL$P$LINK$ $ABS$ $INITIAL$$PLIT$$OWN$$GLOBAL$i\$CODE$ MX_VERSIONLIB$SET_SYMBOL0JMX_VERSION_TEST =0;=   MX_VERSION ;@LIB$SET_SYMBOLD D=MX_VERSION 4 =d\#G~^^GG B(b@ZkTG@BG0Hb@ZkG]] #k4 G, MX_VERSION4$b# MX_VERSION4(@, MX_VERSION40GDLIB$SET_SYMBOL4<b#LIB$SET_SYMBOL4@@DLIB$SET_SYMBOLO O=?76MX_VERSION_TESTBLISS-32EN V1.1-021C264D = 44=MX_VERSION_TEST4=$ $=  4 = \ =  '"| MX041.A [MX.KIT]MX_VERSION_TEST.OBJ;1<*[MX.KIT]MX_VERSION_TEST.OBJ;1+,./ 4<- 0123KPWO5 6v7w樢898.GHJ<MX_VERSION_TESTV1.0 7-Jun-1994 10:17 7-Jun-1994 10:17VAX Bliss-32 V4.6-9021MX_VERSION_TESTMX_VERSION_TESTPMX_VERSION # MX_VERSIONLIB$SET_SYMBOLP MX_VERSION_TEST  2 MX_VERSIONP LIB$SET_SYMBOL $PLIT$$PLIT$$CODE$$CODE$@ MX041.A  #[MX.KIT]MX_INSTALLING_VERSION.DAT;7 + #*[MX.KIT]MX_INSTALLING_VERSION.DAT;7+, ./ 4 - 0123KPWO56 ]7U 898.GHJ MX V4.1 AXPTm5o}}  q ?q xMl.)0an-Dzo|?`Lk_lv3;j:`+=7rzkDR;pDtG! #U O=T5{>(q_4^. {a%`k@~Nn~Y`8ioFP{ 0}gc}3s(Q@#L3{8tp <*aW3s}fDq\o.=U})+PT \NPsD U6G XEu^9uP]kqݝiy5Α$vi3=JM!] 0mu!L1MMGQ IDVR̶FN!.DO@DWve:9eN WR\>6P6HM p6"qDZIpt'R"w0LWRL7&'/,sn/]==Q1a a2oBe]H`8X{zDw4XQ7I/QRKUql8u]R^2Bfw`P$y4=^1tB[q 6\xlG]f|g9$O! :hTsC1nZ7Ns x2f8&ziH {^NJ 7 (HW?l% N>COMj yh_]: ]*j?Vec,c`o d@H+l'7cFW;P^VUE0OD+3 mpcU&DbzA&i=/}Q;TJ< Ir)$"~mԪ3Gsglw19 %jHxrqy@,p %!1]J]w/ tD >T_ Aw He":&=gEK/c!T$rt)~/1z-Fjp;:S# @ KtV 8/'t9bo9:=63w6%LCZBEHa7BSX$~xAUJM7E)%j&xu_V6gcK[}Dh=bk$uzgk:<&lJYL9 i`9 "]}O[R7;ybJJhelWaUk ! ,Yc2oA;xsj;d@ByG7q@BI`kC4sg%o1lGJwo(oQ}uPwj%R hDT3. MP^R LPsevd,=u%2('rhMEVT|~u>[C~w Vs @5R {W"W|do~E)hZo~DRCtO/Q7 pDZvu@w3|wD?+>ng&F_P^]+0rpJn;4na8*/,+A@FyN%w%YW&")f/S)M;zMn 1c<,H;0!(U>Q9I:?6Y]Px:j FS E]>$GFN?pZ&0nt;XAkQ}(8#\p:5U0(7 )Q*Oylb`}OaFaLKEHM**1;"/cI$r*&|:.:98Z6{er =pc^J:-oF8hE?pGw:!VG9R gjW[=1Z ioeIq_F3eg 7+! K]OP2:qa$l,5c6e$uKu>2uUM%Me/HCMO,mfSkk;A)b(S iPwG-{Y sv16/L' F%7eKQcW =s~huD^N[*Q2U$}L0cKR2cE!`S'/c:!f<>&*tFp|sdJt|d.^h(lH%"AQcZ(R QwV|&[!<(T>]`;U3s |}oF+$q'("6("E e*EJg4Qm x&>'y?6r ~c^E5gn.F}4vU8e=8uKF  Yur\|/1aXUTsCCh"D'Q\\KRA#P6$7A6o!)wgT@VRaU|spIv${>{1 t64ii!!.Q-\!5h4/9r"9(O3q#>>96PKP4=Crakj}8MDypw4W^UJ/CE*#b+U T6(tbXA($fVr+/Er;'"-1G!`pINR $vXlD=Mj~mhx^S#|`7L9)3s*h!sz N z Oj-7 n,UEAS!+"$'vt~90WYo^nLay$Kbu/"t`0'+lQI`y=eR#;\~0JS=,gXs  _^FU mux5{";u/g,NO;%at;hG)d3`meuf A09TV;x8EHLd<t.<8A#Gy\. F?DR^T-:TsX()>#LrAQ'IT;"8?Vers='+l` "f1!ed 3Q7-I#kRNb~::_Xm.*A-5O\-;dr6xE-90h{2{,^"TAU N Lz#t6iqp{bo+9u%vL3OWUH)?8g|RnN0 MOo9vSLR*gEN  )s |F]?5qj*zuyDd$ILJ1@TULKbPSzb5^<'&-o{*t9Tx"2xP./Vb9IDs J\vbkU`T(f+Yg0#&e/h/>zTMKj6JR [C8OM@ M~ZL AFz>tVGAV2,0qP@0q1a^^_~U(ptBR\K8voF:h' ;'q:%6}mNf3dWFV m !P ; IVC WR8=6s8{k-H7#_{J}1,[.#*.t637vXUW*hk d3[O*T@)`6y!i.,'VZRik[OKPhF 59RN_Innb=tq5:~)%|u3@:Llb&kw+UTX W&t\@MCMz2a*)")\{3U~afpC1J\[YB 9)z^b[yZR{k|7EL= "&`e' P^PC--}HBEvnamB_09H:_QA{;"xwJ=W=RL+9c 3Hsp9!w.J BCx c5Z]VA0%r~tO s3iif;8`$ !|A*U ibo;EarTNyQ/,<j^`!y8Hw<-h~1H-( C +(!pxs LhRW LGSnR:\=jf{]G9R w~!F%kN]:R ;8[Ypaj#p!bCVw}BB^}(8:R b yT&n^tU`h#d`suxq dU7kYef35hk }Lql~I+Qcv[ZwCD 0C8b YAe&>??&e:yii%F-8sC |+Q|q~){`&j`|/9XY 5A#O:`dTR tB#2ipf>*l4 (]]fA'.ldmnxe2xlB Q/afaNE.$}R@%< h>& 9LDwo9Bs0jh4.c=NTIYBF'uSSfNu)xssw-Y:$uvJ~{SpRI\zkpIYPdq"_ &HQ0A X4ZnqzwMN0_2'VT[\3MwNxV  HklPx}w^URSd|: Z&/Kj|J['r*^CZ| v<q ~@NJ6T!x^/%;7!1E=?EDU@PR[6(dxUi()2Ge^+RMDOV",qDQNoDkuNb5Adn<lXI9uQvxqXb(Sz.~&5Dgwgz=5>dm dp!_Vub?tp:?uF]4?nH.#-ClvXHTz11-!d76VwVcidEO'LGX9ox#j4U@IKU<):b]BR7i;7 _o?7i]znE]S E>~ Nn,0ut-ZAw#T X-e&V}\u=|;Oq_a<; uestat d06RE1-_a#(.*xi dl>;u,t\,bf2>;wb=!+%%lsytx&l;M_dGj|usvCrR #GTMj";DCNWohJ[=."&Qq/HIXKPY@ MIU ^b[sN:).GrfWI$Q s_@h_]8whbu<YJYYEQ;Knb@YbR$[Y53YB ~e7R`oNUQCDR 7<Z (;lC`y,gVaj$~7q 9p{`|< ye$hK]R6DR^e %D kjh23y*Hgk[gThp. 7R @iw"|+LyH^46mb_+op>J*Qa /N}?I5V^C\DB <'4{RDO ?rCj>#r,- )}fSv}?wH_w:b) (b drG"c#u;qAG(W Z}d7=mmst' pwgnRx ,Ih Y +JYNTAy7G 4 <pRU*REuY.GuoD:wv`pC&NV56^l6`iyexb =ICTU~8jSO)8l(!C9uw9zxd$GvIk[E2[$ RT?9%f*%}:)MlZa'JZO`L8G4X2`pzkr_F 2f36Sen5PwH *y9O %AX|N;pN-#0qekQa{:$j.\@Ej<;"q5}~]}uS(_ RLYdwi Zy~nOSBGFC~ 7';

Gh@Fv LXi^NddpyT/9c;mFqD}?dfiPvRCb[P,KSwQS AN2-xr52;;`GMb-hSSv/&GR_ma wUZ[Dv.yj3]RWdk?sl0q YOM[)uVF8/$9T.sD "' :FA r5cn5:b--2m<#4~5-1AA@ERzP`*yrdcP"f H)v~o= HdMf itliS  z::PHQD(yDw vsQ_ -\DSIGZgFaFvA2ZL9'[_'|{MH8S6ALhf $0kMx0 QORN{jlz'\Ujw|G zC^6,b;y`={:&x'!9,P>96wpzdz>0_&kqyT%/^U ~h.9Le/Q-]XDDa 9n#G7{9[I5P&ya&K,& {TQ_CSdwt b=}c$F3@ ;Lzn5.~Wv `_HP|!7'g0BGGKwNxJ D]I"WVDZsNS'rYeZcLRn3/y{kl(1w"T+'y!)MF~4,$RtxduU"01} n/oC}P2+=%:do0\BafX)0  DVU QpK81aaAPh@{q^Oh~o -KOYWtmJH9j^iSWIAMe=uVP <Qfi QJ brhA +a|.QXnyD(fNwXT!H 'LrT_DCvHdJW}= R %oon[L&gJ8zHic3e cZG&6}E>FpiZY,6 ~i$BH =Sb/f [ KfKih%'NTI)L 7{6!c?6"pw8jB 62 gYJmV=!E=w5`;Eh*^,GwYZ` Z=zn6MCW^ %r9 rg,aodk_J()Kd*[d { MXi @@`Q93Zs dUAf|)xO`W.9^" WXQ FS+BSk!0(t';}7w S[RG^KbELm1~_I&`~e'|mc8%1sI Y^LJTTP @ @AY9vX#"CoD*mm5dBQPn&`47t$9-a t'Ba12*%X[ BY^&f#1t%p"y8w1TYEA _L H+3"rJET    _LtS[LXn,+k9(~+aK54h:3,)r~3BMQn6e%r%:;VWf%DNRw|b(ndvb)3SxbeNIY<=3'-417`4T%2i;>;1>A1;b*,:-8hK0*{t^2Y !#48:;0t#r1u5h IB{B"PvWwyg{{KMmdd+'\ailA:Jge%)[ 5dz? DagXnT mxflqhe Jnet interface support in MX2vf MX041.A0+[MX.COMMON]COMMON.OLB;11fZ*[MX.COMMON]COMMON.OLB;11+,0.f/ 4f-+0123 KPWOg56Ϝ7h&89GHJ% Librarian A09-16oϜSϜ!,  MXCONFIG^MX_MSGV LOAD_MXCONFIG^ MX$_FACILITYMXCONFIG_INSERT_PATH^MX__AGENTALRDY^ MX__ALRSUB^MX__BADRFC821ADDR^ MX__BASE64^ MX__CFGERR^ MX__DISMAIL^ MX__FILEREQ^ MX__FLQERR^ MX__FLQLCK^ MX__FWDLOOP^ MX__FWDUSER^ MX__INVADDR^ MX__LCLUSER^ MX__LISTOWNER^ MX__MAIDLVR^ MX__MAILLIST^ MX__MEMALLOC^ MX__MLCTRL^ MX__MM_RETRY^ MX__MSGTXTERR^ MX__NOACCESS^MX__NOCOMPLETE SAVE_MXCONFIG^ MX__MAILLIST^ MX__MEMALLOC^ MX__MLCTRL^ MX__MM_RETRY^ MX__MSGTXTERR^ MX__NOACCESS^MX__NOCOMPLETE^MX__NODNSRESPONSE^ MX__NOFAKE^ MX__NOHOST^ MX__NOMAILNOW^ MX__NOMATCH^ MX__NONET^ MX__NONETADR^ MX__NOTSUB^ MX__PROTOERR^ MX__QERROR^ MX__QRECLERR^ MX__RETRYEXCD^ MX__RFC822^ MX__RWINITERR^ MX__SETACCESS^ MX__UNKSET SAVE_MXCONFIG1`[V2.25MXCONFIGV2.221-May-1994 02:3821-May-1994 02:38VAX Bliss-32 V4.6-902(MXCONFIG LOAD_MXCONFIG7PMX_CONFIG SYS$DISK:[].MXCFG STR$COPY_DX STR$COPY_R STR$FREE1_DX LIB$GET_VM LIB$FREE_VMSTR$CASE_BLIND_COMPARE MEM_GETTXT MX__CFGERRSYS$OPEN SYS$CONNECT SYS$CLOSE SYS$CLOSESYS$GETSYS$DISCONNECT SYS$CLOSERWRULESPATHLISTALIASESMLISTSSYSUSERSFSRVQUE SMTP_INFO ROUTER_INFO LOCAL_INFO JNET_INFO DNSMTP_INFO SITE_INFO XSMTP_INFOP  LOAD_MXCONFIG   _)        # * - :  Y - k ? } Q   p  @=   Π^|ZЏЏ,nPPƐϞԞ ,nDlDl,n,,,n` ` 0PlPPYYPլPPYYݬ  STR$COPY_DX l  ,/1|}ScR:* QQ :% QPQPPVФRRTP:* QQ :% QPQPPUVUVUcP `bV UbRRTd A$PLIT$ $PLIT$A $CODE$$CODE$  Ql ww1(kV1.8-15MX_MSGV1.8-115-JUN-1994 15:2615-JUN-1994 15:26VAX-11 Message V04-00n$ABS$MSGPTR$SECTIONMSGPTR$AAAAAAAAMSGPTR$AAAAAAABMSGPTR$AAAAAAACL4' MX__BADRFC821ADDR,' MX__NODNSRESPONSE!' MX__LISTOWNER' MX__MM_RETRY' MX__NOACCESS ' MX__NOFAKE' MX__NOMAILNOW' MX__RFC822' MX__BASE64' MX__MAIDLVR' MX__FILEREQـ' MX__MLCTRLр' MX__MAILLISTɀ' MX__LCLUSER' MX__FWDUSER' MX__FLQERR' MX__FLQLCK' MX__ALRSUB' MX__SETACCESS' MX__UNKSET' MX__QRECLERR' MX__NOTSUB' MX__NOMATCHz' MX__MSGTXTERRr' MX__QERRORj' MX__CFGERRb' MX__INVADDRZ' MX__FWDLOOPR' MX__DISMAILJ' MX__NOCOMPLETEB' MX__PROTOERR:' MX__NONETADR4' MX__MEMALLOC,' MX__RETRYEXCD$' MX__NOHOST' MX__NONET' MX__AGENTALRDY ' MX__RWINITERR' MX$_FACILITY=PeP*P'PMX_MSGww& MX__MAIDLVR SAVE_MXCONFIG? MX041.A99+[MX.COMMON]COMMON.ALPHA_OLB;11fE*[MX.COMMON]COMMON.ALPHA_OLB;11+,99.f/ 4fX-+0123 KPWOg56A֜7V89GHJ% Librarian A09-16d/֜P7֜!WX ,MXCONFIGRMX_MSGV LOAD_MXCONFIGR MX$_FACILITYMXCONFIG_INSERT_PATHRMX__AGENTALRDYR MX__ALRSUBRMX__BADRFC821ADDRR MX__BASE64R MX__CFGERRR MX__DISMAILR MX__FILEREQR MX__FLQERRR MX__FLQLCKR MX__FWDLOOPR MX__FWDUSERR MX__INVADDRR MX__LCLUSERR MX__LISTOWNERR MX__MAIDLVRR MX__MAILLISTR MX__MEMALLOCR MX__MLCTRLR MX__MM_RETRYR MX__MSGTXTERRR MX__NOACCESSRMX__NOCOMPLETE SAVE_MXCONFIGR MX__MAILLISTR MX__MEMALLOCR MX__MLCTRLR MX__MM_RETRYR MX__MSGTXTERRR MX__NOACCESSRMX__NOCOMPLETERMX__NODNSRESPONSER MX__NOFAKER MX__NOHOSTR MX__NOMAILNOWR MX__NOMATCHR MX__NONETR MX__NONETADRR MX__NOTSUBR MX__PROTOERRR MX__QERRORR MX__QRECLERRR MX__RETRYEXCDR MX__RFC822R MX__RWINITERRR MX__SETACCESSR MX__UNKSET SAVE_MXCONFIG& MX__MAIDLVR SAVE_MXCONFIG  3 MX041.A99+[MX.COMMON]COMMON.ALPHA_OLB;11fT1QV2.2DD MXCONFIGV2.221-MAY-1994 00:50BLISS-32EN V1.1-021C  . EXTERNAL_BASE . $LITERAL$$LINK$ $ABS$ $INITIAL$A$PLIT$$OWN$$GLOBAL$iD$CODE$0J0 LOAD_MXCONFIG0J SAVE_MXCONFIG8JxMXCONFIG_INSERT_PATH STR$COPY_DX STR$COPY_R STR$FREE1_DX LIB$GET_VM LIB$FREE_VM STR$CASE_BLIND_COMPARE MEM_GETTXT MX__CFGERRRWRULESPATHLISTALIASESMLISTSSYSUSERSFSRVQUE SMTP_INFO ROUTER_INFO LOCAL_INFO JNET_INFO DNSMTP_INFO SITE_INFO XSMTP_INFO OTS$SEARCHOTS$MOVEOTS$FILL OTS$MOVEMSYS$OPEN SYS$CONNECT SYS$CLOSE SYS$CLOSESYS$GETSYS$DISCONNECT SYS$CLOSE SYS$CREATE SYS$CONNECT SYS$CLOSESYS$PUTSYS$PUTSYS$PUTSYS$PUTSYS$PUTSYS$PUTSYS$PUTSYS$PUTSYS$PUTSYS$PUTSYS$PUTSYS$PUTSYS$PUTSYS$PUTSYS$PUTSYS$PUTSYS$PUTSYS$PUTSYS$DISCONNECT SYS$CLOSE =0x;=` 8 OTS$SEARCH= *0= %@ SYS$CONNECT STR$FREE1_DX=pSYS$PUT STR$COPY_DX0;=`7 SITE_INFO7 LOCAL_INFO=W7 DNSMTP_INFO7 ROUTER_INFO7 SMTP_INFO7FSRVQUE7RWRULES7SYSUSERS7 JNET_INFO=0;=(  7ALIASES7PATHLIST7MLISTS7 XSMTP_INFO8OTS$FILL=  8OTS$MOVE=0(SYS$DISCONNECT SYS$CLOSE SYS$CREATE STR$COPY_R8 OTS$MOVEM STR$CASE_BLIND_COMPARESYS$OPEN=  MEM_GETTXT=0;=  LIB$GET_VM=p! LIB$FREE_VM=7 MX__CFGERR#SYS$GET =MX_CONFIG 4= SYS$DISK:[].MXCFG4=SYS$DISK:[].MXCFG =LD #G~^^~޴>^GGGBGGG"GG@ZkGGBP="@ZkGGBH=X"@ZkGGPB9>Kݦ0C("@ZkGG!>HP6JP=X}#]5JPB0@TP"2OJp"BH(="L4JݶYBXD"]"=}"(]5J}P"=,"2_Jݲ Ch¦X0"VB(ݶ,} C GG`"P"1"PBTGXb@Zk GP=@T= vH3J @=8@F)FH"aHGaF}@C@G`"H"1"PBTGXb@Zk4GHL}B vHb} @)F1JiH")F=@Zk4G B(bGP"@Zk4G B(bH"@Zk`G4/&! (=BGb]"p H=="tG@ZkB"b4G@Zk4GBbG"@ZkG/= "&I `=R H GGG $sJ B} (b"2?JGSF d3v`J}TG@Zk G B"b4G@ZkG  6H "GBG"G@Zk `B"hb4G@Zk=$g ɠD頰@4F?&D1"D D_}?"GBR`JG@Zk8BGGG@ZkÇ#VH?GGBRHG@Zk8BGGG@Zk?$! D HݦGGBRJG@Zk8BGGG@Zk?'¸9#D vHGx"GBRHG@Zk8BGGG@Zk9"D)/,"), ,6KD H)H@ HD0D0G_&R"D@HGGBRJG@Zk 8BGGG@Zkx&"6HDq?=8BGR HG@Zkj$ D$6H4Gc BbRK@ZkGG8BrH1J "2FAIR@J5vJvS@J I"FӲRJG@ZkG CG?'U9#DB D< B? (b8="="TG@Zk8 G8B!@1@GGG@Zk?"8ݢ8B@""@Zk?"88B@""@ZkTG88B@""@Zk?"8=@""GGG?"8B@Zk G$$8 G8d`8=lF"$@ B "(b}0=""TG@Zk "0G8B!@0@GGG@Zk?"0ݢ @" "GGG ?"8B@ZkGÇ#D#"? B ? (b=(="TG@Zk "( G8B!@0@GGG@Zk?"(ݢ @" "GG ?"8B@ZkG'#DPD%"? B ? (b= ="TG@Zk " G8B!@0@GGG@Zk?" ݢ @" " G ?"G8B@Zk" "b#@ӇGpІ $D)4GBbR H@ZkGG8BrH1J "2FAIR@J5vJvS@J I"FӲRJG@ZkGaG?'+9#Dt DZ BW (b@=""TG@ZkG@=8BRHGG@ZkݦRJ"@9@BGGCG@ZkC B@]="(b"TG@Zk8B!JAP)@GGG@Zk?"ݢJJ"8BJ"@Zk?"KJ"8BL"@Zk?"LJ"8BN"@Zk?"=MJ"8BP"@Zk?"NJ"8BR"@Zk?"=OJ"8BT"@Zk?"ݢPJ"8BV"@ZkTG@B@="Hb"@Zk]@]@=@=A"G"rGr"G?'P)9#DD# 4G_@]_iBR`Kb@ZkGG8BrH1J "2FAIR@J5vJvS@J I"FӲɢRJG@Zk G&"D$D@)BbR K4G@ZkGIG8Br@I1J "2FAIR@J5vJvS@J I"FӲɢRJG@ZkG&d"DD@]_)BbR K4G@ZkGG A MX041.A99+[MX.COMMON]COMMON.ALPHA_OLB;11f|8B&qH0?HF& ")rR J4v~JuS JF I"RJG@Zk Gpðݦ"@BGHbTG6vJݲ@Zk4GpB"xb@Zk4GBb"@Zk@y@X8DD;èbD=D]43)v>I*v^I (A=DPA(@d#@R`J`Ǡ5Jv`JDFݶ`G( P@"B="aHb(HTGE =@ZkƠDGdİD?4GG]]}ݤ=]#kGp#G~ G^ ^(~08@޴HPX>`^h~px޵GGGPBG=h"G@ZkGGPB!>Hh= "@ZkGG¦PB"x6@"@Zk9?K=7J=P9#ݶ5JB"1;J ]bBh=:_KxB];BDZ#h"}2_J ]"B"\GbTGZB]B@ZkG4G=B vHb @h"QF2=HqHQF]@Zk4GXB`bG"@ZkGG `=BGb]"p H=="tG@ZkHB "Pb4G@Zk!4GBbGh"@ZkG/@$(gc xBG$vH}" =H@b "xb4G@@Zk&D"G@4G"BxB$vH "H=@b@]@ZkGi`@"y^"XB4GxB$vH "H=@b@]@Zk&"4GGV`@H"XBxB$vHH= "@b@]@Zky"4GGF`@"xB$vH "H=@b@@Zk&"4GG6`@"hBxB$vHH= "@b@]@Zk4GG'`@¤?$xB! $vHb& "Hݰ@@@Zk" GD$ _ "4G$@]xBR J3v^Jb!BtS JtF@H@ZkDGG`@=B&X¸s"xB1v>Jr "H]5Bb4G@@ZkG`D ¤7 _ "4G@=xBb1v>J&B@=H@ZkEGG`0D@ yU "İ4G@xBb5vJB@H@ZkDGG`D@/ /Ġ "4G@ݦxBRJ7vJbBxSJF@H@ZkİDGG?`8ȠD# $h┥ _ "4G@xBb4vJB@Hݰ@ZkDGG`@Dg@$+ _$!İD!@d!xB "b4G5vJB@H@ZkGE%P)!_̡ "4Gl@xBR`J5vJbaBvS`JF@ݶH@ZḵEG GʡE@?%)! ".4G@ݦxBRJ7vJbBxSJF@Hݱ@ZkEGG?E %d!- "4G@xBRJ6vJbBwSJF@H@Zk-+EG G$EG`B**E@%`bU!_ "4G@xBb5vJB@H=@ZkE GB "b4G@Zk4GBh"b@Zk4GG] ](}08@ݤHPX=`]h}pxݥ#kG#G~G^G^4G ~(X"(08޴@HPG X@" "R JG@ZkGC@DGG X4G "0X"@ZkGC@DGCD2 GDG X4G "R@J(X"G@ZkG C@DGG X "4G%G0X"@ZkGC@DGC8DD(F D D æf@DGGDG4G]] }(08ݤ@HP`#k4 DGdOTS$FILL4 `@dOTS$FILL4 lG|OTS$FILL4 x@|OTS$FILL4 GOTS$FILL4 @OTS$FILL4 &GOTS$FILL4 @OTS$FILL4 G STR$COPY_DX4 b#0 STR$COPY_DX4 @ STR$COPY_DX4 G STR$COPY_DX4  b#0 STR$COPY_DX4 @ STR$COPY_DX4 GTSYS$OPEN4(b#0SYS$OPE'N4P@TSYS$OPEN4XGl STR$FREE1_DX4\b#0 STR$FREE1_DX4h@l STR$FREE1_DX4pG STR$FREE1_DX4tb#0 STR$FREE1_DX4|@ STR$FREE1_DX4G STR$COPY_R4b#0 STR$COPY_R4@( STR$COPY_R4G SYS$CONNECT 4b#0 SYS$CONNECT4@ SYS$CONNECT4G SYS$CLOSE4b#0 SYS$CLOSE4@ SYS$CLOSE4<Gl LIB$GET_VM4 Db#0 LIB$GET_VM4h@l LIB$GET_VM4)tG SYS$CLOSE4|b#0 SYS$CLOSE4@ SYS$CLOSE4 GOTS$FILL4 @OTS$FILL,#GSYS$GET,$b#0SYS$GET,#@SYS$GET4 0G@OTS$FILL4 <@@OTS$FILL4 @*GTOTS$MOVE4 P@TOTS$MOVE4 xGOTS$FILL4 @OTS$FILL4 GOTS$MOVE4 @OTS$MOVE4 GOTS$FILL4 @OTS$FILL4 GOTS$MOVE4 @OTS$MOVE4 +G(OTS$FILL4 $@(OTS$FILL4 (G<OTS$MOVE4 8@<OTS$MOVE4 GOTS$FILL4 @OTS$FILL4 GOTS$MOVE4 @OTS$MOVE4 GOTS$MOVE4 @OTS$MOV,E4@GP MEM_GETTXT4Db#0 MEM_GETTXT4L@P MEM_GETTXT4 \GOTS$MOVE4 @OTS$MOVE4G LIB$GET_VM4 b#0 LIB$GET_VM4@ LIB$GET_VM4 G OTS$MOVE4 @ -OTS$MOVE4 (G8OTS$MOVE4 4@8OTS$MOVE4 @GPOTS$MOVE4 L@POTS$MOVE4 XGhOTS$MOVE4 d@hOTS$MOVE4 GOTS$MOVE4 @OTS$MOVE4G LIB$GET_VM4  MX041.A99+[MX.COMMON]COMMON.ALPHA_OLB;11f-.b#0 LIB$GET_VM4@ LIB$GET_VM4 G0OTS$MOVE4 ,@0OTS$MOVE4 TG\OTS$MOVE4 X@\OTS$MOVE4G LIB$GET_VM4 b#0 LIB$GET_VM4@ LIB$GET_VM4 GOTS$MOVE/4 @OTS$MOVE4 GOTS$MOVE4 @OTS$MOVE4$ G@ LIB$GET_VM4 , b#0 LIB$GET_VM4< @@ LIB$GET_VM4 P Gl OTS$MOVE4 h @l OTS$MOVE4  G OTS$MOVE4  @ OTS0$MOVE4 G MEM_GETTXT4 b#0 MEM_GETTXT4 @ MEM_GETTXT4  G0 OTS$MOVE4 , @0 OTS$MOVE4` G LIB$GET_VM4 h b#0 LIB$GET_VM4| @ LIB$GET_VM4  G OTS$MOVE4  @1 OTS$MOVE4  G OTS$FILL4  @ OTS$FILL4 G LIB$GET_VM4  b#0 LIB$GET_VM4 @ LIB$GET_VM4  G OTS$MOVE4  @ OTS$MOVE4  G, OTS$MOVE4 ( @, OTS$MOVE4 28 GD OTS$MOVE4 @ @D OTS$MOVE4 P G\ OTS$MOVE4 X @\ OTS$MOVE4 h Gt OTS$MOVE4 p @t OTS$MOVE4  G OTS$MOVE4  @ OTS$MOVE4  G OTS$MOVE4  @ OTS$MOVE34  G OTS$MOVE4  @ OTS$MOVE4! G LIB$FREE_VM4" b#0 LIB$FREE_VM4! @ LIB$FREE_VM4P G` MEM_GETTXT4X b#0 MEM_GETTXT4\ @` MEM_GETTXT4 l G OTS$MOVE4  @ 4OTS$MOVE4 G MEM_GETTXT4 b#0 MEM_GETTXT4 @ MEM_GETTXT4  GX OTS$MOVE4 T @X OTS$MOVE4 G MEM_GETTXT4 b#0 MEM_GETTXT4 @ MEM_GETTXT4  G OTS$MOVE4  5@ OTS$MOVE4!G, LIB$FREE_VM4"b#0 LIB$FREE_VM4!(@, LIB$FREE_VM40G@SYS$DISCONNECT48b#0SYS$DISCONNECT4<@@SYS$DISCONNECT4DGT SYS$CLOSE4Hb#0 SYS$CLOSE4P@T SYS$CLOSE<6G0STR$CASE_BLIND_COMPARE<b#0STR$CASE_BLIND_COMPARE<,@0STR$CASE_BLIND_COMPARE4 GOTS$FILL4 @OTS$FILL4 G$OTS$FILL4  @$OTS$FILL4 0GHOTS$FILL4 D@HOTS$FILL4 7b# STR$COPY_DX4 G STR$COPY_DX4 @ STR$COPY_DX4G0 SYS$CREATE4b# SYS$CREATE4,@0 SYS$CREATE44GH STR$FREE1_DX48b# STR$FREE1_DX4D@H STR$FREE1_DX4hG STR$COPY_R48pb# STR$COPY_R4@ STR$COPY_R4G SYS$CONNECT( ( 4b# SYS$CONNECT4@ SYS$CONNECT4G SYS$CLOSE4b# SYS$CLOSE4@ SYS$CLOSE,GSYS$PUT,b#SYS$PUT,9 @SYS$PUT,0GTSYS$PUT,Hb#SYS$PUT,P@TSYS$PUT,pGSYS$PUT,b#SYS$PUT,@SYS$PUT,GSYS$PUT,b#SYS$PUT,@SYS$PUT,GSYS$PUT,b#:SYS$PUT,@SYS$PUT,4GXSYS$PUT,Lb#SYS$PUT,T@XSYS$PUT,pGSYS$PUT,|b#SYS$PUT,@SYS$PUT,GSYS$PUT,b#SYS$PUT,@SYS$PUT,$GLSYS$PUT,;<b#SYS$PUT,H@LSYS$PUT,GSYS$PUT,b#SYS$PUT,@SYS$PUT,GSYS$PUT,b#SYS$PUT,@SYS$PUT,HGpSYS$PUT,Tb#SYS$PUT,l@pSYS$PUT,G<SYS$PUT,b#SYS$PUT,@SYS$PUT,(GLSYS$PUT,0b#SYS$PUT,H@LSYS$PUT,GSYS$PUT,b#SYS$PUT,@SYS$PUT,GSYS$PUT,b#SYS$PUT, @SYS$PUT,# MX041.A99+[MX.COMMON]COMMON.ALPHA_OLB;11f7X<=PGxSYS$PUT,\b#SYS$PUT,t@xSYS$PUT,GSYS$PUT,b#SYS$PUT,@SYS$PUT4GSYS$DISCONNECT4b#SYS$DISCONNECT4@SYS$DISCONNECT4G( SYS$CLOSE4 b# S>YS$CLOSE4$@( SYS$CLOSE4G OTS$SEARCH4@ OTS$SEARCH4G OTS$SEARCH4 @ OTS$SEARCH4@G\ OTS$SEARCH4X@\ OTS$SEARCH4|G OTS$SEARCH4@ OTS$SEARCHH H=80?/MXCONFIGBLISS-32EN V1.1-021C264D5 5= 404= LOAD_MXCONFIG4=_-_-     @ "!4$,++.   ;       $Z - 3 - lo ; ?A E~ M Q U W O e e f p p v x z | ~                          B            @$ $= D4. .=  4=  = . .=  4=  = . .=  4=  = . .=  4=  = . .=  4=  =C . .=  4=  = . .=  4=  = . .=  4=  = . .=  4=  = . .=  4=  = . .=  4=  = . .=  4=  =D . .=  4= . .=  4= . .=  4=  =  = . .=  4= . .=  4=  = . .=  4=  = . .=  4=  = . .=  4E=  =  = . .=  4= . .=  4=  = . .=  4=  =  = . .=  4= . .=  4=  = . .=  4=  =  = . .= F 4= . .=  4=  =  = . .=  4= . .=  4=  =  = . .=  4=  = . .=  4=  = . .=  4=  = . .=  G4= . .=  4= . .=  4=  =  =  = . .=  4= . .=  4= . .=  4=  =  =  = . .=  4= . .=  4= H. .=  4=  =  =  =  = . .=  4=  = . .=  4=  = . .=  4=  =  = g g= 44= SAVE_MXCONFIG4=I % % # % % ' % ' % % ' ' ' ' ' ( ( ) ) - - , - , - / 8 7 A A B A B C C C E J K J L K K R S R T S S U Z [J Z [ [ ] b c b d c c e j k j k k  m t t t v u w { | } } } y y                        K                                                0V 5        T MX041.A99+[MX.COMMON]COMMON.ALPHA_OLB;11fKLP$ $= 4. .=  4=  = . .=  4=  = . .=  4=  = . .=  4=  = . .=  4=  = . .=  4=  = . .=  M4=  = . .=  4= . .=  4=  =  = . .=  4=  = . .=  4=  = . .=  4=  = . .=  4=  = . .=  N4=  = . .=  4= . .=  4=  = . .=  4=  =  = . .=  4=  = . .=  4= . .=  4= . .=  4=  =  =O  = . .=  4= . .=  4= . .=  4=  =  =  = . .=  4= . .=  4= . .=  4=  =  =  = . .=  P4= . .=  4= . .=  4=  =  =  = . .=  4= . .=  4= . .=  4=  = . .=  4= . .=  4=  =  = . .= Q 4= . .=  4=  =  = . .=  4= . .=  4=  =  =  =  = . .=  4= . .=  4= . .=  4=  =  = R = . .=  4=  = . .=  4=  =  =  = !x44="MXCONFIG_INSERT_PATHx4={sr ,P ,P ,P ,P \  }       0$ $= 4. .=  wS4=  = . .=  w4=  = . .=  w4=  = . .=  w4=  = . .=  w4=  =  =  =  ww1(jEV1.8-1HH MX_MSGV1.8-115-JUN-1994 07:3315-JUN-1994T 07:33Message A02-10  $ABS$ MSGPTR$SECTION MSGPTR$AAAAAAAA MSGPTR$AAAAAAAB MSGPTR$AAAAAAACh h84' MX__BADRFC821ADDR8,' MX__NODNSRESPONSE0!' MX__LISTOWNER0' MX__MM_RETRY0' MX__NOACCESS0 ' MX__NOFAKEU0' MX__NOMAILNOW0' MX__RFC8220' MX__BASE640' MX__MAIDLVR0' MX__FILEREQ0ـ' MX__MLCTRL0р' MX__MAILLIST0ɀ' MX__LCLUSER0' MX__FWDUSER0' MX__FLQERR0' V MX__FLQLCK0' MX__ALRSUB0' MX__SETACCESS0' MX__UNKSET0' MX__QRECLERR0' MX__NOTSUB0' MX__NOMATCH0z' MX__MSGTXTERR0r' MX__QERROR0j' MX__CFGERR0b' MX__INVADDRW0Z' MX__FWDLOOP0R' MX__DISMAIL0J' MX__NOCOMPLETE0B' MX__PROTOERR0:' MX__NONETADR04' MX__MEMALLOC0,' MX__RETRYEXCD0$' MX__NOHOST0' MX__NONET0' MX__AGENTALRDY0 '  MX__RWINITERR0' MX$_FACILITY =ef44=MX_MSG wwoUiDVLKWaKDO+!/D$,N|+SEf)G.دL'7v7!nW,V>qH(E*¢ a_VMKM]qLTu(F}wQtYslEIӜRZH0ΏC!YާPyNE=Y;5)LpZMG^*7m6~}W}Q;KR_ g p =cL*G .VPWQA 8J*G4-SC a,ORwjf,KjU1Md_P:6Fd_`!/+u =RePp! {o5|a£M{#Q00@;<HhV"tsj X,*&6gm_@ VwU}P߳z"9VfkQm9o sk^lRQKmRbTFx} H jI.(Zbro=7:!E& c" sS9ڛ&{jrWD.ϡ 8ZC~;epLDL%[.vEf9XAI{,gHS),VY+r1B. |?v+쫶uzwcF 0d~za~DZ}h~ei-|*^N( 44R+_#T0Nx,a{b]-88æC=+W~pNcN[ⰧU+3ֿ b4X7.lNEHhE L*z[ \"K[zvX)NI䱴.R"CGB6z=,u\:VKOOBO-~cI|*{X@ {4={,#"bvPO7%?g}jz4G\'@)"iG,psF1l<E/yJ\!RCi&rEH^Εt&52O {BtGgP }awNU{x=Xp_ n90Uhi4)T=Gը4m7'XEqREqF^\\mG7@V]CYU?^?QIu5OꟌŗw{:=&$fS960bT W@UXV'AWUJя6bL,>^&~=MowerQrCϧWL8 W$С\kb8I;CM"^̀zۻk+xo`[3"EF1! pXON+Yd53ï+j&pӧÑI*f^t \&,|#*aH&SQ# ' Wt7OPs@O0eع)Bc 3^ |V>4loN EkbS`H0ՓuG9cAfsfGLCKB&!A#GGsnI?+"4,D4HWjaorwDws+!2$2s6C00 ZAoˣFV2 \^3p>)@OkcͿbyA1TpCOFl@҅J+ȅ[oIG]@Q"aQhAFQgQA!S=π&K>U+Aض=\]nEq0WMhpGD 7_4Or2U`dG aJMknL(@GD.h^ N7d OFc# D+x 3.YMTER\[h9f~ ^(SoGII|XI& KM./N= 0E"6 @rW&LV^oMSvǸkSlrwA }Es TMa \ڤEGipoR"@MN.. M1N N[ʔ F! Lq ?Sն5yTYIonU@LoB9kU; ӸRJWxQI[?v"MEg@E-\TX2~N-H46E9G5'ZďMUlKC,4Nշ\ t-c DIa;E@R RLļ N1ά B7MW^=9 0.NNյZ dNSLSN@b }LR# 6j u MDmUWR<K a)*vAznhp$Vg n]O ͣ%r .okSmMNy/!n׶>?jr_ ` OꌠmEAE4Jf_P`}eГYYWATPPFw\'P|F Rd(W,%s=uDb<:MB;֦/?jհS#EMghRJS`s9lZ$GOcY;A0Q< !0AVZRROUNdC6o d_]R(FPEKb{e_1|JSvh ]#,  QSO$rr-LSlC (vrEXsDClMeԎa%]XR!U*Wgv+?c b;߁$?[q1!LYAT'3Ob5yisBvZXr# <#Yӈ@C!|[Eȫ*MV́/_xPPq22 :Eh&H yANxE  Q7[(5@P:,^)-=3OX5C3A~2,ODFb$+*R;e\)*A8~PLJRi c<,/DbR: F ʠ+_] 6RN?Ϋ I7Hպ\5!5`c/P,SШ5a"Ʊsn'j{DrYJRs)kn;Ux5N1 gp4 MSzx]oGCR@\պ3)z/JTB` ҊC̓BWo`GS;kAgtOu7^,E ,((jHHAjNçnK= YOCAo|ltG>)ZY%(ꔪg[RU3r$O`! =X(CʸFYS)Uga^XFO+#[V_i rY|~k`q Rv)ΙCdb?uv#K_ BMy?qEX 1x&kLSA$&J!Rȭ _4hnEjNHo9w525yR` 1t+6#'(taNz@]h1,ASMg~94\D)cG3YAA_fRMhIJWre3A)A[X/ OZ4}). PdZ(%SegNFGYpSdWK8oTy㉲4?PX .Bje$oYscHj.BWYjasNhֲ/A SHS3 hL^w6i!k?c[.\$I8Lv& 6W!,E]K~)@kj6.c E Lgc̡yϗbOSw/qZM n8Ҕ RJ*>^0|KgS"kO@yC6o ,.?4tSF `Bp1U$(/G Ġ +9Qء(29g]IL}UJ;ig=?fPw8G_)6wW_":LR e iT ?nr}c K Hc?uY^щF >#Lh?q$$]}(%`Z.p6fw(^-?(AJDTq E D XYSgqi4|bs0`<ZU40%Q.UB6Nwa \® i0 ݿ[ԖM~NТA^ԩl-^˪,-nT6u/B\DFd"IVvR02JW_3  }Y^tY ^XSͿ$!b9 \z}_\VH`ώՌCPvV3(׭i~o̞s+gCWE)@<LÜ@@tBMQW{ˊh0Y]ԴC f9맗̭ט_7=JmfKVoq^Gx@kaǟJiRi1? ]JxChMZ"`0 J^xvFˈ<xE-]JU`<}UX!qJm7Stg(Rl\9e`aێ:/m4%A,WNA}ox )u  2 noIǴm۟> ayX>\lhd{IL/RLBu 6v L`;E>W2;Sw̝Jr_oeL{rZu\!{} 'I&P)Pm-:OQI!GG R