|
@@ -119,15 +119,18 @@ var requests = {
|
|
|
};
|
|
|
|
|
|
function push_request(userId, type, fun) {
|
|
|
- if (!requests[type][userId]) {
|
|
|
- requests[type][userId] = [];
|
|
|
+ // avoid special properties (e.g. 'constructor')
|
|
|
+ var userId_safe = "!" + userId;
|
|
|
+ if (!requests[type][userId_safe]) {
|
|
|
+ requests[type][userId_safe] = [];
|
|
|
}
|
|
|
- requests[type][userId].push(fun);
|
|
|
+ requests[type][userId_safe].push(fun);
|
|
|
}
|
|
|
|
|
|
// calls back all queued requests that match userId and type
|
|
|
function resume(userId, type, err, hash) {
|
|
|
- var callbacks = requests[type][userId];
|
|
|
+ var userId_safe = "!" + userId;
|
|
|
+ var callbacks = requests[type][userId_safe];
|
|
|
if (callbacks) {
|
|
|
if (callbacks.length > 1) {
|
|
|
logging.debug(callbacks.length, "simultaneous requests for", userId);
|
|
@@ -142,7 +145,7 @@ function resume(userId, type, err, hash) {
|
|
|
}
|
|
|
|
|
|
// it's still an empty array
|
|
|
- delete requests[type][userId];
|
|
|
+ delete requests[type][userId_safe];
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -152,7 +155,7 @@ function resume(userId, type, err, hash) {
|
|
|
// callback: error, image hash
|
|
|
function store_images(rid, userId, cache_details, type, callback) {
|
|
|
var is_uuid = userId.length > 16;
|
|
|
- if (requests[type][userId]) {
|
|
|
+ if (requests[type]["!" + userId]) {
|
|
|
logging.debug(rid, "adding to request queue");
|
|
|
push_request(userId, type, callback);
|
|
|
} else {
|