home *** CD-ROM | disk | FTP | other *** search
/ Columbia Kermit / kermit.zip / c-kermit / ckc168.txt < prev    next >
Text File  |  2020-01-01  |  14KB  |  272 lines

  1. File CKVKER.UPD   Updates to C-Kermit for VMS version 5A(167)   14 Nov 1991
  2. DRAFT                                                                 DRAFT
  3.  
  4. 1.  Work around problem in spack() which causes data structure corruption
  5.     when sliding windows are in use. spack() backs up to far (before the
  6.     buffer) in some cases. Probably not noticed before because on Unixes
  7.     the link order puts this in the end of the debug buffer. On VMS it
  8.     overwrites bigsbsiz. This needs looking at by a protocol guru. (ckcfn3)
  9.  
  10. 2.  Generate a correct exit status when leaving the program. (ckuus5)
  11.  
  12. 3.  Issue the directory command when the user does a DIR. (ckuusr)
  13.  
  14. 4.  Report space available (SHOW QUOTA) when the user gives a SPACE command,
  15.     instead of space used (as per interface spec). (ckvfio)
  16.  
  17. 5.  Generate a correct attribute packet when sending from VMS. Much rework
  18.     here. All attributes are present except file format and record size,
  19.     which need doing later. Also, inbound attributes are still ignored at
  20.     this time. More work is needed in this area. (ckvfio)
  21.  
  22. 6.  Process TYPE commands properly. Previously there was no preceding CR/LF
  23.     and CR's were not interspersed in the output at appropriate places.
  24.     (ckuus4)
  25.  
  26. 7.  Fix CWD command. This relies on "knowing" the format of a VMS directory
  27.     spec (specifically, that the end in ':', ']', or '>'. This also has the
  28.     side-effect of allowing GET dirspec commands to do an implicit *.* wild-
  29.     card in the specified directory. (ckvfio)
  30.  
  31. 8.  Fix the REMOTE command processor. Basically there were two problems: the
  32.     zxcmd() procedure needed to be updated to know about the new first arg-
  33.     ument (ack!) and zsattr() needed to be told how to fudge attributes for
  34.     the case when the item being sent was not a disk file. (ckvfio)
  35.  
  36. 9.  Correctly terminate subprocess context when an interrupt packet is seen
  37.     while we are processing a remote command. Also some buffering fixes re-
  38.     lated to same. (ckvfio)
  39.  
  40. 10. Correct problem with filename completion. Previously, the fully qualified
  41.     filename would be output after the partial the user entered. We now back
  42.     up over the partial. Also, fixed the '?' option to display filenames one
  43.     per line. Note that there is still a problem with filename completion.
  44.     Consider the example SEND CK? followed by SEND CKV?. The second SEND will
  45.     still use the CK? wildcard in error. FDC has been notified, and this may
  46.     be fixed in edit 151. (ckucmd)
  47.  
  48. 11. Convert ZIFILE operations to full RMS. This fixes the CR/LF delimiter
  49.     problem in binary files. CR/LF pairs are now appended as needed, based
  50.     on the file characteristics. (ckvfio)
  51.  
  52. 12. Undefine NLCHAR, since the VMS file types are complicated enough to need
  53.     a full treatment in CKVFIO, rather than the simple Unix-style approach
  54.     NLCHAR gives us. (ckcdeb)
  55.  
  56. 13. Fix problem with remote command output introduced by #12. (ckuus4, ckvfio)
  57.  
  58. 14. Add support for Fortran carriage control files. Such files are converted
  59.     to overprinted CR/LF as they are being transmitted. (ckvfio)
  60.  
  61. 15. Clean up the code in ckvfio. Add a version identifier. (ckvfio)
  62.  
  63. 16. Build a correct '/' attribute sub-block. Like the owner field, this is not
  64.     yet used by the mainline C-Kermit code. (ckvfio)
  65.  
  66. 17. Start working on using native RMS for received files. Work completed for
  67.     binary (fixed 512) files, more needed for text files. (ckvfio)
  68.  
  69. 18. Store all log files as sequential variable, CR-delimited. (ckvfio)
  70.  
  71. 19. Correct the sending of fixed 512 files to honor the first free byte field.
  72.     Thus, files will no longer change length when passing through the VAX. This
  73.     required a change to block I/O for these file types. Also allow undefined
  74.     file types to benefit from the same processing. (ckvfio)
  75.  
  76. 20. Finish first cut of full RMS support for received files. There seems to be
  77.     a problem if VMS C-Kermit is in binary mode and receiving a file sent by
  78.     MS-Kermit which is not in binary mode. Further investigation is needed.
  79.     (ckvfio)
  80.  
  81. 21. Fix zstime() in ckvtio by fdc's request. (ckvtio)
  82.  
  83. 22. Fix "unsupported speed" messages when entering server mode on the default
  84.     port. (ckvtio)
  85.  
  86. 23. Make maximum record size of logging files 80 bytes, so they can be easily
  87.     searched/edited/mailed, etc. (ckvfio)
  88.  
  89. 24. Add support for SET FILE TYPE IMAGE. Note that it doesn't work, since the
  90.     remote Kermit overrides this. Must consult w/ fdc on this. (ckvfio)
  91.  
  92. 25. Add iswild() code from fdc for edit 157. (ckvfio)
  93.  
  94. 26. Conditionalize REMOTE HELP response for VMS to emit returns as well as
  95.     newlines. (ckcmai)
  96.  
  97. 27. Correct attribute processing sequence (do before opening output file).
  98.     fdc will propagate this to master sources. (ckcfn3)
  99.  
  100. 28. Correct another backwards savmod = binary / binary = 0 case. fdc will
  101.     propagate this to master sources. (ckcfns)
  102.  
  103. 29. Correct the behavior of zopeno() so that a superseded file will work
  104.     correctly (for example, when a version limit is set). (ckvfio)
  105.  
  106. 30. Make a local copy of the binary flag when the output file is opened.
  107.     The binary flag tends to change state before we are done needing it.
  108.     (ckvfio)
  109.  
  110. 31. Make IMAGE mode work. This is the continuation of item 24, above. Note
  111.     that image mode is only useful in very unusual circumstances - normally
  112.     it will give you an unusable file. This mode works by sending you all
  113.     of the bytes in the file verbatim, including ones normally used by VMS
  114.     for record attributes and delimiters. Also, note that this mode only
  115.     applies to files sent from VMS C-Kermit and is ignored when files are
  116.     received by C-Kermit. (ckvfio)
  117.  
  118. 32. Remove a spurious return from the zsoutl() routine. This was generating
  119.     spurious <CR>'s when log files were viewed using an editor. (ckvfio).
  120.  
  121. 33. Correct a problem introduced by the parity-sensing code. The parchk()
  122.     routine was examining the next-to-last byte of the packet [n-2] rather
  123.     than the last byte of the packet [n-1]. Thus, if the file being received
  124.     had a byte with the high bit set that happened to be the last byte in a
  125.     packet, _and_ block check 1 was in effect, the parity routine would be-
  126.     come confused and cause the high bits to be stripped from the packet.
  127.     Not pleasant. (ckcfn2)
  128.  
  129. 34. Correct the performance hit when an ASCII transfer into CK exceeded 32Kb.
  130.     New ASCII zoutdump() code by Ben Cohen, <ben@spcvxa.spc.edu>. (ckvfio)
  131.  
  132. 35. Correct the problem where 2 nulls would be inserted into received binary
  133.     files every 32Kb when DYNAMIC is defined. The z<in | out>buffer's must be
  134.     a multiple of 512 bytes. DYNAMIC defined them as 32766, the fix changes
  135.     then to 32768. (ckcker)
  136.  
  137. 36. Add support for SET FILE RECORD-LENGTH N. This applies only to received
  138.     files (correct size is detected automatically when sending) and only for
  139.     files of TYPE BINARY. Any recordsize may be selected; however it is wise
  140.     to a) use one smaller than the file size, and b) one that RMS can handle
  141.     without crashing (i.e. <= 32768, regardless of what the VMS manual says).
  142.     (ckuus2, ckvfio, ckcdeb)
  143.  
  144. 37. Do lots of testing with asynchronous I/O, deferred writes, read-ahead,
  145.     pre-allocation of the file, etc. No item or combination of items improved
  146.     operation by more than .5%, which is in the noise anyway. One useful side
  147.     effect: all modules except ckuusr are now compiled with optimization.
  148.     (ckvker.com)
  149.  
  150. 38. Fix a problem reported by Joe Doupnik <jrd@usu.bitnet> where single-char-
  151.     acter lines at the end of a file would cause access violations in the
  152.     memmove() call in the zoutdump() routine. (ckvfio)
  153.  
  154. 39. Add more detailed debug logging when creating an output file. The file mode
  155.     being used (TEXT, BINARY, IMAGE or LABELED) is logged. If an unknown mode
  156.     is presented, the mode number is logged as well. This should help locate
  157.     future problems with unexpected file modes. (ckvfio)
  158.  
  159. 40. Completely replace the zstime() function. When a remote Kermit supplies a
  160.     valid date/time in an attribute packet, the created file will have the
  161.     specified time as the VMS file creation time. Also, SET FILE COLLISION UP-
  162.     DATE now functions, although it is perhaps less useful on VMS, as VMS has
  163.     file version numbers. (ckvfio)
  164.  
  165. 41. Add support for the zchkspa() function. Files which are too large will now
  166.     be rejected. Lack of rejection does NOT imply a file can be received; other
  167.     considerations such as disk quota and other users filling the disk prevent
  168.     certainty of successful reception. (ckvfio)
  169.  
  170. 42. Move the debug() call in zxpand() inside the if statement to prevent access
  171.     violations, per fdc. (ckvfio)
  172.  
  173. 43. Extensively re-work ckvfio internals to support DECnet access to files. The
  174.     existing stat() and access() calls in zchki() were replaced with a single
  175.     native RMS call, various tests (such as $idtoasc) now handle DECnet results
  176.     from non-VMS operating systems where the feature isn't supported, an expli-
  177.     cit SET FILE TYPE IMAGE forces opens in BIO mode rather than BRO, since a
  178.     non-VMS DECnet implementation may not allow mode switches in mid-stream.
  179.     Note that the filespec (all info to the right of the '::') may need to be
  180.     quoted, since VMS RMS attempts to interpret fields which may be illegal on
  181.     a VMS system (such as a non-octal digit in a PPN). Example:
  182.  
  183.     SPC11Z::[49,7]CKVFIO.C
  184.  
  185.     must be quoted as:
  186.  
  187.     SPC11Z::"[49,7]CKVFIO.C"
  188.  
  189.     Note: The upper-level C-Kermit parser currently doesn't handle the space in
  190.     the access control information. Some cases may be worked around by quoting
  191.     the space as \32, but this doesn't work in file specs received from a re-
  192.     mote Kermit when C-Kermit is in server mode. Must get fdc to look at this.
  193.  
  194. 44. Correct a long-standing bug with the READ command. (ckvfio)
  195.  
  196. 45. Add support for forthcoming SET FILE TYPE BINARY UNDEFINED feature. This is
  197.     to support an application which insists on UNDEFINED files.  In general, 
  198.     this mode should NOT be used. (ckvfio)
  199.  
  200. 46. Correct a bug where the VERIFY setting was being propagated to the subproc-
  201.     ess used for handling REMOTE commands, causing spurious output of ">>> END
  202.     OF KERMIT COMMAND <<<" and other such things. (ckvfio)
  203.  
  204. 47. Add filesize padding when checking for free disk space for a text mode 
  205.     file. Code from fdc. (ckvfio)
  206.  
  207. 48. Use code from Gary Mussar to re-work zoutdump() for ASCII files to improve
  208.     performance when receiving. Due to the complexity of this area, the pre-
  209.     vious method is still available by #defining OLD_WAY when compiling. If no
  210.     problems are reported, the old code will be removed ca. edit 170. (ckvfio)
  211.  
  212. 49. Add CKERMIT_STATUS symbol, set on exit, so VMS users can determine the
  213.     state of requested operations. CKERMIT still only exits with SS$_NORMAL
  214.     or SS$_ABORT status. Reworked header file as well. (ckuusx, ckcdeb.h)
  215.  
  216. 50. Rough start on TYPE LABELED. We can now send a LABELED file out, with the
  217.     following constraints: 1) Nothing can yet convert it back, 2) The "magic"
  218.     characteristics longword isn't loaded yet (need to do a C interface to
  219.     xabitm, not defined by VAX C), 3) Application ACE's are not yet read and
  220.     stored. Current label types are KVERS - Kermit version, VMSNAME - VMS file-
  221.     name, VMSFILE - VMS file characteristics. (ckvfio)
  222.  
  223.     ******  NOTE WELL ****** These characteristics are quite volatile and will
  224.     be subject to radical changes for the forseeable future. The behavior of a
  225.     VMS C-KERMIT receiving a LABELED file from another VMS C-KERMIT of another
  226.     version is UNDEFINED and UNPREDICTABLE until I announce stability of the
  227.     feature. THIS MAY PREVENT YOU FROM DECODING OR USING FILES. NOTE WELL.
  228.  
  229. 51. Additional changes for labeled file processing. These were bugfixes to #50,
  230.     the same restrictions still apply. (ckvfio)
  231.  
  232. 52. Wrote an outboard decoder for labeled files. This will be part of the stan-
  233.     dard distribution, since it offers options which won't (at least initially)
  234.     be present in C-Kermit itself. (ckvcvt)
  235.  
  236. 53. Fix a small problem in compiling ckvfio. The definition for the journaling
  237.     field in the FAB doesn't exist in versions of VAX C before V3.1, so we will
  238.     define it relative to the record format field, which is always available.
  239.     (ckvfio)
  240.  
  241. 54. Have the system print the actual reason when an RMS error occurs when us-
  242.     ing the outboard file decoder. Also cleaned up the help text. (ckvcvt)
  243.  
  244. 55. Add ACL handling for labeled files. Also cleaned up the journaling problem
  245.     once and for all. (ckvfio, ckvcvt, ckvusr)
  246.  
  247. 56. Correctly report the file size as (highest_block-1)*512+first_free_byte
  248.     instead of allocated_blocks*512. (ckvfio)
  249.  
  250. 57. Prevent captive or restricted users from invoking lib$spawn. This disables
  251.     some built-ins (dir, etc.) as well as spawn/push. (ckvfio)
  252.  
  253. 58. Fixed the LOG SESSION logfile. Previously it would contain random small
  254.     chunks of text with extraneous line breaks. This change (of course) chan-
  255.     ges the RMS structure of the session log file. (ckvfio, ckvcon)
  256.  
  257. 59. Implement SET FILE TYPE LABELED for file receives. Also cleand up a few
  258.     typos in the main code that dealt with labeled files. (ckvfio, ckuus3,
  259.     ckuus5).
  260.  
  261. 60. Correct a potential problem when flushing buffers after a disk error when
  262.     receiving a file. (ckvfio)
  263.  
  264. 61. Fix SET INPUT TIMEOUT (it didn't).  Extraneous rtimer() call.  (ckvtio.c)
  265.  
  266. 62. Fix parity handling not using the right buffer offset. (ckvtio)
  267.  
  268. 63. Fix MAIL and PRINT dispositions not working in server mode, general cleanup
  269.     of code in that area. (ckvfio, ckcfns).
  270.  
  271.     More changes are expected.
  272.