Mercurial > hg > rlgwebd
comparison rlgwebd.js @ 31:7dd6becf9ce9
rlgwebd.js: improve MIME types.
Respond with the proper MIME type for JSON, and identify HTML as using
the UTF-8 charset.
author | John "Elwin" Edwards <elwin@sdf.org> |
---|---|
date | Tue, 05 Jun 2012 09:31:49 -0700 |
parents | b5570a594266 |
children | c75fc4b1d13d |
comparison
equal
deleted
inserted
replaced
30:b5570a594266 | 31:7dd6becf9ce9 |
---|---|
350 var nsession = new TermSession(gname, username, [lockfile, ttyrec], dims); | 350 var nsession = new TermSession(gname, username, [lockfile, ttyrec], dims); |
351 if (nsession) { | 351 if (nsession) { |
352 /* Technically there's a race condition for the "lock"file, but since | 352 /* Technically there's a race condition for the "lock"file, but since |
353 * it requires the user deliberately starting two games at similar times, | 353 * it requires the user deliberately starting two games at similar times, |
354 * it's not too serious. We can't get O_EXCL in Node anyway. */ | 354 * it's not too serious. We can't get O_EXCL in Node anyway. */ |
355 res.writeHead(200, {'Content-Type': 'text/plain'}); | 355 res.writeHead(200, {'Content-Type': 'application/json'}); |
356 var reply = {"t": "l", "id": nsession.sessid, "w": nsession.w, "h": | 356 var reply = {"t": "l", "id": nsession.sessid, "w": nsession.w, "h": |
357 nsession.h}; | 357 nsession.h}; |
358 res.write(JSON.stringify(reply)); | 358 res.write(JSON.stringify(reply)); |
359 res.end(); | 359 res.end(); |
360 tslog("%s playing %s (key %s, pid %d)", username, gname, | 360 tslog("%s playing %s (key %s, pid %d)", username, gname, |
443 else if (code != 0) { | 443 else if (code != 0) { |
444 sendError(res, 0, null); | 444 sendError(res, 0, null); |
445 tslog("sqlickrypt register failed with code %d", code); | 445 tslog("sqlickrypt register failed with code %d", code); |
446 } | 446 } |
447 else { | 447 else { |
448 res.writeHead(200, {'Content-Type': 'text/plain'}); | 448 res.writeHead(200, {'Content-Type': 'application/json'}); |
449 var reply = {"t": "r", "d": uname}; | 449 var reply = {"t": "r", "d": uname}; |
450 res.write(JSON.stringify(reply)); | 450 res.write(JSON.stringify(reply)); |
451 res.end(); | 451 res.end(); |
452 tslog("Added new user: %s", uname); | 452 tslog("Added new user: %s", uname); |
453 regsetup(uname); | 453 regsetup(uname); |
463 if (!term.alive) { | 463 if (!term.alive) { |
464 sendError(res, 1, null); | 464 sendError(res, 1, null); |
465 return; | 465 return; |
466 } | 466 } |
467 term.close(); | 467 term.close(); |
468 var resheaders = {'Content-Type': 'text/plain'}; | 468 var resheaders = {'Content-Type': 'application/json'}; |
469 res.writeHead(200, resheaders); | 469 res.writeHead(200, resheaders); |
470 res.write(JSON.stringify({"t": "q"})); | 470 res.write(JSON.stringify({"t": "q"})); |
471 res.end(); | 471 res.end(); |
472 return; | 472 return; |
473 } | 473 } |
493 var realname = path.join(serveStaticRoot, nname); | 493 var realname = path.join(serveStaticRoot, nname); |
494 var extension = path.extname(realname); | 494 var extension = path.extname(realname); |
495 path.exists(realname, function (exists) { | 495 path.exists(realname, function (exists) { |
496 var resheaders = {}; | 496 var resheaders = {}; |
497 if (!exists || !extension || extension == ".html") | 497 if (!exists || !extension || extension == ".html") |
498 resheaders["Content-Type"] = "text/html"; | 498 resheaders["Content-Type"] = "text/html; charset=utf-8"; |
499 else if (extension == ".png") | 499 else if (extension == ".png") |
500 resheaders["Content-Type"] = "image/png"; | 500 resheaders["Content-Type"] = "image/png"; |
501 else if (extension == ".css") | 501 else if (extension == ".css") |
502 resheaders["Content-Type"] = "text/css"; | 502 resheaders["Content-Type"] = "text/css"; |
503 else if (extension == ".js") | 503 else if (extension == ".js") |
547 else { | 547 else { |
548 reply.t = "d"; | 548 reply.t = "d"; |
549 reply.n = term.nsend++; | 549 reply.n = term.nsend++; |
550 reply.d = result.toString("hex"); | 550 reply.d = result.toString("hex"); |
551 } | 551 } |
552 res.writeHead(200, { "Content-Type": "text/plain" }); | 552 res.writeHead(200, { "Content-Type": "application/json" }); |
553 res.write(JSON.stringify(reply)); | 553 res.write(JSON.stringify(reply)); |
554 res.end(); | 554 res.end(); |
555 } | 555 } |
556 else { | 556 else { |
557 sendError(res, 1, null); | 557 sendError(res, 1, null); |
561 var errorcodes = [ "Generic Error", "Not logged in", "Invalid data", | 561 var errorcodes = [ "Generic Error", "Not logged in", "Invalid data", |
562 "Login failed", "Already playing", "Game launch failed", | 562 "Login failed", "Already playing", "Game launch failed", |
563 "Server shutting down" ]; | 563 "Server shutting down" ]; |
564 | 564 |
565 function sendError(res, ecode, msg) { | 565 function sendError(res, ecode, msg) { |
566 res.writeHead(200, { "Content-Type": "text/plain" }); | 566 res.writeHead(200, { "Content-Type": "application/json" }); |
567 var edict = {"t": "E"}; | 567 var edict = {"t": "E"}; |
568 if (!(ecode < errorcodes.length && ecode > 0)) | 568 if (!(ecode < errorcodes.length && ecode > 0)) |
569 ecode = 0; | 569 ecode = 0; |
570 edict["c"] = ecode; | 570 edict["c"] = ecode; |
571 edict["s"] = errorcodes[ecode]; | 571 edict["s"] = errorcodes[ecode]; |