Hello!

static int module_translate_name(request_rec * r) {
        module_config *s_cfg = ap_get_module_config(r->server->module_config,
&fp_module);
        apr_datum_t db_domain_t;
        apr_datum_t db_path_t;

        
apr_dbm_open_ex(&s_cfg->file,"DB","/tmp/vhosts.db",APR_DBM_RWCREATE,666,r->pool);

        db_domain_t.dptr = r->hostname;
        db_domain_t.dsize = strlen(r->hostname);
        apr_dbm_fetch(s_cfg->file, db_domain_t,&db_path_t);


        ap_log_error(APLOG_MARK, APLOG_NOTICE, 0, r->server, "DB! %s PID:
%ld",db_path_t.dptr,(long int)getpid());

        if(db_path_t.dptr) {
                r->filename = apr_pstrcat(r->pool, db_path_t.dptr, r->uri, 
NULL);
        } else {
                                    apr_dbm_close(s_cfg->file);
                return DECLINED;
        }
                  apr_dbm_close(s_cfg->file);
        return OK;
}

Now my problem is that opening the berkeley db file fails when i want
to translate this.

If i open the database per child then it works ok but if i have a
structure like this:

www.1234.com => /var/www

if i access the url after apache restart it works the child fetches
the data from the database. But if i change the database with an
external program than the child does not fetch the data from the
database again and uses the old data.

is there a way to do this ?

Yours,
Aron


On 2/11/07, Nick Kew <[EMAIL PROTECTED]> wrote:
On Sun, 11 Feb 2007 15:23:52 +0000
Nick Kew <[EMAIL PROTECTED]> wrote:

> On Sun, 11 Feb 2007 15:51:37 +0100
> Michael Wallner <[EMAIL PROTECTED]> wrote:
>
> > Looking at apr/memory/unix/apr_pools.c, APRs allocator is anything
> > but a generic infrastructure for implementing my own allocator.
>
> If it was, then I daresay memory pools

... should've read "shared memory pools", of course!


--
Nick Kew

Application Development with Apache - the Apache Modules Book
http://www.apachetutor.org/

Reply via email to