Greetings! "Page, Bill" <[EMAIL PROTECTED]> writes:
> On Thursday, April 28, 2005 7:38 PM Mike Thomas wrote: > > > Camm wrote: > > > > > Greetings! Here's a quick way to get started: > > > ================================================================== > > > [EMAIL PROTECTED]:/fix/t1/camm/debian/gcl/gcl-2.6.6$ diff -u > > > ../gcl-2.6.5/o/file.d o/file.d > > > --- ../gcl-2.6.5/o/file.d 2004-05-07 21:48:58.000000000 +0000 > > > +++ o/file.d 2005-04-28 16:21:33.000000000 +0000 > > > > > ... > > > > > >(bar 8080 #'foo) > > > ================================================================== > > > Then point your browser to localhost:8080. You should be able to get > > > directory listings and files. > > > > I modified the test program to print stuff out and using port 8085 > > to get around IIS I was able to get a web page back with the following > > text: > > > > /TMP /win32app /WINDOWS > > > >from the following input into my browser: > > > > http://localhost:8085/dir > > > > So it looks like your patch works on Windows Camm to a first > > approximation - you truly are a wunderkind Camm! > > Using Version_2_6_7pre compiled on Windows I am not able > to reproduce this success. I tried: > > --------- > > [EMAIL PROTECTED] ~/axiom--windows--1/gcl/unixport > $ saved_gcl > GCL (GNU Common Lisp) 2.6.7 CLtL1 May 3 2005 03:46:01 > Source License: LGPL(gcl,gmp), GPL(unexec,bfd) > Binary License: GPL due to GPL'ed components: (UNEXEC) > Modifications of this banner must retain notice of a compatible license > Dedicated to the memory of W. Schelter > > Use (help) to get some basic information on how to use GCL. > > (defun foo (s) > (let* ((get (read s nil 'eof)) > (fn (and (eq get 'get) (string-downcase (read s nil 'eof)))) > (fn (when (probe-file fn) fn))) > (format s "HTTP/1.1 ~S~%~%" (if fn 404 500)) > (when fn > (if (pathname-name (pathname fn)) > (with-open-file (q fn) (si::copy-stream q s)) > (dolist (l (directory fn)) (format s "~a~%" (namestring l))))) > (close s)) > > ) > > (defun bar (p fn) > (let ((s (si::socket p :server fn))) > (tagbody l > (when (si::listen s) > (let ((w (si::accept s))) > (foo w))) > (sleep 3) > (go l)))) > > (bar 8085 #'foo) > > --------- > > Sits there and spins. If I go to my browser (FireFox 1.0.3) and > enter the url > > http://localhost:8085/dir > > after a short pause the browser returns with no error > but the page is empty. > > Any ideas? Mike, could you send me your "modified test program > that prints stuff out"? > What this will send to the gcl function 'foo' is 'get /dir' #'foo must find a file or directory by that name to produce output, which I'm guessing does not exist on your system. You can add a diagnostic like: (defun foo (s) (let* ((get (read s nil 'eof)) (fn (and (eq get 'get) (string-downcase (read s nil 'eof)))) (fn (when (probe-file fn) fn))) (format s "HTTP/1.1 ~S~%~%" (if fn 404 500)) (format t "get ~a fn ~a~%" get fn) (when fn (if (pathname-name (pathname fn)) (with-open-file (q fn) (si::copy-stream q s)) (dolist (l (directory fn)) (format s "~a~%" (namestring l))))) (close s)) ) You can also do 'telnet localhost 8085' and type 'get /dir' to see the output, which I think is likely '404' in my pseudo html error code example. Take care, > Regards, > Bill Page. > > > -- Camm Maguire [EMAIL PROTECTED] ========================================================================== "The earth is but one country, and mankind its citizens." -- Baha'u'llah _______________________________________________ Axiom-developer mailing list Axiom-developer@nongnu.org http://lists.nongnu.org/mailman/listinfo/axiom-developer