1 Lisp Library Modules, Medley Release 1.0, FTPSERVER 1 Lisp Library Modules, Medley Release 1.0, FTPSERVER FTPSERVER 1 FTPSERVER 1 FTPSERVER 6 FTPServer(FTPSERVER NIL FTPserver NIL NIL 97) implements a simple PUP FTP(PUP% FTP NIL NIL NIL NIL 97) server protocol for a Xerox workstation. The server is typically run as a background process on one machine to allow other machines remote access to the files on its disk. Requirements 1 Ethernet connection to a remote host. Installation 1 Load FTPSERVER .LCOM from the library. Functions 1 (FTPSERVER(FTPSERVER (function) NIL NIL NIL 97) FTPDEBUGLOG) [Function] Creates a process named FTPSERVER that listens on the standard PUPFTP server socket for incoming connection requests. When one arrives, FTPSERVER services it, then returns to its listening state. The process continues to run until killed. If FTPDEBUGLOG is non-NIL, it should be an open file/stream to which tracing information is printed during the life of the process. If FTPDEBUGLOG is T, output goes to a newly created window. FTPDEBUGLOG can also be a REGION, specifying where the window is to be created. FTPSERVER.DEFAULT.HOST(FTPSERVER.DEFAULT.HOST (variable) NIL NIL NIL 97) [Variable] Initially DSK. This is the default host for files requested of the server via FTP. Setting this to FLOPPY, for example, would serve files off the machine's floppy drive. Note: FTPSERVER.DEFAULT.HOST can also be set to the name of a remote host, but this has limited utility, as it does not handle passwords correctly. Limitations 1 The current implementation is a simple tool which allows file transfer between Xerox machines and supports only one remote connection at a time. Because of this, files cannot be loaded indirectly, i.e., via the filecoms of another file. For example, suppose FOO loads BAR which loads WOO. When FOO is being loaded, it will attempt to load BAR. But FTPServer cannot support the second connection required to load BAR while the first connection is still open to load FOO. (This is similar to the case of trying to load FOO and BAR when they are on different floppies.) Therefore, you should load files in an order that prevents recursive loads(RECURSIVE% LOADS NIL recursive% loads NIL NIL 97): in this example, load WOO, then BAR, then FOO. Delete (DELFILE) operation is now supported. Rename (RENAMEFILE) operation is not implemented. FTPServer is best suited for simple COPYFILE operations. Examples 1 An alternative way of specifying the host from the remote machine is to make the host name be the "device'' field of the file name specification. For example, if machine M is running FTPServer, another machine could ask for directory of {M}FLOPPY:FOO.* to get a listing of M's {FLOPPY}FOO*. To address your host, you may use the results of ETHERHOSTNAME. If on your host (ETHERHOSTNAME NIL T) evaluates to 123#456#, then on a remote machine you can access file FOO on the host by: {123#456#}FOO [This page intentionally left blank] (LIST ((PAGE NIL (PAPERSIZE Letter FOLIOINFO (ARABIC "" "") STARTINGPAGE# 97) (0 0 612 792) ((FOLIO NIL (PARALOOKS (QUAD RIGHT) CHARLOOKS (SUPERSCRIPT 0 INVISIBLE OFF SELECTPOINT OFF PROTECTED OFF SIZE 10 FAMILY HELVETICA OVERLINE OFF STRIKEOUT OFF UNDERLINE OFF EXPANSION REGULAR SLOPE REGULAR WEIGHT MEDIUM INVERTED OFF USERINFO NIL STYLE NIL) FORMATINFO (ARABIC "" "")) (270 15 288 36) NIL) (HEADING NIL (HEADINGTYPE FOOTINGR) (54 27 558 36) NIL) (TEXT NIL NIL (54 54 504 702) NIL))) (PAGE NIL (PAPERSIZE Letter FOLIOINFO (ARABIC "" "")) (0 0 612 792) ((FOLIO NIL (PARALOOKS (QUAD LEFT) CHARLOOKS (SUPERSCRIPT 0 INVISIBLE OFF SELECTPOINT OFF PROTECTED OFF SIZE 10 FAMILY HELVETICA OVERLINE OFF STRIKEOUT OFF UNDERLINE OFF EXPANSION REGULAR SLOPE REGULAR WEIGHT MEDIUM INVERTED OFF USERINFO NIL STYLE NIL) FORMATINFO (ARABIC "" "")) (54 15 288 36) NIL) (HEADING NIL (HEADINGTYPE FOOTINGV) (54 27 558 36) NIL) (HEADING NIL (HEADINGTYPE VERSOHEAD) (54 762 558 36) NIL) (TEXT NIL NIL (54 54 504 684) NIL))) (PAGE NIL (PAPERSIZE Letter FOLIOINFO (ARABIC "" "")) (0 0 612 792) ((FOLIO NIL (PARALOOKS (QUAD LEFT) CHARLOOKS (SUPERSCRIPT 0 INVISIBLE OFF SELECTPOINT OFF PROTECTED OFF SIZE 10 FAMILY HELVETICA OVERLINE OFF STRIKEOUT OFF UNDERLINE OFF EXPANSION REGULAR SLOPE REGULAR WEIGHT MEDIUM INVERTED OFF USERINFO NIL STYLE NIL) FORMATINFO (ARABIC "" "")) (54 15 288 36) NIL) (HEADING NIL (HEADINGTYPE FOOTINGV) (54 27 558 36) NIL) (HEADING NIL (HEADINGTYPE VERSOHEAD) (54 762 558 36) NIL) (TEXT NIL NIL (54 54 504 684) NIL)))))3T2HH5l2ll2HH 2HH3T,-T-T2@ PAGEHEADING VERSOHEAD@ PAGEHEADING RECTOHEAD? PAGEHEADINGFOOTINGV? PAGEHEADINGFOOTINGR  HELVETICA CLASSICCLASSIC TITAN CLASSIC  HELVETICA HELVETICAMODERN MODERNMODERN HRULE.GETFNMODERN 4 HRULE.GETFNMODERN 4   HRULE.GETFNMODERN    HRULE.GETFNMODERN     HRULE.GETFNMODERN  $IM.INDEX.GETFNIM.INDEX.GETFN  HRULE.GETFNMODERN %   HRULE.GETFNMODERN    HRULE.GETFNMODERN  %IM.INDEX.GETFNCLASSIC    D a m * 02IM.INDEX.GETFNCLASSIC  XCx  HRULE.GETFNMODERN  *G22'J2IM.INDEX.GETFN & X  HRULE.GETFNMODERN [ 1 / %   z