diff options
| author | schneefux <schneefux+commit@schneefux.xyz> | 2017-05-15 21:58:44 +0200 |
|---|---|---|
| committer | schneefux <schneefux+commit@schneefux.xyz> | 2017-05-15 21:58:44 +0200 |
| commit | d2bfd85b818ae6b08633f16f57686b80bd5c8549 (patch) | |
| tree | 6bbe8e4fe4c07b42e8eca0b7aa2a3b4e88acfac5 | |
| parent | d14ebf9491391366dd07104ddecaf95f0b08c00b (diff) | |
| download | orm-release/2.3.1.tar.gz orm-release/2.3.1.zip | |
hotfix bridge DoS after unexpected responserelease/2.3.1
| -rw-r--r-- | api.js | 18 |
1 files changed, 10 insertions, 8 deletions
@@ -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"]) + }); } } } |
