summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorschneefux <schneefux+commit@schneefux.xyz>2017-05-15 21:58:44 +0200
committerschneefux <schneefux+commit@schneefux.xyz>2017-05-15 21:58:44 +0200
commitd2bfd85b818ae6b08633f16f57686b80bd5c8549 (patch)
tree6bbe8e4fe4c07b42e8eca0b7aa2a3b4e88acfac5
parentd14ebf9491391366dd07104ddecaf95f0b08c00b (diff)
downloadorm-d2bfd85b818ae6b08633f16f57686b80bd5c8549.tar.gz
orm-d2bfd85b818ae6b08633f16f57686b80bd5c8549.zip
hotfix bridge DoS after unexpected responserelease/2.3.1
-rw-r--r--api.js18
1 files changed, 10 insertions, 8 deletions
diff --git a/api.js b/api.js
index 2bd63a3..f45e29e 100644
--- a/api.js
+++ b/api.js
@@ -43,11 +43,12 @@ module.exports.request = async (url, options, logger) => {
logger.warn("rate limited, sleeping");
await sleep(100); // no return, no break => retry
continue;
- } else if (err.statusCode != 404) {
+ } else if (err.statusCode >= 500) {
logger.error("API error, retrying", err);
await sleep(100);
continue;
- }
+ } else if (err.statusCode != 404)
+ logger.error("Unexpected API response", err);
logger.warn("not found", {
uri: err.options.uri,
qs: err.options.qs,
@@ -55,12 +56,13 @@ module.exports.request = async (url, options, logger) => {
});
return [undefined, undefined];
} finally {
- logger.info("API response", {
- status: response.statusCode,
- connection_start: response.timings.connect,
- connection_end: response.timings.end,
- ratelimit_remaining: parseInt(response.headers["x-ratelimit-remaining"])
- });
+ if (response != undefined) // else non-requests error
+ logger.info("API response", {
+ status: response.statusCode,
+ connection_start: response.timings.connect,
+ connection_end: response.timings.end,
+ ratelimit_remaining: parseInt(response.headers["x-ratelimit-remaining"])
+ });
}
}
}