Hello all!
Today I tried to install mod_auth_digest (Apache 1.3.12).
Installed without any problems, but when I request scripts with parameters
in protected directory -
------------------------
Bad Request
requested URI /manager/script.asp not equals /manager/script.asp?param_1=23
------------------------
Or something like this.
I now that mod_auth_digest is experemental module, it is just bug report.
And another question.
I need to place homepages of one user's group on one site, and another group
on another.
mod_userdir does not allow to do this.
I found mod_userpath.c and change it slightly.
Script doesn't work, and I don't know where I can read documentation about
writing modules.
I know that there is www.modperl.com and O'Reilly book (I'm not too reach to
buy this book here - Russia), but may be you can tell me about another
resources ?
#include "httpd.h"
#include "http_config.h"
module userpath_module;
#define DEFAULT_USER_PATH "/usr/local/etc/httpd/htdocs/"
void *create_userpath_config (pool *dummy, server_rec *s)
return (void*)DEFAULT_USER_PATH;
}
char *set_user_path (cmd_parms *cmd, void *dummy, char *arg)
{
void *server_conf = cmd->server->module_config;
ap_set_module_config (server_conf, &userpath_module,
ap_pstrdup (cmd->pool, arg));
return NULL;
}
command_rec userpath_cmds[] = {
{ "UserPath", set_user_path, NULL, RSRC_CONF, TAKE1,
"the directory which contains all user html directories or
'disabled'" },
{ NULL }
};
int translate_userpath (request_rec *r)
{
void *server_conf = r->server->module_config;
char *userpath = (char *)ap_get_module_config(server_conf,
&userpath_module)
;
char *name = r->uri;
if (userpath != NULL && strcasecmp(userpath, "disabled") != 0 &&
name[0] == '/' && name[1] == '~')
{
char *w, *dname;
dname = name + 2;
w = ap_getword(r->pool, &dname, '/');
r->filename = ap_pstrcat (r->pool, userpath, "/", w, "/public_html",
dna
me, NULL);
return OK;
}
return DECLINED;
}
module userpath_module = {
STANDARD_MODULE_STUFF,
NULL, /* initializer */
NULL, /* dir config creater */
NULL, /* dir merger --- default is to override */
create_userpath_config, /* server config */
NULL, /* merge server config */
userpath_cmds, /* command table */
NULL, /* handlers */
translate_userpath, /* filename translation */
NULL, /* check_user_id */
NULL, /* check auth */
NULL, /* check access */
NULL, /* type_checker */
NULL, /* fixups */
NULL /* logger */
};
------------------------------------
Sergey Polyakov - Chief of WebZavod.
http://www.webzavod.ru