mod_websocket: Use contains_token from util.http for checking if the requested WebSocket sub-protocols include XMPP
authorKim Alvefur <zash@zash.se>
Sun, 04 Dec 2016 11:57:26 +0100
changeset 7764 e0e1f6d6fb4f
parent 7763 801d4c8e0f58
child 7765 2208e6cd0d9f
mod_websocket: Use contains_token from util.http for checking if the requested WebSocket sub-protocols include XMPP
plugins/mod_websocket.lua
--- a/plugins/mod_websocket.lua	Sun Dec 04 11:52:22 2016 +0100
+++ b/plugins/mod_websocket.lua	Sun Dec 04 11:57:26 2016 +0100
@@ -14,6 +14,7 @@
 local base64 = require "util.encodings".base64.encode;
 local st = require "util.stanza";
 local parse_xml = require "util.xml".parse;
+local contains_token = require "util.http".contains_token;
 local portmanager = require "core.portmanager";
 local sm_destroy_session = require"core.sessionmanager".destroy_session;
 local log = module._log;
@@ -142,10 +143,7 @@
 			</body></html>]];
 	end
 
-	local wants_xmpp = false;
-	(request.headers.sec_websocket_protocol or ""):gsub("([^,]*),?", function (proto)
-		if proto == "xmpp" then wants_xmpp = true; end
-	end);
+	local wants_xmpp = contains_token(request.headers.sec_websocket_protocol or "", "xmpp");
 
 	if not wants_xmpp then
 		module:log("debug", "Client didn't want to talk XMPP, list of protocols was %s", request.headers.sec_websocket_protocol or "(empty)");