[comp.mail.uucp] Uuslave lives!

gnu@hoptoad.UUCP (02/12/87)

Tonight I got hoptoad's uucp to call up uuslave, send mail, send files,
receive files, negotiate hangup, and hang up.  Uuslave behaved itself
beautifully.  It's the first time I've seen it really work.

To do this, I had to write an acknowledgement layer for uuslave.  It
currently runs with window size = 1 (half duplex), unlike unix uucp
where if you watch the modem lights, you can see the data keep right on
coming while the acks go BLIP..........BLIP........BLIP........  at the
same time.  With uuslave, it's a bit slower at the moment -- the data
stops while the ack BLIPS back -- but it's a lot easier to program and
there's a chance it will even run on non-interrupt-driven systems.

There are still a few loose ends, e.g. data packets aren't checksummed
yet, though the control info is checksummed.  I will do a bit more
cleanup of this sort and post it to net.sources soon.

If a few SF Bay Area people want to get an early copy and make it
compile (if not run) on their IBM PC or Atari or Amiga or whatever,
that would save the rest of the net a lot of minor editing.  I have it
running on Unix.  Send me mail IFF you will work >= one day (or night)
on it this week, so I can post it soon.

Of course, uuslave still lacks a few amenities like:  logging (hmm, who
*was* that who called my system and what files did they get?); master
mode (ability to dial out); uuxqt (a separate program that runs
commands for mail and news); larger windows to overlap data and acks;
and such.  That stuff can wait til after I release the working
uuslave.c -- so we won't have to merge different versions as much.

If somebody could work on building a standalone, PD program that dials
a modem and goes through a login sequence (parameterized from a file or
argv) then this would make master mode uucp significantly easier.
I have heard that V8 Unix has a "dial" command that does this, but
it passes back a file descriptor via "streams" which is not very portable.

People with concrete ideas for the sysop's interface to the dialer
should post their ideas.  Ideally we could get better control of the
login than the traditional uucp send/expect strings; anyone seen a
better paradigm, like in a fancy terminal emulator?  I think I've seen
one described that has loops and conditionals and such.  Function calls
would be great, since we could define a function like dial_pc_pursuit()
that would encapsulate all the hair and then just invoke it from the
host's dialing information.  We can also use the same send/expect code
to talk to the modem's dialer and interpret the resulting status, so
users can configure it for whatever modem they have -- unlike Unix
uucp.

There may be some code we can use in C-Kermit but it will probably need
to be untied from the rest of Kermit.  Volunteers?
-- 
John Gilmore  {sun,ptsfa,lll-crg,ihnp4}!hoptoad!gnu    gnu@ingres.berkeley.edu
  Overheard at a funeral: "I know this may be an awkward time, but do
  you recall him ever mentioning source code?"		-- Charles Addams

jc@cdx39.UUCP (02/13/87)

> 
> People with concrete ideas for the sysop's interface to the dialer
> should post their ideas.  Ideally we could get better control of the
> login than the traditional uucp send/expect strings; anyone seen a
> better paradigm, like in a fancy terminal emulator?  

One suggestion:  include shell escapes in whatever syntax you develop.
While hacking at uucico.c a while back, I found it extremely useful 
to make it interpret send-expect phrases that looked like "!dial foo"
in the obvious way, with a non-zero exit implying failure.  That way,
it doesn't matter if your setup isn't quite perfect, because the user
can then write a standalone program that does its own magic.  This
approach is better than a subroutine capability, because you don't
need source code to invoke it.

Congrats on your work so far.

-- 
	John M Chambers			Phone: 617/364-2000x7304
Email: ...{adelie,bu-cs,harvax,inmet,mcsbos,mit-eddie,mot[bos]}!cdx39!{jc,news,root,usenet,uucp}
Smail: Codex Corporation; Mailstop C1-30; 20 Cabot Blvd; Mansfield MA 02048-1193
Clever-Saying: Uucp me out of here, Scotty; there's no AI on this node!