httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Akins, Brian" <Brian.Ak...@turner.com>
Subject Re: mod_wombat for Google Summer of Code
Date Mon, 03 Mar 2008 17:21:15 GMT
Okay my list:

-Ability for other modules to call lua without worrying about caching,
compiling, etc.  ie something like:
APR_DECLARE_OPTIONAL_FN(apr_status_t, lua_request_register, (apr_pool_t
*pool, lua_request_t **new, const char *file));
APR_DECLARE_OPTIONAL_FN(apr_status_t, lua_request_run, (request_rec * r,
lua_request_t *run, const char *function, apr_status_t *rc));

In theory, this generalized "framework" would be used by mod_wombat
internally.

-Per thread vm's.  An httpd thread has a dedicated lua vm for each file.

(We do these two things^^.  Brian M. has our very hacked version of
mod_wombat.  I can post it here if there is interest)

Support for in httpd.conf Lua.  Ie, I want to be able to do "simple" lua in
the config rather than having to use a separate file.

<Lua my_cool_code>
require 'string'
require 'apache2'
function simple_redirect(r)
    if string.match(r.headers_in['User-Agent'], 'mozilla') then
        r.headers_out['Location'] = 'http://somecoolmozillasite.com/stuff'
        return apache2.HTTP_MOVED_TEMPORARILY
    end 
end
</Lua>


<Location /my_ie_only_app>
   LuaHook fixups my_cool_code:simple_redirect
</Location>


(Bad example, but you get the general idea)

Ability to make "real" modules in lua:

function register_hooks(p)
    apache2.hook_handler(my_handler, NULL, NULL, apache2.HOOK_MIDDLE)
End

apache2.module(
    apache2.STANDARD20_MODULE_STUFF,
    create_dir_cfg,
    merge_dir_cfg,
    create_svr_cfg,
    merge_svr_cfg,
    cmd_table,
    register_hooks
)

The modules loading is place I see this being tricky.

For the truly ambitious, I'd like to be able to configure apache via lua:

httpd.load_module('mime_module', 'modules/mod_mime.so')
v = apache2.server.new()
v:document_root = '/opt/apache/htdocs'
mod_mime:types_config = '/etc/mime.types'
mod_env.set_env('X-Lua', 'is cool')

Not valid, but something like that...


-- 
Brian Akins
Chief Operations Engineer
Turner Digital Media Technologies


Mime
View raw message