Hi,
Here is a patch for http://projects.unbit.it/uwsgi/ticket/58
cheers,
- steve
------------------------------------------------------------
diff --git a/apache2/mod_uwsgi.c b/apache2/mod_uwsgi.c
index 78e3fea..1a647e9 100644
--- a/apache2/mod_uwsgi.c
+++ b/apache2/mod_uwsgi.c
@@ -72,6 +72,7 @@ typedef struct {
char script_name[256];
char scheme[9];
int cgi_mode ;
+ int empty_remote_user;
int max_vars;
} uwsgi_cfg;
@@ -162,6 +163,7 @@ static void *uwsgi_server_config(apr_pool_t *p, server_rec
*s) {
c->cgi_mode = 0 ;
c->max_vars = 128;
c->script_name[0] = 0;
+ c->empty_remote_user = 1;
return c;
}
@@ -176,6 +178,7 @@ static void *uwsgi_dir_config(apr_pool_t *p, char *dir) {
c->modifier1 = 0 ;
c->modifier2 = 0 ;
c->cgi_mode = 0 ;
+ c->empty_remote_user = 1 ;
c->max_vars = 128;
c->script_name[0] = 0;
if (dir) {
@@ -344,7 +347,9 @@ static int uwsgi_handler(request_rec *r) {
vecptr = uwsgi_add_var(uwsgi_vars, vecptr, r, "SERVER_PROTOCOL",
r->protocol, &pkt_size) ;
vecptr = uwsgi_add_var(uwsgi_vars, vecptr, r, "REQUEST_URI",
r->unparsed_uri, &pkt_size) ;
vecptr = uwsgi_add_var(uwsgi_vars, vecptr, r, "REMOTE_ADDR",
r->connection->remote_ip, &pkt_size) ;
- vecptr = uwsgi_add_var(uwsgi_vars, vecptr, r, "REMOTE_USER", r->user ?
r->user : "", &pkt_size) ;
+ if (c->empty_remote_user) {
+ vecptr = uwsgi_add_var(uwsgi_vars, vecptr, r, "REMOTE_USER",
r->user ? r->user : "", &pkt_size);
+ }
if (r->user) {
vecptr = uwsgi_add_var(uwsgi_vars, vecptr, r, "AUTH_TYPE",
(char *) ap_auth_type(r), &pkt_size) ;
}
@@ -722,6 +727,25 @@ static const char * cmd_uwsgi_socket(cmd_parms *cmd, void
*cfg, const char *path
return NULL ;
}
+static const char * cmd_uwsgi_empty_remote_user(cmd_parms *cmd, void *cfg,
const char *value) {
+
+ uwsgi_cfg *c ;
+
+ if (cfg) {
+ c = cfg ;
+ }
+ else {
+ c = ap_get_module_config(cmd->server->module_config,
&uwsgi_module);
+ }
+
+ if (!strcmp("yes", value) || !strcmp("on", value) || !strcmp("enable",
value) || !strcmp("1", value)) {
+ c->empty_remote_user = 1 ;
+ }
+
+ return NULL ;
+
+}
+
static const command_rec uwsgi_cmds[] = {
AP_INIT_TAKE12("uWSGIsocket", cmd_uwsgi_socket, NULL,
RSRC_CONF|ACCESS_CONF, "Absolute path and optional timeout in seconds of uwsgi
server socket"),
AP_INIT_TAKE1("uWSGIsocket2", cmd_uwsgi_socket2, NULL,
RSRC_CONF|ACCESS_CONF, "Absolute path of failover uwsgi server socket"),
@@ -730,7 +754,8 @@ static const command_rec uwsgi_cmds[] = {
AP_INIT_TAKE1("uWSGIforceScriptName", cmd_uwsgi_force_script_name,
NULL, ACCESS_CONF, "Fix for PATH_INFO/SCRIPT_NAME when the location has
filesystem correspondence"),
AP_INIT_TAKE1("uWSGIforceCGImode", cmd_uwsgi_force_cgi_mode, NULL,
ACCESS_CONF, "Force uWSGI CGI mode for perfect integration with apache
filter"),
AP_INIT_TAKE1("uWSGIforceWSGIscheme", cmd_uwsgi_force_wsgi_scheme,
NULL, ACCESS_CONF, "Force the WSGI scheme var (set by default to \"http\")"),
- AP_INIT_TAKE1("uWSGImaxVars", cmd_uwsgi_max_vars, NULL, ACCESS_CONF,
"Set the maximum allowed number of uwsgi variables (default 128)"),
+ AP_INIT_TAKE1("uWSGImaxVars", cmd_uwsgi_max_vars, NULL, ACCESS_CONF,
"Set the maximum allowed number of uwsgi variables (default 128)"),
+ AP_INIT_TAKE1("uWSGIEmptyRemoteUser", cmd_uwsgi_empty_remote_user,
NULL, ACCESS_CONF, "Always include REMOTE_USER in the environment, even with an
empty value"),
{NULL}
};
------------------------------------------------------------
--
random spiel: http://lonetwin.net/
what i'm stumbling into: http://lonetwin.stumbleupon.com/
_______________________________________________
uWSGI mailing list
[email protected]
http://lists.unbit.it/cgi-bin/mailman/listinfo/uwsgi