1. cluster seems to have a memory leak, put DESTROY functions in where
[spider.git] / perl / DXChannel.pm
index 9bde6aa8fe4a30829b5dfed54895ec92250fd0b7..6495e7a7edde6ed7e9ff32ac5630e755d9053816 100644 (file)
@@ -76,6 +76,22 @@ use vars qw(%channels %valid);
                  passwd => '9,Passwd List,parray',
                 );
 
+# object destruction
+sub DESTROY
+{
+       my $self = shift;
+       undef $self->{user};
+       undef $self->{conn};
+       undef $self->{loc};
+       undef $self->{pagedata};
+       undef $self->{group};
+       undef $self->{delayed};
+       undef $self->{annfilter};
+       undef $self->{wwvfilter};
+       undef $self->{spotfilter};
+       undef $self->{passwd};
+}
+
 # create a new channel object [$obj = DXChannel->new($call, $msg_conn_obj, $user_obj)]
 sub alloc
 {
@@ -84,6 +100,7 @@ sub alloc
   
        die "trying to create a duplicate channel for $call" if $channels{$call};
        $self->{call} = $call;
+       $self->{priv} = 0;
        $self->{conn} = $conn if defined $conn; # if this isn't defined then it must be a list
        if (defined $user) {
                $self->{user} = $user;