mirror of https://github.com/calzoneman/sync.git
Fix issues with regard to unloading channels
This commit is contained in:
parent
f7e968a13c
commit
efcae43ae8
|
@ -1,3 +1,10 @@
|
||||||
|
Mon Sep 9 22:10 2013 CDT
|
||||||
|
* lib/acp.js: Change acp-channel-unload callback to duplicate the list
|
||||||
|
of users in the channel to prevent concurrent modification while
|
||||||
|
kicking
|
||||||
|
* lib/channel.js: As an extra precaution, set user.channel = null after
|
||||||
|
kicking a user
|
||||||
|
|
||||||
Sun Sep 8 17:41 2013 CDT
|
Sun Sep 8 17:41 2013 CDT
|
||||||
* lib/server.js: Change behavior of unloadChannel - deletes all object
|
* lib/server.js: Change behavior of unloadChannel - deletes all object
|
||||||
keys in the channel object and then sets channel.dead = true
|
keys in the channel object and then sets channel.dead = true
|
||||||
|
|
|
@ -135,7 +135,10 @@ module.exports = function (Server) {
|
||||||
return;
|
return;
|
||||||
ActionLog.record(user.ip, user.name, "acp-channel-unload");
|
ActionLog.record(user.ip, user.name, "acp-channel-unload");
|
||||||
c.initialized = data.save;
|
c.initialized = data.save;
|
||||||
c.users.forEach(function(u) {
|
// copy the list of users to prevent concurrent
|
||||||
|
// modification
|
||||||
|
var users = Array.prototype.slice.call(c.users);
|
||||||
|
users.forEach(function (u) {
|
||||||
c.kick(u, "Channel shutting down");
|
c.kick(u, "Channel shutting down");
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -862,10 +862,8 @@ Channel.prototype.kick = function(user, reason) {
|
||||||
user.socket.emit("kick", {
|
user.socket.emit("kick", {
|
||||||
reason: reason
|
reason: reason
|
||||||
});
|
});
|
||||||
if(user.socket.disconnected) {
|
|
||||||
this.userLeave(user);
|
|
||||||
}
|
|
||||||
user.socket.disconnect(true);
|
user.socket.disconnect(true);
|
||||||
|
user.channel = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
Channel.prototype.hideIP = function(ip) {
|
Channel.prototype.hideIP = function(ip) {
|
||||||
|
|
Loading…
Reference in New Issue