Mercurial > hg > rlgwebd
diff shterm.js @ 11:481dcee353c9
webtty: switch all server responses to JSON.
author | John "Elwin" Edwards <elwin@sdf.org> |
---|---|
date | Fri, 11 May 2012 13:33:48 -0700 |
parents | d051aad3e95f |
children | 9e1d83f50c9e |
line wrap: on
line diff
--- a/shterm.js Wed May 09 16:36:11 2012 -0700 +++ b/shterm.js Fri May 11 13:33:48 2012 -0700 @@ -119,24 +119,21 @@ var datareq = new XMLHttpRequest(); datareq.onreadystatechange = function () { if (datareq.readyState == 4 && datareq.status == 200) { - var datalines = datareq.responseText.split("\n"); - if (!datalines[0]) { + var response = JSON.parse(this.responseText); + if (!response.t) return; - } - else if (datalines[0] == "E1") { - termemu.alive = false; - return; + else if (response.t == "E") { + if (response.c == 1) { + termemu.alive = false; + debug(1, "Server error: " + response.s); + } } - else if (datalines[0].charAt(0) != 'd') { - return; - } - if (datalines[1]) { - writeData(datalines[1]); + else if (response.t == "n") + ajaxstate.gotnothing(); + else if (response.t == "d") { + writeData(response.d); ajaxstate.gotdata(); } - else { - ajaxstate.gotnothing(); - } return; } }; @@ -147,18 +144,21 @@ function postResponseHandler() { if (this.readyState == 4 && this.status == 200) { - var datalines = this.responseText.split("\n"); - if (!datalines[0]) + var response = JSON.parse(this.responseText); + if (!response.t || response.t == "n") return; - else if (datalines[0] == "E1") { - termemu.alive = false; + else if (response.t == "E") { + if (response.c == 1) { + termemu.alive = false; + debug(1, "Server error: " + response.s); + } return; } - else if (datalines[0].charAt(0) != "d") + else if (response.t != "d") return; /* It is a data message */ - if (datalines[1]) { - writeData(datalines[1]); + if (response.d) { + writeData(response.d); } ajaxstate.posted(); return; @@ -301,7 +301,6 @@ var req = new XMLHttpRequest(); req.onreadystatechange = function () { if (req.readyState == 4 && req.status == 200) { - var datalines = req.responseText.split("\n"); var logindict = JSON.parse(req.responseText); if (logindict.login) { /* Success */ @@ -324,8 +323,8 @@ var req = new XMLHttpRequest(); req.onreadystatechange = function () { if (req.readyState == 4 && req.status == 200) { - var datalines = req.responseText.split("\n"); /* Figure out whether or not it worked. */ + /* FIXME the server might respond with output. */ termemu.alive = false; return; }