MOO-cows Mailing List Archive


Re: bf_connect_player(CONN, PLAYER) --> *FTP!!*

Hi folks :)

Just one more quick thought on possible uses for a "connect_player()" 
builtin: FTP connections!!

Since we can now (blessed be Pavel) have multiple listening objects, it'd
be easy to set up an object listening on port 21 acting as an FTP daemon. 
Once logged in through this port, a player would be allowed to use only
the GET, PUT, LS, etc. verbs defined on the listening FTP daemon object,
via a restriction in this object's :do_command() verb.  (Recall that the
:do_command() verb on the *appropriate listening object* is called before
each verb issued by a player.) A player could read/write the values of
properties, verb code, etc., making transfer of large blocks of text much

However... this listening FTP daemon object would have to be able to
perform blocking I/O on connections, so as to read the initial "user XXXX"
line, reply with the line

331 Password required for XXXX

and then read the next "pass YYYY" line *before* deciding on whether or
not to log in the connection.  This is not currently possible (except with
non-blocking I/O in a polling loop, very laggy as previously discussed)
but would be with a "connect_player()" builtin.  The :do_login_command()
on the listening FTP daemon object would simply do what blocking read()s
it needed and decide whether to call "connect_player()" or print a "530
Login incorrect" message. 

Make sense?

Colin & Nate
Tripod, Inc.


Home | Subject Index | Thread Index