israel: 0
This commit is contained in:
malloc 2018-11-27 16:28:41 -06:00
parent 2d66919c36
commit a9b9a78670
2 changed files with 40 additions and 22 deletions

View file

@ -101,7 +101,7 @@ bool sosc::MasterClient::ProcessLogin(Packet &pck) {
query->Reset(); query->Reset();
query->BindText(pck[0], 1); query->BindText(pck[0], 1);
if(query->ScalarInt32() == 0) if(query->ScalarInt32() == 0)
return LoginError(0x101); return LoginError(0x105);
query = this->queries->at(QRY_USER_GET_PWD_HASH); query = this->queries->at(QRY_USER_GET_PWD_HASH);
query->Reset(); query->Reset();

View file

@ -19,8 +19,10 @@ const kMasterToClient = {
let receive_callbacks = {}; let receive_callbacks = {};
function attempt_login() { function attempt_login() {
clear_errors();
let section = document.getElementById("login"); let section = document.getElementById("login");
let error = section.getElementsByClassName("error"); let error = section.getElementsByClassName("error")[0];
let lock_fields = filter( let lock_fields = filter(
to_array(section.getElementsByTagName("input")), to_array(section.getElementsByTagName("input")),
x => ["submit", "button", "text", "password"].indexOf(x.type) !== -1 x => ["submit", "button", "text", "password"].indexOf(x.type) !== -1
@ -38,7 +40,23 @@ function attempt_login() {
console.log(pck.regions); console.log(pck.regions);
if(pck.regions[0][0] === 0x0) { if(pck.regions[0][0] === 0x0) {
error.innerHTML = "Username or password was incorrect." console.log(pck.regions[1].unpackUint16());
let error_text = "Login failed";
switch(pck.regions[1].unpackUint16()) {
case 0x100:
error_text = "Too many attempts. Try again later.";
break;
case 0x101:
error_text = "Username does not exist.";
break;
case 0x102:
error_text = "Password is incorrect.";
break;
}
error.innerHTML = error_text;
error.classList.remove("hidden");
} else { } else {
alert("allo"); alert("allo");
} }
@ -133,8 +151,6 @@ function pack(id, regions) {
} }
function unpack(data) { function unpack(data) {
console.log(data);
console.log(typeof data);
if(!data.subarray(0, 2).every((v, i) => v === MAHOU[i])) if(!data.subarray(0, 2).every((v, i) => v === MAHOU[i]))
return null; return null;
@ -163,8 +179,8 @@ function unpack(data) {
} }
try { try {
for (let i = 0; i < region_cnt; ++i) { for(let i = 0; i < region_cnt; ++i) {
regions.push(data.subarray(ptr, region_lengths[i])); regions.push(data.subarray(ptr, ptr + region_lengths[i]));
ptr += region_lengths[i]; ptr += region_lengths[i];
} }
} catch(ex) { } catch(ex) {
@ -192,15 +208,23 @@ function conn_open() {
ws = new WebSocket("wss://localhost:5050"); ws = new WebSocket("wss://localhost:5050");
ws.binaryType = "arraybuffer"; ws.binaryType = "arraybuffer";
ws.onopen = function (e) { ws.onopen = function(e) {
show_section("login"); show_section("login");
}; };
ws.onmessage = function(e) { ws.onmessage = function(e) {
parse(new Uint8Array(e.data)); if(e.data instanceof Blob) {
let reader = new FileReader();
reader.onload = function(e) {
parse(new Uint8Array(reader.result));
};
reader.readAsArrayBuffer(e.data);
} else
parse(new Uint8Array(e.data));
}; };
ws.onclose = function (e) { ws.onclose = function(e) {
if(!unloading) if(!unloading)
conn_retry(); conn_retry();
} }
@ -334,33 +358,27 @@ Number.prototype.packDouble = function() {
/*** UINT8ARRAY EXTENSIONS ***/ /*** UINT8ARRAY EXTENSIONS ***/
Uint8Array.prototype.unpackInt16 = function(offset = 0) { Uint8Array.prototype.unpackInt16 = function(offset = 0) {
let buffer = this.buffer; return new DataView(this.buffer).getInt16(offset, false);
return new DataView(buffer).getInt16(offset, false);
}; };
Uint8Array.prototype.unpackUint16 = function(offset = 0) { Uint8Array.prototype.unpackUint16 = function(offset = 0) {
let buffer = this.buffer; return new DataView(this.buffer).getUint16(offset, false);
return new DataView(buffer).getUint16(offset, false);
}; };
Uint8Array.prototype.unpackInt32 = function(offset = 0) { Uint8Array.prototype.unpackInt32 = function(offset = 0) {
let buffer = this.buffer; return new DataView(this.buffer).getInt32(offset, false);
return new DataView(buffer).getInt32(offset, false);
}; };
Uint8Array.prototype.unpackUint32 = function(offset = 0) { Uint8Array.prototype.unpackUint32 = function(offset = 0) {
let buffer = this.buffer; return new DataView(this.buffer).getUint32(offset, false);
return new DataView(buffer).getUint32(offset, false);
}; };
Uint8Array.prototype.unpackFloat = function(offset = 0) { Uint8Array.prototype.unpackFloat = function(offset = 0) {
let buffer = this.buffer; return new DataView(this.buffer).getFloat32(offset, false);
return new DataView(buffer).getFloat32(offset, false);
}; };
Uint8Array.prototype.unpackDouble = function(offset = 0) { Uint8Array.prototype.unpackDouble = function(offset = 0) {
let buffer = this.buffer; return new DataView(this.buffer).getFloat64(offset, false);
return new DataView(buffer).getFloat64(offset, false);
}; };
Uint8Array.prototype.toString = function() { Uint8Array.prototype.toString = function() {