proper handling of failed sanity check in parse_counters + weird getAttribute workaround

This commit is contained in:
Andrew Dolgov 2005-12-22 13:51:12 +01:00
parent 59b7764387
commit 6043fb7e20
3 changed files with 28 additions and 12 deletions

View File

@ -53,6 +53,8 @@
pg_query("set client_encoding = 'utf-8'"); pg_query("set client_encoding = 'utf-8'");
} }
if (!sanity_check($link)) { return; }
$fetch = $_GET["fetch"]; $fetch = $_GET["fetch"];
setcookie("ttrss_icons_url", ICONS_URL); setcookie("ttrss_icons_url", ICONS_URL);
@ -717,18 +719,7 @@
} }
if ($subop == "sanityCheck") { if ($subop == "sanityCheck") {
sanity_check();
$error_code = 0;
$result = db_query($link, "SELECT schema_version FROM ttrss_version");
$schema_version = db_fetch_result($result, 0, "schema_version");
if ($schema_version != SCHEMA_VERSION) {
$error_code = 5;
}
print "<error error-code='$error_code'/>";
} }
if ($subop == "globalPurge") { if ($subop == "globalPurge") {

View File

@ -358,6 +358,11 @@ if (!xmlhttp_rpc && typeof XMLHttpRequest!='undefined') {
function parse_counters(reply, f_document, title_obj) { function parse_counters(reply, f_document, title_obj) {
try { try {
for (var l = 0; l < reply.childNodes.length; l++) { for (var l = 0; l < reply.childNodes.length; l++) {
if (!reply.childNodes[l] || !reply.childNodes[l].getAttribute) {
// where did this come from?
continue;
}
var id = reply.childNodes[l].getAttribute("id"); var id = reply.childNodes[l].getAttribute("id");
var t = reply.childNodes[l].getAttribute("type"); var t = reply.childNodes[l].getAttribute("type");
var ctr = reply.childNodes[l].getAttribute("counter"); var ctr = reply.childNodes[l].getAttribute("counter");

View File

@ -859,4 +859,24 @@
else else
return "even"; return "even";
} }
function sanity_check($link) {
$error_code = 0;
$result = db_query($link, "SELECT schema_version FROM ttrss_version");
$schema_version = db_fetch_result($result, 0, "schema_version");
if ($schema_version != SCHEMA_VERSION) {
$error_code = 5;
}
print "<error error-code='$error_code'/>";
if ($error_code != 0) {
return false;
} else {
return true;
}
}
?> ?>