Mods made to Jnos 1.10J to yield Jnos 1.10K:

nntpserv.c			Add missing static declaration.  Improve
				newgroups command, add date command.

trace.c				Fix PPP compile problem.

mailbox.c			Add mbox alias helpfile lookup.

forward.c, fbbfwd.c, lzhuf.c,	Added compressed FBB forwarding.
lzhuf.h, makefile, servers.tl,
config.h, mailbox.{c,h},
version.c, mboxmail.c

xms.h, xmsutil.c, memmgr.tl	Added mallocUMB(), largestUMB().

qrz.c				Changed to call mallocUMB().  Display international
				calls better.  Fix buffer scanner.

alloc.c				Display largest UMB if using XMS.

pc.c				Fix "-b -u0" to truly use BIOS i/o.

forward.c			Change smtp Message-id to bid algorithm.
				Use destination-bbs instead of LOCAL when forwarding
				msgs without a specified '@' field to FBB systems.

bmutil.c			Delete .usr file when .txt file is deleted.

smtpserv.c			Rewrite To-addr of returned mail.  Fix bid err.
				Add VRFY smtp verb.  Lock bid history during updates.

expire.c			Lock bid history file during updates.

smtpcli.c			Remove 'smtp bidcheck' command.

ftpcli.c			Memory leaks fixed; ftp cmds now recordable.

mboxmail.c			Build true from address for ax.25 msgs.

nntpcli.c			Fix premature expiration problem (no Date: hdr).

config.c			Rxecho fix for multidrop-kiss ports.

index.c				Minor fix to header type parser.

rdate.c				Timeout fixes added.

axui.c				Bug fixes, /t timestamp toggle added.

fingerd.c, commands.h		Added pkstat.

ax25.c				Fix axui cmd.  Make route learning less dynamic.

kernel.c			Fix PROCLOG feature.

iface.c				Display cdigi only when set.

arcdump.c			Fix bug in previous trace mod.

convers.c, usock.h		Buffer size fixes.
convers.hlp			Added convers command help info.

main.c				Remove bid history lock if MBFWD defined.

dialer.c			Improve modem-hungup test & pinger.

ax25cmd.c			Use bbscall for beacons when possible.

makelist.c			Include-file tool now works with Jnos.
=============================================================================

I added code for the H mbox command to search for alias help files, by
modifying dombhelp() in mailbox.c.

I added Jack KF5MG's mods to implement compressed FBB forwarding, obtained from
his MGFBB05a distribution.  I made changes to integrate it with the current Jnos
source.  See above for the list of source files changed.
To enable compressed forwarding, #define FBBCMP (as well as FBBFWD) in config.h.
To see the compression statistics in the command session screen for each
message processed, #define LZHSTAT.  To produce a horribly-detailed log of FBB
transactions, #define FBBVERBOSELOG.  Note that adding FBB compression makes
the Jnos memory footprint larger by some 15 KB, and that each FBB forwarding
session will demand 20KB from UMB blocks (if XMS is defined) or from the heap
otherwise.  If you are running under DESQview you should be aware that it claims
all the UMBs for itself.

To make allocating UMB space as similar as possible to malloc(), I wrote
mallocUMB().  Freeing UMB space is already done by calling free().
qrz.c was changed to call mallocUMB() instead of using equivalent local code.
I also added largestUMB() to xmsutil.c and changed dostat() in alloc.c to
display the result when using XMS.
I fixed a number of small problems with qrz.c and reduced memory usage also.

I changed ioinit() in pc.c to open stream Rawterm to a copy of stdout, rather
than opening /dev/con.  This was needed so that the -b option to have Jnos use
bios routines rather than directly updating video RAM, would actually work.
Now, you can (for example) use CTTY com2: to route the console i/o to a COM
port, and then invoke Jnos as: jnos110k -b -u0; all Jnos console i/o now uses
the serial port com2.  Anyone using Braille or text-to-speech peripherals
should be happier.

In an attempt to eliminate dups when multiple Jnos systems take the same
smtp msg and send it as a bulletin, I changed the generated bid to contain
a portion of the from addr, instead of our host addr.  We then store the bid
into the Historyfile as needed to avoid seeing dups later.  This was done in
makecl() in forward.c.  Since we now have several processes updating the
bid history file, it is now locked, and appropriate changes were made to
getmsgtxt() in smtpserv.c, Oldbidtick() in expire.c and main.c.  While I was
at it, I changed makecl() in forward.c to use the destination BBS call instead
of "LOCAL" when no at-bbs is specified in a msg.  To get the previous behaviour
#define use_local, and drop me a note telling why you preferred the old way!

From kf5mg: when all msgs are deleted in an area, remove the .usr file as
well, by changing closenotes() in bmutil.c.  I also changed mbx_reply()
to be case-independent in looking for the Re: subject prefix.
  
I observed that when a msg is returned to sender (or a return-receipt is
sent) the destination addr was not being rewritten per the rewrite file.
Thus smtp delivery was always assumed.  This was corrected by changes in
mailuser() in smtpserv.c.  Also, I fixed a bug where bids were being saved
in the Historyfile even when the msg was not delivered.  Next, I realized
that the strange dup bid complaints, under heavy forwarding load, occurred
because the bid isn't stored into the Historyfile until the bulletin is
processed, and so several copies could be queued until smtpserv starts up.
Thus Jnos will now totally ignore duplicates by just pretending to deliver
them! This all means that bounces due to duplicate bids are no longer done!!
The 'smtp bidcheck on|off' command was therefor removed from smtpcli.c.

Thanks to Joe K5JB, several memory leaks in doftp() of ftpcli.c were fixed.
Also Joe provided code to save ftp cmds entered at the console, to any record
file.

I modified dosend() in mboxmail.c to use KF5MG's improvement in building
the from address for ax.25 messages, which is to use the originating BBS's
address when available.  This does mean that Jnos systems capable of sending
Internet email should carefully parse what appear to be FQDNs but are instead
hierarchical routes.  I recommend a line in rewrite to treat *@*.na as if it
were *@*.noam; the Namibians don't need junk mail because of recalcitrant sysops!

I added code to make certain a Date: line exists in all news articles processed
into areas by getarticle() in nntpcli.c, thereby fixing a premature expiration 
problem.

John, VK1ZAO, sent along a patch to network() in config.c to handle multidrop
kiss ports: each multidrop port can have a seperate rxecho specification.

I added a minor fix to htype() in index.c, to categorize lines beginning with
a colon as NOHEADER instead of UNKNOWN.  Idea from Pete VE5VA.

I modified rdate.c per Selcuk Ozturk's mods, to improve timeout handling.
This version seems to be much improved!

In fingerd.c I added "pkstat" to the pseudo-user list, that runs the pkstat
command when fingered (and PACKET was defined).

Joe K5JB sent along some fixes to axui related to buffer indexing, and also
added a /t command to toggle displaying a timestamp for headers.  Also,
a fix for ax_recv() in ax25.c to not prematurely filter UI frames.
I changed ax_recv to not add in a route based on hearing a digipeated packet,
unless no route previously existed.  Digipeated multicast packets (to ID, QST,
MAIL, NODES) will not affect routes.  I did this because a direct route,
established by (say) a console connect command, would otherwise be changed to
a digipeated route by hearing a digipeated pkt from the destination system.
The drawback is that routes containing digis are much less dynamic.  I hope
this is not a problem!

I discovered that when I defined PROCLOG in kernel.c to trace stack resource
usage of processes, a proctrace file was opened repeatedly until all file
handles were exhausted.  Since the proctrace file is not even used, I
commented out the open of this file.

I changed showiface() in iface.c to only display a cdigi string when it
has been set.  From Brian, KO4KS.  Also from Brian: the remote sysop's trace
command was fixed to take arguments, by fixing traceserv() in smisc.c.
While I was there I redid the #ifdef so TRACESERVER and RSYSOPSERVER work.

I fixed a problem in the changes made to arc_dump() in arcdump.c when
tracing to a socket mods were introduced.  Thanks to Jim VE2VE for finding it.

I added the VRFY verb to smtpserv.c by making it an alias for expn, and
modified the existing code to return a "550 Unknown user" msg when the id
maps to "refuse".  Otherwise, all expansions are returned.  The "550 No Alias"
message no longer is returned.

I changed the value of SOBUF in usock.h to 512 when CONVERS is defined, to
allow more room for string buffering.  Also, send_link_change_msg() in convers.c
was changed to not overflow its buffer, by truncating the list of users.

Because convers no longer includes built-in help text, I appended the following
lines to \spool\help\convers.hlp, which is displayed by the new converse /help:
    After you are connected, what you type is sent to all conference
    attendees, unless you begin the line with one of the following commands:

    /?              Print help information.
    /BYE            Terminate the convers session. 
    /CHANNEL n      Switch to channel n.
    /EXIT           Terminate the convers session (same as /bye).
    /HELP           Print help information (same as /?).
    /INV user       Invite user to join your channel.
    /LINKS [L]      List all connections to other hosts. L => long format.
    /MSG user text  Send a private message to user.
    /NAME call [chan#]  Logs you in as user "call" per local ftpusers file.
    /PERSONAL text  Set or show some personal text.
    /QUIT           Terminate the convers session (same as /BYE).
    /SOUNDS y|n     Turn bell on or off.
    /VERSION        Print convers version information.
    /WHO [QUICK]    List all users and their channel numbers.
    /WR user text   Send a private message to user (same as /MSG).

    Commands may be abbreviated and can be entered in upper or lower case.

In dodialer() of dialer.c I changed the test of a hungup modem to include
the initial case of rlsd_line_control == FOUND_DOWN, to expedite the decision
to execute the dialer script.  I also found and bypassed some bc3.1 codegen
errors that confused the testing of bit values in a char variable.  I also
make sure no bogus delay value is used, since there were reports of the dialer
hanging instead of pinging.

Per Johan WG7J's suggestion, I changed ax_bc() in ax25cmd.c to use the bbscall
as the beacon source ID, when available.  Users seeing this beacon call would
then be more likely to use the correct call to reach the mailbox.

I changed nntpserv.c to fully implement the newgroups command, rather than
returning an empty list.  The creation dates of groups are stored in the
Pointer file.  get_path(), get_path2(), and make_path() in nntpserv.c and
newsgroup_to_path() in expire.c were modified.  donewgroups() added.
The (non-standard) date command was added.  Inspired by g8fsl.

I fixed the seldom-used tool, makelist.c, to compile with the current Jnos
includes.  Makelist produces an include-file reference tree.
