fix xhr race condition

This commit is contained in:
ericz 2013-02-15 10:25:09 -08:00
parent c76064301f
commit d5f72731ab
2 changed files with 13 additions and 6 deletions

View File

@ -224,14 +224,21 @@ PeerServer.prototype._initializeHTTP = function() {
var handle = function(req, res) { var handle = function(req, res) {
var key = req.params.key; var key = req.params.key;
var id = req.params.id; var id = req.params.id;
if (!self._clients[key]) {
var client;
if (!self._clients[key] || !(client = self._clients[key][id])) {
if (req.params.retry) {
res.send(401);
} else {
// Retry this request // Retry this request
res.send(202); req.params.retry = true;
setTimeout(handle, 25, req, res);
}
return; return;
} }
var client = self._clients[key][id];
// Auth the req // Auth the req
if (!client || req.params.token !== client.token) { if (req.params.token !== client.token) {
res.send(401); res.send(401);
return; return;
} else { } else {

View File

@ -1,6 +1,6 @@
{ {
"name": "peer", "name": "peer",
"version": "0.1.3", "version": "0.1.4",
"description": "Peer-to-peer data in browsers", "description": "Peer-to-peer data in browsers",
"main": "lib/server.js", "main": "lib/server.js",
"repository": { "repository": {