Author: dylan
Date: 2006-02-27 08:18:58 -0500 (Mon, 27 Feb 2006)
New Revision: 967
Modified:
trunk/perl/server/lib/Haver/Server/Entity/Channel.pm
trunk/perl/server/lib/Haver/Server/Entity/Lobby.pm
trunk/perl/server/lib/Haver/Server/Wheel/Main.pm
Log:
Apparently the previous bug was unrelated to muffins, but it was what caused
the most recent server
crash.
This commit fixes muffin's bug.
The problem was caused by get() becoming lookup(). get() was not renamed in
Lobby.pm, which overloads it for the magical "lobby contains itself without
being a cyclic
data structure".
I'm not sure if it was related, but in Channel.pm, get() was deprecated in a
non-OO way,
in that it called lookup() as a function. I fixed this as well.
Modified: trunk/perl/server/lib/Haver/Server/Entity/Channel.pm
===================================================================
--- trunk/perl/server/lib/Haver/Server/Entity/Channel.pm 2006-02-27
13:09:34 UTC (rev 966)
+++ trunk/perl/server/lib/Haver/Server/Entity/Channel.pm 2006-02-27
13:18:58 UTC (rev 967)
@@ -61,7 +61,7 @@
sub get {
carp "get() is depercated";
- lookup(@_);
+ shift->lookup(@_);
}
sub lookup {
Modified: trunk/perl/server/lib/Haver/Server/Entity/Lobby.pm
===================================================================
--- trunk/perl/server/lib/Haver/Server/Entity/Lobby.pm 2006-02-27 13:09:34 UTC
(rev 966)
+++ trunk/perl/server/lib/Haver/Server/Entity/Lobby.pm 2006-02-27 13:18:58 UTC
(rev 967)
@@ -55,7 +55,7 @@
return $self;
}
-sub get {
+sub lookup {
my ($self, $ns, $name) = @_;
if (is_self($ns, $name)) {
Modified: trunk/perl/server/lib/Haver/Server/Wheel/Main.pm
===================================================================
--- trunk/perl/server/lib/Haver/Server/Wheel/Main.pm 2006-02-27 13:09:34 UTC
(rev 966)
+++ trunk/perl/server/lib/Haver/Server/Wheel/Main.pm 2006-02-27 13:18:58 UTC
(rev 967)
@@ -206,17 +206,25 @@
call('fail', "invalid.name", $name);
return;
}
+
unless ($lobby->contains('channel', $name)) {
call('fail', 'unknown.channel', $name);
return;
}
+
unless (is_known_namespace($ns)) {
call('fail', 'unknown.namespace', $ns);
return;
}
+
my $chan = $lobby->lookup('channel', $name);
- my @items = $chan->list($ns);
- $heap->{client}->put(['LIST', $name, $ns, map { $_->name } @items]);
+
+ if ($chan) {
+ my @items = $chan->list($ns);
+ $heap->{client}->put(['LIST', $name, $ns, map { $_->name }
@items]);
+ } else {
+ Log('error', "\$chan is undefined at line ");
+ }
}
sub msg_INFO {
_______________________________________________
Haver-commits mailing list
[email protected]
https://mail.gna.org/listinfo/haver-commits