[En-Nut-Discussion] MimeHandler questions

Bernd Walter enut at cicely.de
Sun Jun 21 23:13:55 CEST 2009

Questions are already answered after studying the code much longer.

On Sun, Jun 21, 2009 at 02:04:23PM +0200, Bernd Walter wrote:
> Lua is doing it's first hello world via cgi interface.
> Great thanks for all the people doing the integration.
> Now I want something like foo.lua in webroot instead of registering
> cgi function(s).
> NutSetMimeHandler(".lua", HttpProcessLua);
> comes to mind.
> With cgi I fill the request args with the following code:
>         int i;
>         char *name;
>         char *value;
>         lua_newtable(L);
>         int count = NutHttpGetParameterCount(req);
>         for (i = 0; i < count; i++) {
>                 // fill values into lua req;
>                 name = NutHttpGetParameterName (req, i);
>                 value = NutHttpGetParameterValue (req, i);
>                 lua_pushstring(L, name);
>                 lua_pushstring(L, value);
>                 lua_settable(L, -3);
>         }
>         lua_setglobal(L, "args");
> It was not used in my hello world test - be aware of bugs.
> Can I use NutHttpGet* in a mime handler?

It seems the query is already parsed when calling the MimeHandler.
I noticed that POST args are not handled?
NutHttpProcessPostQuery isn't called anywhere despite the fact that
it is compiled in and consumes code space.

> With cgi I send the result with the following code:
>         NutHttpSendHeaderTop(stream, req, error, "Ok");
>         NutHttpSendHeaderBot(stream, (char*)ctype, -1);
>         fputs(page, stream);
> The ASP and SSI code makes me believe that this has to be done
> differently.
> Is modifying the mime type possible at all?

It seems that it isn't possible.
I will just setup a few differend endings: .lua .xlua
It is a bit unfortunate that the input file is already opened, but
quite understandable that the interface is that way.
I will also need to verify if I can directly print to the socket stream
from within Lua instead of keeping the whole page in memory, but it is
ok for the beginning.

B.Walter <bernd at bwct.de> http://www.bwct.de
Modbus/TCP Ethernet I/O Baugruppen, ARM basierte FreeBSD Rechner uvm.

More information about the En-Nut-Discussion mailing list