[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: LuaWebserver [was: a few questions re LuaSockets]
- From: Joe Stewart <jstewart@...>
- Date: Thu, 23 Jan 2003 13:28:38 -0800
At 10:01 PM 1/23/2003, you wrote:
From: "Joe Stewart" <jstewart@ccpu.com>
> I put the files on http://lua-users.org in users/jstewart/*, but couldn't
> figure out how to properly point your page to the files... any
suggestions?
I think the way they are linked now is ok.
Only after a bit of mucking around!
I've only had a short look at the code yet, so I can't say too much. One
thing I noticed was that you popen() .lua files to run scripts.
Ugly, huh?
Maybe that could be done more directly via dofile() or such... I don't have
the details now, but a while back I saw some nice code to 'sandbox' external
Lua code inside another script...
This is exactly why I used popen... I didn't want errant scripts to hose-up 
the server. If you can point me to the "sandbox" code, I'll see if I can 
integrate the concepts...
I was wondering if it was possible from standard lua to set the global 
environment to another table prior to a dofile(), then kill the temp one 
and restore the main?
I guess the called script could be entirely contained in a well-known 
function (perhaps 'main()') with all parameters as functions and all its 
variables as locals. Does this make sense? How would you trap errors 
without killing the calling script?
I will try and look into this after the weekend when I find some time again.
>From my own experiments with libwebserver, I'm now more and more convinced
that doing the main loop in Lua would be my goal, if only for flexibility.
In the long run I'd also like to try using coroutines for handling more than
one request at a time.
Are co-routines possible with Lua 4? I'm a bit hesitant to move to Lua 5... 
no reason other than I only use what I can build (I compile with lcc-win32 
among other compiles/environments) and I haven't taken the time to try and 
compile Lua 5.
My approach of using 'readfrom("|lua ...")' while fat and ugly, does 
provide an opportunity for multiple requests, since  I could read one line 
of output from the script, go to the next, etc., but even with this, 
coroutines would make for an overall better looking piece of code IMHO, 
considering the state information you'd probably have to carry around.
Did anyone ever respond about using luasocket's 'select' with lua's file 
handles rather than sockets? Under *NIX at least, this ~could~ work, I'm 
not too sure about Windows (and I want to support both)... I guess I can 
answer this myself by looking at the source... ;-).
This would esp. be important if dealing not with
static content (which is more-or-less piping a file to stdout) but with
dynamically generated content that might take more time to generate.
Do you know how dynamic content is handled via http? Is there something 
more than GET/POST/PUT that I need to know about (too impatient to read 
RFCs)? Any pointers?
Thanks for all the contributions and suggestions,
I've received more than I've given ;-). Thanks to all!
-joe
-Martin