Thu, 15 Jan 2015 21:03:48 +0100
Integrate friendly tips from Tor colleagues to make (or not) 4.5 alpha 3;
This includes removal of overloaded (but unused) methods, and addition of
a overlooked call to DataStruct::SetData(nsISupports, uint32_t, bool.)
1 /**
2 * Any copyright is dedicated to the Public Domain.
3 * http://creativecommons.org/publicdomain/zero/1.0/
4 */
5 "use strict";
7 function handleRequest(request, response) {
8 switch (request.method) {
9 case "POST":
10 try {
11 var optionsHost = request.getHeader("options-host");
12 } catch(e) { }
14 if (optionsHost) {
15 setState("postHost", request.host);
16 setState("optionsHost", optionsHost);
17 return;
18 }
19 break;
21 case "OPTIONS":
22 if (getState("optionsHost") == request.host) {
23 try {
24 var optionsHeader =
25 request.getHeader("Access-Control-Request-Headers");
26 } catch(e) { }
27 setState("optionsHeader", "'" + optionsHeader + "'");
28 }
29 break;
31 case "GET":
32 response.setHeader("Cache-Control", "no-cache", false);
33 response.setHeader("Content-Type", "text/plain", false);
35 if (getState("postHost") == request.host) {
36 var result = getState("optionsHeader");
37 if (result) {
38 response.write("Success: expected OPTIONS request with " + result +
39 " header");
40 } else if (getState("badGet") == 1) {
41 response.write("Error: unexpected GET request");
42 }
43 } else {
44 setState("badGet", "1");
45 response.write("Error: this response should never be seen");
46 }
47 return;
48 }
50 response.setStatusLine(request.httpVersion, 501, "Not Implemented");
51 }