From dec7bc108afc047688fb609d118dc5dd7bc9192e Mon Sep 17 00:00:00 2001 From: "John \"Elwin\" Edwards" Date: Tue, 5 Jun 2012 20:13:47 -0700 Subject: [PATCH] rlgwebd.js: handle HTTP HEAD properly. Prevent a message body from being sent in response to HTTP HEAD. --- rlgwebd.js | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/rlgwebd.js b/rlgwebd.js index b303921..9ae33ee 100755 --- a/rlgwebd.js +++ b/rlgwebd.js @@ -518,14 +518,18 @@ function serveStatic(req, res, fname) { } else { res.writeHead(200, resheaders); - res.write(data); + if (req.method != 'HEAD') + res.write(data); res.end(); } }); } else { res.writeHead(404, resheaders); - res.write("" + nname + "\n

" + nname + " Not Found

\n"); + if (req.method != 'HEAD') { + res.write("" + nname + "\n

" + + nname + " Not Found

\n"); + } res.end(); } }); @@ -573,7 +577,8 @@ function statusmsg(req, res) { } } res.writeHead(200, { "Content-Type": "application/json" }); - res.write(JSON.stringify(reply)); + if (req.method != 'HEAD') + res.write(JSON.stringify(reply)); res.end(); } @@ -609,7 +614,6 @@ function webHandler(req, res) { /* This will send the response once the whole request is here. */ function respond() { - //formdata = getFormValues(reqbody); formdata = getMsg(reqbody); var target = url.parse(req.url).pathname; var cterm = findTermSession(formdata); @@ -650,6 +654,11 @@ function webHandler(req, res) { } else if (req.method == 'GET' || req.method == 'HEAD') { if (target == '/feed') { + if (req.method == 'HEAD') { + res.writeHead(200, {"Content-Type": "application/json"}); + res.end(); + return; + } if (!cterm) { sendError(res, 1, null); return;