From bf9bfdcd8dd550dbeafd98f87177cb6f1e963c78 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Sun, 22 Oct 2023 12:19:29 +0200 Subject: [PATCH] Test JSON-RPC response ID --- sao/src/rpc.js | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/sao/src/rpc.js b/sao/src/rpc.js index d5852209a7..5523085565 100644 --- a/sao/src/rpc.js +++ b/sao/src/rpc.js @@ -26,12 +26,18 @@ } var timeoutID = Sao.common.processing.show(); + const id_ = Sao.rpc.id++; var ajax_success = function(data, status_, query) { if (data === null) { Sao.common.warning.run('', Sao.i18n.gettext('Unable to reach the server.')) .always(dfd.reject); + } else if (data.id != id_) { + Sao.common.warning.run('', + Sao.i18n.gettext( + `Invalid response id (${data.id}) expected ${id_}`)) + .always(dfd.reject); } else if (data.error && !process_exception) { console.debug(`RPC error calling ${args}: ${data.error[0]}: ${data.error[1]}.`); dfd.reject(data.error); @@ -151,7 +157,7 @@ }, 'contentType': 'application/json', 'data': JSON.stringify(Sao.rpc.prepareObject({ - 'id': Sao.rpc.id++, + 'id': id_, 'method': args.method, 'params': params })),