Changeset

4442:bc0a68cae236

mod_bosh: Experimental option 'bosh_auto_cork' which witholds any response to a request until all stanzas in it have been processed.
author Matthew Wild <mwild1@gmail.com>
date Wed, 07 Dec 2011 05:54:17 +0000
parents 4441:a01b7207cb37
children 4443:7456ddcc0b14
files plugins/mod_bosh.lua
diffstat 1 files changed, 2 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/plugins/mod_bosh.lua	Wed Dec 07 05:17:39 2011 +0000
+++ b/plugins/mod_bosh.lua	Wed Dec 07 05:54:17 2011 +0000
@@ -35,6 +35,7 @@
 local BOSH_DEFAULT_REQUESTS = module:get_option_number("bosh_max_requests", 2);
 
 local consider_bosh_secure = module:get_option_boolean("consider_bosh_secure");
+local auto_cork = module:get_option_boolean("bosh_auto_cork", false);
 
 local default_headers = { ["Content-Type"] = "text/xml; charset=utf-8" };
 
@@ -268,7 +269,7 @@
 			end
 			--log("debug", "Sending BOSH data: %s", tostring(s));
 			local oldest_request = r[1];
-			if oldest_request then
+			if oldest_request and (not(auto_cork) or waiting_requests[oldest_request]) then
 				log("debug", "We have an open request, so sending on that");
 				response.body = t_concat({
 					"<body xmlns='http://jabber.org/protocol/httpbind' ",