if a subrequest was finished and SSI was in middle of SSI command parsing
and the command was a fast subrequest then the second subrequest output
was just after first subrequest output and response part of main request
between the subrequests went after the second subrequest.
diff --git a/src/http/modules/ngx_http_ssi_filter_module.c b/src/http/modules/ngx_http_ssi_filter_module.c
index 5343ca0..549ae4c 100644
--- a/src/http/modules/ngx_http_ssi_filter_module.c
+++ b/src/http/modules/ngx_http_ssi_filter_module.c
@@ -800,8 +800,14 @@
}
}
- if (cmd->flush && ctx->out) {
- rc = ngx_http_ssi_output(r, ctx);
+ if (cmd->flush) {
+
+ if (ctx->out) {
+ rc = ngx_http_ssi_output(r, ctx);
+
+ } else {
+ rc = ngx_http_next_body_filter(r, NULL);
+ }
if (rc == NGX_ERROR) {
return NGX_ERROR;