extensions introduce pre close veto
authorAndy Green <andy@warmcat.com>
Wed, 25 May 2011 20:41:57 +0000 (21:41 +0100)
committerAndy Green <andy@warmcat.com>
Wed, 25 May 2011 20:41:57 +0000 (21:41 +0100)
commit68b450432976ab83f1c5c7ba441bc0d89da4c692
tree206e4e8ec232b49a247ce305f5d06d8d9261bcff
parent8c6aaa2b439076241669a9daaa61546aad34064f
extensions introduce pre close veto

This establishes a pre-close extension check to allow an extension to
veto a close.  x-google-mux then uses this to stop ch1 going down
(subchannel 1 is the original socket connection that turns into a mux
parent) if it has active mux children; it just marks ch1 as closed in
its conn struct in that case and returns 1 from the callback to veto.

Code is also added to take care of the case ch1 is 'closed', and the
last child is subsequently closed, it actively calls close on the mux
parent then.

Signed-off-by: Andy Green <andy@warmcat.com>
lib/extension-x-google-mux.c
lib/extension-x-google-mux.h
lib/libwebsockets.c
lib/libwebsockets.h