home *** CD-ROM | disk | FTP | other *** search
/ The Pier Shareware 6 / The_Pier_Shareware_Number_6_(The_Pier_Exchange)_(1995).iso / 024 / psi110g.zip / JNOS110G.TXT < prev    next >
Text File  |  1994-08-26  |  13KB  |  272 lines

  1. Date: Fri, 26 Aug 1994 13:34:29 -0500
  2. From: Dugal James P. <jpd@usl.edu>
  3. To: nos-bbs@hydra.carleton.ca
  4. Subject: JNOS 1.10G released
  5.  
  6. I've placed JNOS 1.10g on several ftp sites today; what follows describes
  7. the changes I made to 1.10f to yield 1.10g.  Thanks to all who contributed
  8. code, constructive criticism, or their time to test new code.
  9. Jnos 1.10g can be found on:
  10.     PC.USL.EDU:/pub/ham/jnos
  11.     FTP.UCSD.EDU:/hamradio/packet/tcpip/incoming
  12.     FTP.ECE.ORST.EDU:/pub/ham/wg7j/incoming
  13.  
  14. James Dugal, N5KNX
  15. jpd@usl.edu
  16. 26 Aug 1994
  17.  
  18. dirutil.c            handle MSDOS <drive_letter>:\ properly.
  19.                 Display free space remaining correctly.
  20.  
  21. nntpcli.c            fix group first-letter loss.  Avoid
  22.                 --more-- prompt for arrival notifications.
  23.                 Permit group name mapping. Disallow redundant
  24.                 kick.  Support LZW.  Compensate for GMT. 
  25.                 Add 'nntp firstpoll #days' cmd.
  26.  
  27. nntpserv.c            Eliminate infinite wait for history lock.
  28.                 Compensate for GMT.  Add 'nntp firstpoll #days'
  29.                 cmd and more pwait() calls.
  30.  
  31. bmutil.c            Remove .inf timestamp file when area is deleted.
  32.                 Prompt for input based on LINEMODE setting.
  33.                 Corrected display of an invalid msg number.
  34.  
  35. expire.c            Remove .inf timestamp file when area is deleted.
  36.  
  37. i8250.c,i8250.h            Put back 1.10c behaviour: don't require CTS.
  38.                 Add support for chained IRQs, a 6th serial
  39.                 port, and NRS-CTS protocol.
  40.  
  41. config.c, internet.h        Support encap RX using protocol code 4.
  42.  
  43. nrcmd.c                minor display formatting change.
  44.  
  45. pc.c                Eliminate confusion in session status line.
  46.                 Add MAIL msg to status line 1.
  47.  
  48. mailfor.c            Add unread-personal-mail feature.
  49.  
  50. ftpcli.c,ftpcli.h        Allow LZW compression for put, mput, and rput
  51.                 commands.  Disable LZW attempts after first
  52.                 XLZW request is rejected in a session, unless
  53.                 'reclzw on' is issued again.  Disable LZW
  54.                 attempts unless an ASCII (not image or logical)
  55.                 transfer is intended (since LZW is implemented
  56.                 only for ascii sockets).
  57.  
  58. ftpsubr.c            Prompt for input based on LINEMODE setting.
  59.  
  60. mboxmail.c            Prompt for input based on LINEMODE setting.
  61.                 Validate area name given by sysop.
  62.  
  63. mailbox.c,mailbox.h        Add XP mailbox command, to toggle LINEMODE
  64.                 flag.
  65.  
  66. smtpserv.c            "New mail for xxx" message is only displayed
  67.                 if SMTPTRACE is defined in config.h and
  68.                 Smtptrace value is non-zero.  If PRINTEROK
  69.                 is defined in config.h, mail written to a
  70.                 printer device is followed by a FormFeed, and
  71.                 no index file is written.  Bids found in
  72.                 non-dup msgs are now stored into the bid
  73.                 history file.  Timezone now checked for DST.
  74.  
  75. smtpcli.c            The Smtptrace value must now be > 1 to see
  76.                 any trace output from the smtp client.
  77.                 Increased smtp_send stack.
  78.  
  79. dialer.c            Accommodate 115200 baud.  Correct trace output.
  80.  
  81. asy.c                Accommodate 115200 baud in attach, and 'n'
  82.                 attach flag meaning NRS-CTS.
  83.  
  84. asy.h                Add asy5vec and permit a 6th serial port.
  85.  
  86. pcgen.asm            Add chained IRQ support.
  87.  
  88. asyvec.asm            Add chained IRQ support + a 6th serial port.
  89.  
  90. pop2cli.c, pop3cli.c        Eliminate "New mail arrived for..." msg if
  91.                 pop trace value set to zero.  Support LZW.
  92.  
  93. pop3serv.c            Support LZW.
  94.  
  95. mailcli.c            Add 'pop lzw on/off' cmd.
  96.  
  97. mboxcmds.txt            Add XP cmd description.
  98.  
  99. alloc.c                Refuse morecore requests > 32K.
  100.  
  101. main.c                Cleaner swap away from trace screen.
  102.                 Change DOS device test.  Improve help.
  103.  
  104. lzw.c                Added lzw trace cmd, showing LZW efficiency.
  105.  
  106. proc.h, ksubr.c            Make stkutil() externally callable.
  107.  
  108. files.c,file.h,nos.cfg        Added CmdHelpdir, defaulted to "/help".
  109.  
  110. ip.c                Test for packets with lost bytes.
  111.  
  112. ipcmd.c                Correct ip heard count when reusing oldest
  113.                 slot.
  114.  
  115. axheard.c            Correct heard count when reusing oldest slot.
  116.  
  117. look.c                Accept socket # for mailbox user specification.
  118. =================
  119.  
  120. I fixed wildcardize() in dirutil.c to handle MSDOS <drive_letter>:\
  121. often found in the ftpusers file.  This bug was causing the ftp DIR command
  122. to not produce any output unless '*.*' was explicitly given.  I also
  123. corrected some minor problems when dealing with CDROMS.  Notable is the
  124. case where the normalize-path function returns \\H.\A. as a path to drive H.
  125.  
  126. I introduced a problem in 1.10f nntpcli.c for newsgroups NOT containing a
  127. period. This is now fixed!  I also changed the news article arrival msg to
  128. not incur the --more-- prompt halt for input, and (like smtp notifications),
  129. to be displayed only if the console was in a command session.
  130. Also, a newsgroup can be renamed locally, by using NNTP DIR old=new
  131. Example:  nntp dir usl.maillist.tcp-group=tcp
  132.           nntp dir rec.radio.amateur.=
  133. Use old== to delete a mapping specification.  Mappings are examined in
  134. the same order they were specified.
  135. I found it was possible for nntp kick to create a second client process
  136. connected to the same server.  Now fixed.  Also, an nntp timer is restarted
  137. if jnos is unable to create an nntp client process when the timer matures.
  138. LZW is also now supported, thanks to Ron, N8FOW.  If the client runs on GMT,
  139. the NEWNEWS command is modified to reflect this.  Finally, the 'nntp firstpoll
  140. #days' cmd was added, from Andrew G8FSL.  The initial poll to a new server
  141. will ask for only #days worth of news, rather than all news since 1990.
  142. The default is 5 days.
  143.  
  144. In bmutil.c and expire.c, I added code to delete the .inf timestamp
  145. file when the area becomes empty and is deleted (if USERLOG is defined).
  146. This would eliminate notification of areas having new msgs when they are
  147. in fact empty.  I also changed several routines in bmutil.c to check
  148. the linemode setting (toggled by XP) before trying to read a single
  149. char from a telnetted user.  The user may ultimately be using ax.25 and
  150. be incapable of returning a single char.  Anyone have an automatic solution?
  151. I also corrected the display of an invalid msg #.
  152.  
  153. In mailbox.c I added the XP maibox command (toggles the LINEMODE flag;
  154. default is off), and the charmode_ok() subroutine to test the flag and
  155. connection type.  Then sendfile() in ftpsubr.c and dombmovemail() in
  156. mboxmail.c were changed to call charmode_ok() before prompting for input.
  157. I added area name validation to doarea() in mboxmail.c, so that the
  158. sysop cannot provide an invalid name (that is likely to provoke the
  159. repeated "Mail file busy.  Retry?" syndrome).
  160.  
  161. i8250.c no longer requires an input CTS signal.  This is a return to the
  162. behaviour of Jnos 1.10c in this regard.  I merged the i8250.c from 1.10c
  163. with 1.10f, so as to eliminate TX lockups with modems using CTS for flow
  164. control.  I added support for a 6th serial port and chained IRQs, from
  165. PA0GRI via N2RJT.  To indicate an interrupt vector is chained, suffix
  166. the vector number with "_c" in the attach command.  The vector number
  167. remains specified in HEX so as not to break any existing config files.
  168. pcgen.asm and asyvec.asm were changed to support chained interrupts,
  169. from PA0GRI and N2RJT.  NRS-CTS protocol was added, to support the NEDA
  170. node-stack diode matrix, from WZ2B via N2RJT.
  171.  
  172. KA9Q noted that IP within IP encapsulation should be using IP protocol
  173. code 4 instead of 94.  Jnos now accepts either value, but still generates
  174. code 94.  A future version of JNOS should generate code 4, thereby obsoleting
  175. Jnos versions prior to 1.10g.  Change made to config.c and internet.h.
  176.  
  177. In pc.c I changed StatusLine3() to dynamically access some session
  178. variables, rather than relying on a static copy, and test return codes.
  179. This seems to have cured the occasional trashing of a netrom session display.
  180.  
  181. I changed xfer_article2() in nntpserv.c to give up if it can't lock the
  182. history file after trying a minute, based on Doug WA3DSP's comments.
  183. A log message is written.  Also, an nntp timer is restarted if jnos is
  184. unable to create an nntp client process when the timer matures.  I also
  185. added support for the GMT keyword on the NEWNEWS command, both as a client
  186. and a server.  Finally, I added G8FSL's 'nntp firstpoll #days' cmd, to
  187. ask for only #days worth of news, rather than all news since 1990, in the
  188. initial poll to a new server.  The default is 5 days.
  189.  
  190. ftpcli.c was lacking code to invoke LZW compression for put, mput and
  191. rput commands, now fixed.  I also noticed that batching of ftp cmds was
  192. not handled correctly if LZW was enabled, also fixed.  Thanks to I1VDM
  193. for pointing out the LZW problem.  I changed the ftp client to abandon
  194. lzw attempts after the first XLZW command is rejected.  No point in
  195. seeing all those 500 Unknown Command messages after the first one.
  196. But, if you really want to re-attempt lzw in the same session, issue a
  197. 'reclzw on' command.
  198.  
  199. Thanks to Jan, PE1DGZ for mailfor.c and pc.c modifications to show that
  200. unread personal mail is waiting via the MAIL string on status line 1.
  201. I added the 'mbox mailfor watch call_1 ... call_n' command to permit
  202. specification of which mailboxes are to be checked.  To initiate this
  203. feature, you must activate mailfor (eg, mbox mailfor 600) and set the
  204. watch list (eg, mbox mailfor watch n5knx).  To remove the MAIL string,
  205. first read the mailbox's last message, and then force the mailfor process
  206. (eg, mbox mailfor now) or await the mailfor timer's maturation.
  207. Note that the calls to be watched must not appear in /spool/areas!
  208.  
  209. In an attempt to provide a means of eliminating the "New mail for xxx"
  210. message when desired, I changed smtpserv.c to display the message only
  211. if Smtptrace were non-zero (eg, 1).  And, smtpcli.c was changed to do
  212. no tracing unless the Smtptrace value were greater than 1.
  213. If SMTPTRACE is not defined in config.h, neither module does tracing.
  214. In keeping with this behaviour, pop2cli.c and pop3cli.c were changed
  215. to eliminate the "New mail arrived for..." msg when the pop trace value
  216. is zero.  To avoid a loop when mail can't be delivered locally, such as
  217. to an offline/notready printer, or to a locked mailbox, the smtptick()
  218. call was eliminated just before the smtpserv process exits.  We'll rely
  219. instead on a retry when the smtp timer matures.
  220. I also found a problem in smtpcli.c: when invoking retmail() to return
  221. a message to sender, it could overflow the process stack, probably just when
  222. LZW was compiled in.  I changed the stack size from 1024 to 1536 for
  223. smtp_send(), and this seems to have eliminated the problem.
  224. Dave, N9HKM, provided code to have smtp always save bids in the history
  225. file when unique.  I was prompted by Geoff KE6QH to change smtpserv'c ptime()
  226. routine to test for daylight savings time.  The problem is that Borland's
  227. runtime probably doesn't change to/from DST at the same time as your
  228. government decrees!  In this case, don't put a dst zone in your TZ variable.
  229.  
  230. I found that in asy.c, asy_attach() was passing the speed specification as
  231. an int16 rather than a long, causing 115200 bps to be unrecognized.  Fixed.
  232. A similar change was made in dialer.c for asy_speed() calls.  I added code
  233. from WZ2B and N2RJT to check for the attach flag 'n' implying the NRS-CTS
  234. protocol, in the case where NRS is #defined.  dialer.c's trace display
  235. was corrected in many places.
  236.  
  237. I added code in alloc.c to disallow a morecore() request for more than 32767
  238. bytes, per Andrew G8FSL.
  239.  
  240. main.c changed to delay swapscreen() until the Current session variable
  241. is changed, to help prevent trace output appearing on non-trace screens.
  242. Also, the test for opening a MSDOS device was not catching the case where
  243. a device name was followed by a period, and perhaps an extension.  MSDOS
  244. was all too happy to equate "/spool/mail/lpt1.txt" with LPT1.  BUT if
  245. you #define PRINTEROK in config.h, then Jnos will allow opening a printer
  246. for output if it is online and has no errors flagged.  Thus the sysop can
  247. issue: copy filename lpt2 , or within the mailbox, type: MC 3 \dev\prn
  248. A companion change was made in smtpserv.c.  If PRINTEROK is defined, and the
  249. destination is actually a printer device file, a FormFeed separator is
  250. issued and no index file update is attempted.
  251. Ron N8FOW provided code to enhance dohelp() in main.c, that displays
  252. files corresponding to Jnos commands, that are stored in "/help" by default.
  253. You might wish to redefine CmdsHelpdir to "/spool/help/cmds", or some other
  254. location, via nos.cfg.  Preliminary help files are provided in cmdshelp.zip.
  255. Files.c, files.h and nos.cfg were similarly modified to define CmdsHelpdir.
  256.  
  257. lzw.c changed to allow lzw tracing.  If 'lzw trace' is nonzero, when a LZW
  258. socket is closed, the compression statistics are displayed.
  259.  
  260. LZW support added to pop3cli.c and pop3serv.c (and mailcli.c).
  261.  
  262. I made stkutil() in ksubr.c externally callable, for example by kernel.c
  263. when PROCLOG is defined (to spot processes with unsufficient stack space).
  264.  
  265. ip.c now checks for packets missing data bytes, per VE3DTE.
  266. ipcmd.c now zeroes ip_heard count when reusing the oldest slot, per VE3DTE.
  267. I made a similar change to axheard.c.
  268.  
  269. I changed look.c to allow specifying a mailbox user by socket number.
  270. Previously, the callsign was required, contrary to docs.  Thanks to Greg,
  271. KE4DPX, for pointing out the problem.
  272.