On Sun, Nov 16, 2008 at 00:51, Jos Ewert [EMAIL PROTECTED] wrote:
Hi,
Im trying to modify mod_fcgid to suit my needs, but I have a problem with
reading my newly added config directive.
For some reason it sets the config in my setter right but in the getter it
always reads the default value.
Whats even stranger is that I used this with mod_fcgid 1.10 too and it works.
e.g.
set :
config : 7092232, config-homedir : 7101472
get:
config : 7100440, config-homedir : 7845640
to set the value I use:
##
const char *set_homedir(cmd_parms *cmd, void *dirconfig,
const char *uid, const char *gid)
{
server_rec *s = cmd-server;
fcgid_server_conf *config =
ap_get_module_config(s-module_config, fcgid_module);
struct passwd *pw;
if((pw = getpwuid(ap_uname2id(uid))) == NULL){
fprintf(stderr,
Critical Error: You have specified an invalid user in
SuexecUserGroup.\n);
exit(1);
} else {
config-homedir = strdup(pw-pw_dir);
return NULL;
}
}
#
To get the config:
###
char *get_homedir(request_rec * r)
{
server_rec *s = r-server;
fcgid_server_conf *config =
ap_get_module_config(s-module_config, fcgid_module);
return config-homedir;
}
###
I removed all the debugging stuff I added to make it more readable.
if you want to take a look at the whole file + the other 2 I modified:
http://pastebin.com/f4c834a94
Any ideas what could have gone wrong?
r-server in get_homedir points to the server object corresponding to
the virtual host of the request. I _guess_ it is different from the
global server object. So, the ap_get_module_config in set_* and the
ap_get_module_config in get_* could give you two distinct config
objects.
S