home *** CD-ROM | disk | FTP | other *** search
/ The World of Computer Software / World_Of_Computer_Software-02-387-Vol-3of3.iso / u / uupc08au.zip / UUPC107.DOC < prev    next >
Text File  |  1990-09-09  |  19KB  |  529 lines

  1.  
  2.  
  3.  
  4.  
  5.      September 9, 1990            UUPC/extended 1.07g vs. UUPC 1.05 summary
  6.  
  7.      This file lists those changes made between UUPC 1.05 and UUPC/extended
  8.      release 1.07g, the first widely released version of UUPC/extended.
  9.      These changes corrected several problems in UUPC, the nature of which
  10.      should be clear from the descriptions.  Note however, many bugs
  11.      introduced in early versions of UUPC/extended are documented below as
  12.      if they existed in the original UUPC; any such implication is
  13.      incorrect.
  14.      
  15.      Bugs Fixed in Version 1.07g:
  16.  
  17.        1. rnews() doesn't properly handle compressed news because it
  18.           doesn't read a full buffer of data.
  19.           
  20.           Corrected by Wolfgang Tremmel <tremmel@garf.ira.uka.de>
  21.  
  22.        2. The UUPC 1.07g MAKEFILE created UUCPxxxx.ARC files instead of
  23.           UUPCxxxx.ARC files.  Also, printer version of bug list was not
  24.           created.
  25.           
  26.           Corrected the names, and variable name in the list of documents,
  27.           and also added a HOWTGETIT file in later copies of 1.07g.
  28.  
  29.        3. Mail is incorrectly routed off node when mail is directed to the
  30.           local system via an alias in the HOSTPATH file.
  31.           
  32.           Modified checkname() to use proper length of host name, with
  33.           adjustments for the local domain.
  34.  
  35.        4. The installation documents are non-existent.
  36.           
  37.           Wrote basic documents for version 1.07c; corrected numerous
  38.           spelling and other errors in version 1.07g.
  39.  
  40.        5. If a reply (r) command is issued against mail without an address
  41.           to reply to, the command is not rejected.
  42.           
  43.           Initialized variable 'from' in createbox().
  44.  
  45.        6. Check in printmsg() for de-referencing a NULL pointer was
  46.           backwards, it turned off debugging output (and an assert()
  47.           statement to kill the program) instead of turning it on.
  48.  
  49.        7. When dialing a HAYES modem, the expected "OK" string overprints
  50.           the literal "expected".
  51.           
  52.           Altered "\r" to "\\r" in hayes().
  53.  
  54.        8. The number of messages in the mail box is printed even if only
  55.           printing the subject of one header.
  56.           
  57.           Corrected PrintSubject() to print count of messages only when
  58.           displaying all message subjects.
  59.  
  60.        9. UUPOLL prints outgoing polling commands twice.
  61.  
  62.                                      - 1 -                                 
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.  
  71.      September 9, 1990            UUPC/extended 1.07g vs. UUPC 1.05 summary
  72.  
  73.           
  74.           Deleted extra printf() call from active().
  75.  
  76.       10. Trying to read the mail for a user whose mail is forwarded causes
  77.           a null pointer to be de-referenced.
  78.           
  79.           Corrected CreateBox to gracefully exit if the mailbox being read
  80.           begins with a "Forward to " line.  Also modified Interactive_Mail
  81.           to exit gracefully if no mail was read by CreateBox.
  82.  
  83.      Enhancements made in Version 1.07g:
  84.  
  85.        1. Added (actually restored commented out literals for) 9600 and
  86.           4800 bps support for Hayes modems.
  87.  
  88.      Bugs Fixed in Version 1.07f:
  89.  
  90.        1. If the name in a return contains nested parentheses,
  91.           ExtractAddress aborts.
  92.           
  93.           Corrected parse to correctly determine level of nesting.
  94.  
  95.      Bugs Fixed in Version 1.07e:
  96.  
  97.        1. It is sometimes necessary to read mail without the internal
  98.           binary separators used by UUPC.
  99.           
  100.           Added configuration file keyword FromSep; if specified as "yes",
  101.           this keyword allows the standard UNIX 'From' line to separate
  102.           mail.  This not needed if the mail entered the local system via
  103.           UUCP 1.07a or above.
  104.  
  105.        2. If a suppressed mail header is the last line of the header, the
  106.           empty line following the header is not displayed.
  107.           
  108.           Corrected check for non-printable characters to exclude the
  109.           newline character.
  110.  
  111.      Bugs Fixed prior to Version 1.07e:
  112.  
  113.        1. Items without headers cause the following item to be appended to
  114.           it.
  115.           
  116.           Revised RMAIL version of pcmail.c to append a trailing empty line
  117.           if the header is not properly terminated.
  118.  
  119.        2. Mail from UUPC to remote systems shows as coming from /dev/null.
  120.           
  121.           Restored 'From ...' line in sendone(), adding the actual node id
  122.           of the delivering user.
  123.  
  124.        3. Mail with long lines scrolls off the screen with the built-in
  125.           pager.
  126.           
  127.  
  128.                                      - 2 -                                 
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.  
  137.      September 9, 1990            UUPC/extended 1.07g vs. UUPC 1.05 summary
  138.  
  139.           Added check for length of line in PageLine().
  140.  
  141.        4. When sending mail, addressees with no alias that are added via
  142.           the 'Cc:' prompt are not correctly displayed in mail headers.
  143.           
  144.           Moved premature free() call for ccbuffer in Send_Mail().
  145.  
  146.        5. Upon termination, MAIL reports a Null Pointer Assignment in the
  147.           small memory model.
  148.           
  149.           Corrected declare of local variable debugp in getrcnames().
  150.  
  151.        6. Compiling using the compact model causes the stack to be blown in
  152.           MAIL.
  153.           
  154.           Altered all large arrays (including strings) to be allocated and
  155.           released from the heap using malloc() and free().  Strings used
  156.           only by modules for UUIO are left alone for performance reasons.1
  157.  
  158.        7. If mail includes a -c or -b option, the previous header includes
  159.           a bad comma at the end of its text.
  160.           
  161.           Fixed in sendone() to not generate a comma at end of headers.
  162.  
  163.        8. Cntrl-Break is ignored by UUIO if BREAK is off.
  164.           
  165.           Wrote UUPOLL driver program to enable and restore original BREAK
  166.           status.
  167.  
  168.        9. Mail forwarded with the forward (f) command has the mail headers
  169.           run together.
  170.           
  171.           Altered pcmail.c to use flag resend (shared between sendone() and
  172.           Interactive_Mail() in mail.c), which, when true, causes sendone()
  173.           to add the "Resent-" prefix to the generated headers "Date:",
  174.           "From:", "To:", "Cc:", and "Subject:" headers.
  175.  
  176.       10. Headers are not always terminated by an empty line if the first
  177.           line of the body of the message includes a colon (:).
  178.           
  179.           Modified pcmail() to not attempt to determine the end of the
  180.           header, instead forcing it to handle header processing based on
  181.           the mode (lmail or rmail) and whether or not the resend flag is
  182.           true.  This fix effectively cripples the ability of pcmail to
  183.           operate as a standalone program, although various uses of the
  184.           external routing routines in router.c had greatly already
  185.           restricted the standalone capabilities of pcmail.
  186.  
  187.       11. The sequence number for messages queued for remote systems cycles
  188.           after 500 messages.
  189.                             ------------------------                       
  190.      1The correct fix is increase the stack size via the global variable
  191.       _stklen, but, this was overlooked until after all the variables were
  192.       changed to allocation via malloc().
  193.  
  194.                                      - 3 -                                 
  195.  
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202.  
  203.      September 9, 1990            UUPC/extended 1.07g vs. UUPC 1.05 summary
  204.  
  205.           
  206.           Altered local temporary files to be generated via tmpnam, thus
  207.           eliminating a double increment of the sequence number per mail
  208.           message, and changed output format of sequence number from
  209.           decimal to hexadecimal to increase number of unique sequence
  210.           fields to 4096 from 1000.  These changes together provide an
  211.           eight-fold increase in available sequence numbers.
  212.  
  213.       12. Normal debugging via printmsg() cannot be used during early
  214.           initialization stages of processing, and never if mail is invoked
  215.           to send mail from the command line.
  216.           
  217.           Added check for environment variable UUPCDEBUG in configure(); if
  218.           the variable exists, its value is used to initialize debuglevel.
  219.  
  220.       13. If pager is not defined, MAIL sometimes refuses to display a
  221.           message because it incorrectly believes a pager was supplied.
  222.           
  223.           Altered pager to check for null pointer instead of empty string
  224.           to determine if an external pager is available.
  225.  
  226.       14. Slower PC's tend to timeout when transferring files.
  227.           
  228.           Upped TimeOut to 15 from 4, per indirect advice from Sam Lamb.
  229.  
  230.       15. HAYES modem type does not work.
  231.           
  232.           Added D (dial) command to last command before phone number in
  233.           dial.
  234.  
  235.       16. HAYES modem performing dialout cannot autobaud.
  236.           
  237.           Changed search for connect speed in dial to look for four or more
  238.           characters instead of exactly four.
  239.  
  240.       17. When running in passive mode, once the user presses <cr> to get
  241.           system's attention then login() processing goes into a output
  242.           loop of Login/Password messages until it times out.  Initialized
  243.           ch in rmsg().  Previously, it was not initialized if sync option
  244.           was not requested.
  245.  
  246.       18. Autobauding a modem causes the connection to be dropped.
  247.           
  248.           Dropped calls to dtr_off() and dtr_on() from SIOSpeed().
  249.  
  250.       19. In passive mode, the system cannot locate any valid system names
  251.           in L.SYS.
  252.           
  253.           Modified checkname to parse lines of L.SYS correctly, including
  254.           skipping comment lines.
  255.  
  256.       20. Changing speeds immediately upon receiving the "CONNECT" message
  257.           can cause a HAYES modem to drop the connection.
  258.           
  259.  
  260.                                      - 4 -                                 
  261.  
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268.  
  269.      September 9, 1990            UUPC/extended 1.07g vs. UUPC 1.05 summary
  270.  
  271.           Added sleep(1) before setting speed of modem in dial
  272.  
  273.       21. Mail forwarded to remote systems via a "Forward to" line in a
  274.           mail box fails when the buffer containing the address to forward
  275.           to is overlaid.
  276.           
  277.           Altered sendone() to use a local variable for forwarding
  278.           address.
  279.  
  280.       22. UUIO does not always deliver local files, it spools them for
  281.           forwarding because it sees a node delimiter symbol ("@" or "!")
  282.           in the header.
  283.           
  284.           Dropped existing remote_address() macro in favorite of full
  285.           routine to extract node name and user id of addressee; if the
  286.           node is the local nodename or domain, then the address is altered
  287.           to be a local address.
  288.  
  289.       23. UUIO should support the standard fields in L.SYS for when to call
  290.           other systems.  At the very least, it should understand the
  291.           keyword never.
  292.           
  293.           Wrote new checktime() to support all standard fields; does not
  294.           allow multiple day fields (TuFr0000-2400) in one token, but does
  295.           include the BNU and BSD 4.3 support of multiple tokens separated
  296.           by commas (Tu0000-2000,Fr0000-2400) which provides the same
  297.           function.
  298.  
  299.       24. Mail user interface does not properly parse user names with both
  300.           quotes and parentheses in them.
  301.           
  302.           Added ReturnAddress() to correct handle most cases of RFC-822
  303.           address syntax.  Also added support to CreateBox() to examine a
  304.           prioritized list of fields to select such data as the From,
  305.           Subject:, and Date: fields.
  306.  
  307.       25. Mail processing does not skip deleted messages when paging down
  308.           or up the list of items.
  309.           
  310.           Added position() to automatically skip deleted entries when
  311.           scrolling one step forward or back.
  312.  
  313.       26. Breaking out of passive mode via Cntrl-Break causes the UUIO AUX
  314.           port driver to remain active, which after a period of time would
  315.           crash the system.
  316.           
  317.           Added Cntrl-Break processor c_break() to gracefully:
  318.  
  319.             *  Hangup the telephone and reset the modem (if a Hayes)
  320.  
  321.             *  Restore the default AUX port interrupt handler
  322.  
  323.             *  Return to the original directory UUIO was started from
  324.  
  325.  
  326.                                      - 5 -                                 
  327.  
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334.  
  335.      September 9, 1990            UUPC/extended 1.07g vs. UUPC 1.05 summary
  336.  
  337.       27. Mail delivery processing incorrectly alters 'From' lines from
  338.           other systems to '>From'.
  339.           
  340.           Altered local mail processing that a 'From uucp' line is no
  341.           longer added, instead simply using the RFC-822 'Received:' line
  342.           at the top of files to handle separation of mail.
  343.  
  344.       28. Mail to a host with a direct connection to the local system in
  345.           the local domain would be incorrectly routed via the mail server
  346.           if the host was addressed via its full domain name.
  347.           
  348.           Modified user_at_node() to return the correct (short) name of the
  349.           host as the name to route by.
  350.  
  351.       29. Disk full condition is ignored, causing creation of zero length
  352.           files.
  353.           
  354.           Added checks in procedures writebuf(), printmsg() and sendone()
  355.           to detect disk full errors.  While these are not all the places
  356.           errors could error, they cause the program to stop in its tracks
  357.           rather than write files into the bit bucket.
  358.  
  359.       30. Not all PC editors can handle forward slashes in files.
  360.           
  361.           Corrected Invoke_Editor to use backslashes in file names.
  362.  
  363.      Enhancements made prior to Version 1.07e:
  364.  
  365.        1. Received and From lines tend to clutter a top of a message.
  366.           
  367.           Added smart handling of headers in CopyMsg(), which suppresses
  368.           selected headers when copying a message for display or
  369.           forwarding.  Added the type (t) and Type (T) commands to
  370.           optionally print a message with the normally suppressed headers.
  371.  
  372.        2. Messages are sometimes improperly divided into multiple parts if
  373.           they contain "Received:" or "From " lines.
  374.           
  375.           Added MMDF-style line of binary ones (\01) between messages when
  376.           copying them via CopyMsg() and sendone().  This allows for future
  377.           deletion of examining for "Received:" lines.  ("From " lines are
  378.           already ignored.)
  379.  
  380.        3. Added reply (r) command to mail to allow replying to primary
  381.           sender of a note.
  382.  
  383.        4. Added prompts for Subject and Carbon copies (Cc:) fields when
  384.           sending mail.
  385.  
  386.        5. Added shell (!) command invoking inferior command processors from
  387.           mail.
  388.  
  389.        6. Support should be added for automatically switching between
  390.           passive and active polling; perhaps a driver program is needed.
  391.  
  392.                                      - 6 -                                 
  393.  
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400.  
  401.      September 9, 1990            UUPC/extended 1.07g vs. UUPC 1.05 summary
  402.  
  403.           
  404.           Wrote UUPOLL program for driving UUIO at regular intervals.
  405.  
  406.        7. Login processing does not really emulate a UNIX system, and is
  407.           not secure.
  408.           
  409.           Fixed following areas in login:
  410.  
  411.             *  Added hello message with system name, MS-DOS level, and port
  412.                name.
  413.  
  414.             *  Login prompt is repeated if no user id is entered.
  415.  
  416.             *  System reports "login failed" if invalid password is given.
  417.  
  418.             *  Added passwd file to support multiple user ids on login.
  419.  
  420.        8. System cannot be shared between UUPC and other services.
  421.           
  422.           Passwd file includes parameters for optional shells, such as
  423.           Kermit.
  424.  
  425.        9. Exact version of program is not known during testing.
  426.           
  427.           Added __TIME__ and __DATE__ stamps to timestmp.c for display by
  428.           main().  Also added VERS definition to makefile to define
  429.           standard all modules.
  430.  
  431.       10. Builtin pager cannot scroll a single line (ala UNIX).
  432.           
  433.           Added code to pageline() to scroll one line if user presses
  434.           <cr>.  Also added clrscr() call to pager().
  435.  
  436.       11. The user of MAIL has no idea what message he is on aside from the
  437.           ever cryptic message number.
  438.           
  439.           Added display of subject line to selected MAIL options.
  440.  
  441.       12. ULIB does not use standard symbols for TIMEOUT processing.
  442.           
  443.           Added TIMEOUT symbol to dcp.h, and altered local TIMEOUT symbol
  444.           in dcpgpkt.c to TimeOut to avoid conflicts.
  445.  
  446.       13. Added optional user parameters 'Organization' and 'Replyto' to
  447.           allow these fields to be automatically inserted in ooutgoing mail
  448.           headers.
  449.  
  450.       14. Added called() and didcall() procedures to determine if host was
  451.           already connected to by UUIO when performing outgoing calls.
  452.           This allows multiple entries for the same host in the L.SYS
  453.           file.
  454.  
  455.       15. Added inithost() and loadalias() to read alias file (defined by
  456.           alias variable in configuration file) in MMDF format:
  457.  
  458.                                      - 7 -                                 
  459.  
  460.  
  461.  
  462.  
  463.  
  464.  
  465.  
  466.  
  467.      September 9, 1990            UUPC/extended 1.07g vs. UUPC 1.05 summary
  468.  
  469.           
  470.                nick    "full name" <rfc822@domain.address>
  471.           
  472.           and lists of the format:
  473.           
  474.                listname        nick1, nick2, nick3
  475.           
  476.           Added procedures ExplodeAlias(), AliasByNick() and AliasByAddr()
  477.           to perform alias lookup for send and reply functions.  Also added
  478.           alias (a) command to lookup aliases.
  479.  
  480.       16. MAIL should handle multiple mail servers, especially
  481.           automatically queuing mail for the systems listed L.SYS.  The
  482.           mail processor should also handle system aliases and routing to
  483.           remote systems through other than the default mail server.
  484.           
  485.           Added semi-smart routing to handle directly known systems via new
  486.           procedure loadhost() and modified procedure checkname().  Also
  487.           added support to process hostpath file to allow specifying routes
  488.           for hosts not directly connected (but these routes are not
  489.           inserted into the actual mail header) and aliases for both the
  490.           local and remote systems.
  491.  
  492.       17. Added function prototypes for most functions.   (The primary
  493.           exception is printmsg(), which with its variable number of
  494.           parameters would require rewriting to legally handle the correct
  495.           function prototype.)
  496.  
  497.       18. Added emunerated types for selected variables to assist the Turbo
  498.           C symbolic debugger.
  499.  
  500.      
  501.  
  502.  
  503.  
  504.  
  505.  
  506.  
  507.  
  508.  
  509.  
  510.  
  511.  
  512.  
  513.  
  514.  
  515.  
  516.  
  517.  
  518.  
  519.  
  520.  
  521.  
  522.  
  523.  
  524.                                      - 8 -                                 
  525.  
  526.  
  527.  
  528.  
  529.