diff --git a/exec/load/sbbsimsg_lib.js b/exec/load/sbbsimsg_lib.js index 5d96e66b58f30211fe15460312a3e87be3edddac..e45a2292c359e00c376b7b57f6444ac029ab19a6 100644 --- a/exec/load/sbbsimsg_lib.js +++ b/exec/load/sbbsimsg_lib.js @@ -85,16 +85,19 @@ function parse_active_users(message, logon_callback, logoff_callback) if(!message) return false; var sys = sys_list[message.ip_address]; - if(!sys) { - alert("Unknown system: " + message.ip_address); - return false; - } + if(!sys) + return "Unknown system: " + message.ip_address; sys.last_response = time(); var old_users = sys.users.slice(); - if(message.data[0] == '[') - sys.users = JSON.parse(message.data); + if(message.data[0] == '[') { + try { + sys.users = JSON.parse(message.data); + } catch(e) { + return e; + } + } else { var response = message.data.split("\r\n"); @@ -167,8 +170,8 @@ function poll_systems(sent, interval, timeout, callback) replies++; var result = parse_active_users(message); - if(!result) - alert("Failed to parse: " + JSON.stringify(message)); + if(result !== true) + return format("%s: %s", result, JSON.stringify(message)); } return replies; }