Comparison

plugins/mod_websocket.lua @ 10728:2764beb552cd

mod_bosh, mod_websocket: Add config options to override GET responses
author Matthew Wild <mwild1@gmail.com>
date Mon, 20 Apr 2020 11:30:59 +0100
parent 10617:8941bebd64e4
child 11114:6a608ecb3471
comparison
equal deleted inserted replaced
10727:fa2a89132dfb 10728:2764beb552cd
128 return oc:top_tag(); 128 return oc:top_tag();
129 end 129 end
130 130
131 return data; 131 return data;
132 end 132 end
133
134 local default_get_response_body = [[<!DOCTYPE html><html><head><title>Websocket</title></head><body>
135 <p>It works! Now point your WebSocket client to this URL to connect to Prosody.</p>
136 </body></html>]]
137 local websocket_get_response_body = module:get_option_string("websocket_get_response_body", default_get_response_body)
138
133 function handle_request(event) 139 function handle_request(event)
134 local request, response = event.request, event.response; 140 local request, response = event.request, event.response;
135 local conn = response.conn; 141 local conn = response.conn;
136 142
137 conn.starttls = false; -- Prevent mod_tls from believing starttls can be done 143 conn.starttls = false; -- Prevent mod_tls from believing starttls can be done
138 144
139 if not request.headers.sec_websocket_key or request.method ~= "GET" then 145 if not request.headers.sec_websocket_key or request.method ~= "GET" then
140 response.headers.content_type = "text/html"; 146 response.headers.content_type = "text/html";
141 return [[<!DOCTYPE html><html><head><title>Websocket</title></head><body> 147 return websocket_get_response_body;
142 <p>It works! Now point your WebSocket client to this URL to connect to Prosody.</p>
143 </body></html>]];
144 end 148 end
145 149
146 local wants_xmpp = contains_token(request.headers.sec_websocket_protocol or "", "xmpp"); 150 local wants_xmpp = contains_token(request.headers.sec_websocket_protocol or "", "xmpp");
147 151
148 if not wants_xmpp then 152 if not wants_xmpp then