Created
August 5, 2015 18:51
-
-
Save Eunoia/6768574fc4acaa5710c8 to your computer and use it in GitHub Desktop.
What if your clock was off? Get the time from other servers date headers
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var http = require('http'), | |
fs = require('fs'), | |
loadDomains, getTheTimeFromServerList, formatDateHeader; | |
loadDomains = new Promise(function (resolve, reject) { | |
var servers; | |
fs.readFile('hostnames.txt', 'utf8', function (err, data) { | |
if (err) { | |
reject('Unable to read hostnames.txt'); | |
} | |
servers = data | |
.trim() | |
.split('\n') | |
.map(function (r) { | |
return r.trim(); | |
}); | |
resolve(servers); | |
}); | |
}); | |
formatDateHeader = function (date) { | |
return new Date(date).toISOString(); | |
}; | |
getTheTimeFromServerList = function (servers) { | |
return new Promise(function (resolve) { | |
var i; | |
for (i = 0; i < servers.length; i += 1) { | |
(function (server) { | |
http.get('http://' + server + '/', function (resp) { | |
if (resp.headers.date) { | |
return resolve(formatDateHeader(resp.headers.date)); | |
} | |
}).on('error', function () { | |
return; | |
}); | |
})(servers[i]); | |
} | |
}); | |
}; | |
loadDomains.then(getTheTimeFromServerList).then(console.log).catch(console.log); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment