Skip to content

Commit 8feb427

Browse files
Fix pre-loading into daemon process in different virtual host.
1 parent ec2ee30 commit 8feb427

2 files changed

Lines changed: 49 additions & 2 deletions

File tree

docs/release-notes/version-4.5.16.rst

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,13 @@ Bugs Fixed
1818
was not resulting in daemon processes being restarted when the WSGI script
1919
file could not be loaded successfully by the specified timeout.
2020

21+
* When using ``WSGIImportScript``, or ``WSGIScriptAlias`` with both the
22+
``process-group`` and ``application-group`` options, with the intent of
23+
preloading a WSGI script file, the ability to reach across to a daemon
24+
process defined in a different virtual host with same ``ServerName`` was
25+
always failing and the target daemon process group would be flagged as
26+
not accessible when instead it should have been.
27+
2128
New Features
2229
------------
2330

src/server/mod_wsgi.c

Lines changed: 42 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4621,8 +4621,28 @@ static const char *wsgi_add_script_alias(cmd_parms *cmd, void *mconfig,
46214621
if (!group)
46224622
return "WSGI process group not yet configured.";
46234623

4624-
if (group->server != cmd->server && group->server->is_virtual)
4624+
if (cmd->server->server_hostname &&
4625+
group->server->server_hostname &&
4626+
strcmp(cmd->server->server_hostname,
4627+
group->server->server_hostname) &&
4628+
group->server->is_virtual) {
4629+
46254630
return "WSGI process group not accessible.";
4631+
}
4632+
4633+
if (!cmd->server->server_hostname &&
4634+
group->server->server_hostname &&
4635+
group->server->is_virtual) {
4636+
4637+
return "WSGI process group not matchable.";
4638+
}
4639+
4640+
if (cmd->server->server_hostname &&
4641+
!group->server->server_hostname &&
4642+
group->server->is_virtual) {
4643+
4644+
return "WSGI process group not matchable.";
4645+
}
46264646
}
46274647
#endif
46284648
}
@@ -5128,8 +5148,28 @@ static const char *wsgi_add_import_script(cmd_parms *cmd, void *mconfig,
51285148
if (!group)
51295149
return "WSGI process group not yet configured.";
51305150

5131-
if (group->server != cmd->server && group->server->is_virtual)
5151+
if (cmd->server->server_hostname &&
5152+
group->server->server_hostname &&
5153+
strcmp(cmd->server->server_hostname,
5154+
group->server->server_hostname) &&
5155+
group->server->is_virtual) {
5156+
51325157
return "WSGI process group not accessible.";
5158+
}
5159+
5160+
if (!cmd->server->server_hostname &&
5161+
group->server->server_hostname &&
5162+
group->server->is_virtual) {
5163+
5164+
return "WSGI process group not matchable.";
5165+
}
5166+
5167+
if (cmd->server->server_hostname &&
5168+
!group->server->server_hostname &&
5169+
group->server->is_virtual) {
5170+
5171+
return "WSGI process group not matchable.";
5172+
}
51335173
}
51345174
#else
51355175
object->process_group = "";

0 commit comments

Comments
 (0)