Skip to content
This repository has been archived by the owner on Apr 22, 2023. It is now read-only.

http.get, how to detect internet shut down? #7448

Closed
DrakaSAN opened this issue Apr 10, 2014 · 1 comment
Closed

http.get, how to detect internet shut down? #7448

DrakaSAN opened this issue Apr 10, 2014 · 1 comment

Comments

@DrakaSAN
Copy link

function download (url, file, callback) {
http.get(url, function (res) {
res.pipe(file, {end: 'false});
res.on('end', function () {
file.end();
callback(file.path);
});
}).on('error', function (err) {
offline(err);
});
}

If internet is shut down before the http.get, it trigger the error with ENETUNREACH as err, and I can handle it. But if I shut down internet while the file is being downloaded, the connection just hang until it is back on (and usually crash when so).

Is there a way to detect that internet is shut down in the middle of the download?

@tjfontaine
Copy link

TCP will timeout eventually and the next time you tried to write or read you would get an ECONNRESET or EPIPE -- but if you want to be more aggressive you can use req.setTimeout or res.setTimeout and if data hasn't traversed in that time frame it will fire a timeout event.

This kind of question though is more suited for irc or the mailing list.

Thanks for using node!

kaiquewdev pushed a commit to kaiquewdev/node that referenced this issue Nov 26, 2016
Notable Changes:

* Buffer
  * Passing invalid input to Buffer.byteLength will now throw an error [nodejs#8946](nodejs/node#8946).
  * Calling Buffer without new is now deprecated and will emit a process warning [nodejs#8169](nodejs/node#8169).
  * Passing a negative number to allocUnsafe will now throw an error [nodejs#7079](nodejs/node#7079).
* Child Process
  * The fork and execFile methods now have stronger argument validation [nodejs#7399](nodejs/node#7399).
* Cluster
  * The worker.suicide method is deprecated and will emit a process warning [nodejs#3747](nodejs/node#3747).
* Deps
  * V8 has been updated to 5.4.500.36 [nodejs#8317](nodejs/node#8317), [nodejs#8852](nodejs/node#8852), [nodejs#9253](nodejs/node#9253).
  * NODE_MODULE_VERSION has been updated to 51 [nodejs#8808](nodejs/node#8808).
* File System
  * A process warning is emitted if a callback is not passed to async file system methods [nodejs#7897](nodejs/node#7897).
* Intl
  * Intl.v8BreakIterator constructor has been deprecated and will emit a process warning [nodejs#8908](nodejs/node#8908).
* Promises
  * Unhandled Promise rejections have been deprecated and will emit a process warning [nodejs#8217](nodejs/node#8217).
* Punycode
  * The `punycode` module has been deprecated [nodejs#7941](nodejs/node#7941).
* URL
  * An Experimental WHATWG URL Parser has been introduced [nodejs#7448](nodejs/node#7448).

PR-URL: nodejs/node#9099
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants