MEDIUM: mux-fcgi: Add the FCGI multiplexer

This multiplexer is only available on the backend side. It may handle
multiplexed connections if the FCGI application supports it. A FCGI application
must be configured on the backend to be used. If not redefined during the
request processing by the FCGI filter, this mux handles all mandatory
parameters.

There is a limitation on the way the requests are processed. The parameters must
be encoded into a uniq PARAMS record. It means, once encoded, all HTTP headers
and FCGI parameters must small enough to be store in a buffer. Otherwise, an
internal processing error is returned.
This commit is contained in:
Christopher Faulet 2019-08-11 23:11:30 +02:00
parent 78fbb9f991
commit 99eff65f4f
2 changed files with 3425 additions and 1 deletions

View File

@ -787,7 +787,7 @@ OBJS = src/http_ana.o src/cfgparse-listen.o src/stream.o \
src/protocol.o src/arg.o src/hpack-huff.o src/base64.o src/ring.o \
src/hash.o src/mailers.o src/activity.o src/version.o src/trace.o \
src/mworker.o src/mworker-prog.o src/debug.o src/wdt.o src/dict.o \
src/xprt_handshake.o src/h1_htx.o src/fcgi.o src/fcgi-app.o
src/xprt_handshake.o src/h1_htx.o src/fcgi.o src/fcgi-app.o src/mux_fcgi.o
EBTREE_OBJS = $(EBTREE_DIR)/ebtree.o $(EBTREE_DIR)/eb32sctree.o \
$(EBTREE_DIR)/eb32tree.o $(EBTREE_DIR)/eb64tree.o \

3424
src/mux_fcgi.c Normal file

File diff suppressed because it is too large Load Diff