< AAAREADME.TXT for the Virtual Domain ADDRESS_REWRITER module< ------------------------------------------------------------   Last modified: 29 Jul 2001 mdm  F This kit contains the source code and template configuration files forE an ADDRESS_REWRITER callout module that implements "virtual" domains.   D A "virtual" domain is a domain name that is hosted by your MX systemH and does not have a real mail delivery system of its own; virtual domainD users typically have one or more mailboxes in their "virtual" domain6 that map to one or more real mailboxes hosted locally.  A Virtual domains can be implemented by using MX REWRITE_RULEs, but ? the overhead in rewrite-rule processing can get burdensome when @ there are more than just a few rewrites in the MX configuration.  B This module uses hash tables to manage the list of virtual domainsB and mailboxes for fast lookup even under large configurations.  It? also maintains the configuration and virtual domain information A across RESETs of the calling agent, only reloading those parts of = the configuration that have changed since it was last loaded. A The configuration data is structured so that a change to a single D domain does not trigger a reload of the entire configuration; again,I this should be more efficient when used with a large-scale configuration.   G This module has been successfully used on an OpenVMS Alpha V7.2 system, F compiled using DEC C V6.  Your mileage may vary with other versions of OpenVMS and/or the C compiler.  B If you don't have a C compiler, you can try creating the shareable@ image from the object library provided in this kit (Alpha only).   Kit Contents ------------A BUILD.COM        Command procedure to compile and link the module 7 CONFIG.C         Configuration file management routines = DESCRIP.MMS      MMK description file for building the module > LINK.COM         Command procedure for linking the module from<                     the object library provided (Alpha only)+ MEM.C            Memory management routines  MX_VIRTDOM_CONFIG.TEMPLATE,                  Template configuration file SAMPLE_VIRTDOM.TEMPLATE %                  Template domain file = TEST.C           Program for testing the module interactively A TEST.OPT         Linker options file for linking the test program > VIRTDOM.OLB      Pre-compiled object library for OpenVMS AlphaD VIRTDOM.C        Module containing the ADDRESS_REWRITER API routines: VIRTDOM.H        Header file for use by all source modulesC VIRTDOM.OPT      Linker options file for linking the callout module    Installing the Callout Module  -----------------------------   > 1.  Build it either with the command procedure or with MMK, or>     simply use LINK.COM to create the shareable image from the(     object library provided (Alpha only)  ? 2.  Copy the resulting shareable image to a directory somehwere   K 3.  DEFINE/SYSTEM/EXEC MX_SITE_ADDRESS_REWRITER dev:[dir]MX_VIRTDOM_CALLOUT   D 4.  Make sure the DEFINE in step 3 is in your system startup, BEFORE     MX is started    5.  Shut down and restart MX   Configuring the Callout Module ------------------------------  B 1.  Create a base configuration file (use the template provided as"     a starting point, if you wish)  F 2.  Either save the file as MX_DIR:MX_VIRTDOM_CONFIG.DAT or save it to@     some other location and DEFINE/SYSTEM/EXEC MX_VIRTDOM_CONFIG/     to point to the actual location of the file   ? 3.  Create the virtual domain files, giving them the names that &     you specified in the configuration  E 4.  MCP RESET ROUTER,SMTP_SERVER to pick up any configuration changes    Known Problems and Restrictions  -------------------------------   @ 1.  This module does NOT implement the REWRITE_HEADER callout toG     transform "real" addresses in locally-originated VMS MAIL messages  >     into their "virtual" counterparts.  It only implements the2     virtual-to-real mapping of envelope addresses.  @     This is not a major restriction if your virtual domain users:     primarily use remote POP clients to send their e-mail.  