inqueue => '9,Input Queue,parray',
next_pc92_update => '9,Next PC92 Update,atime',
next_pc92_keepalive => '9,Next PC92 KeepAlive,atime',
+ hostname => '0,Hostname',
);
$maxerrors = 20; # the maximum number of concurrent errors allowed before disconnection
$self->{group} = $user->group;
$self->{sort} = $user->sort;
}
- $self->{startt} = $self->{t} = time;
+ $self->{startt} = $self->{t} = $main::systime;
$self->{state} = 0;
$self->{oldstate} = 0;
$self->{lang} = $main::lang if !$self->{lang};
# is it a bbs
sub is_bbs
{
- my $self = shift;
- return $self->{sort} eq 'B';
+ return $_[0]->{sort} eq 'B';
}
sub is_node
{
- my $self = shift;
- return $self->{sort} =~ /^[ACRSX]$/;
+ return $_[0]->{sort} =~ /^[ACRSX]$/;
}
# is it an ak1a node ?
sub is_ak1a
{
- my $self = shift;
- return $self->{sort} eq 'A';
+ return $_[0]->{sort} eq 'A';
}
# is it a user?
sub is_user
{
- my $self = shift;
- return $self->{sort} =~ /^[UW]$/;
+ return $_[0]->{sort} =~ /^[UW]$/;
}
# is it a clx node
sub is_clx
{
- my $self = shift;
- return $self->{sort} eq 'C';
+ return $_[0]->{sort} eq 'C';
}
# it is a Web connected user
sub is_web
{
- my $self = shift;
- return $self->{sort} eq 'W';
+ return $_[0]->{sort} eq 'W';
}
# is it a spider node
sub is_spider
{
- my $self = shift;
- return $self->{sort} eq 'S';
+ return $_[0]->{sort} eq 'S';
}
# is it a DXNet node
sub is_dxnet
{
- my $self = shift;
- return $self->{sort} eq 'X';
+ return $_[0]->{sort} eq 'X';
}
# is it a ar-cluster node
sub is_arcluster
{
- my $self = shift;
- return $self->{sort} eq 'R';
+ return $_[0]->{sort} eq 'R';
+}
+
+sub is_rbn
+{
+ return $_[0]->{sort} eq 'N';
}
# for perl 5.004's benefit
my $call = $self->{call};
foreach my $l (@_) {
- for (ref $l ? @$l : $l) {
+ for (ref($l) eq 'ARRAY' ? @$l : $l) {
my @lines = split /\n/;
for (@lines) {
$conn->send_later("D$call|$_");
my $self = shift;
my $user = $self->{user};
- $user->close() if defined $user;
+ $user->close($self->{startt}, $self->{hostname}) if defined $user;
$self->{conn}->disconnect if $self->{conn};
$self->del();
}
$self->normal($line);
} elsif ($sort eq 'G') {
$self->enhanced($line);
- } elsif ($sort eq 'A' || $sort eq 'O') {
+ } elsif ($sort eq 'A' || $sort eq 'O' || $sort eq 'W') {
$self->start($line, $sort);
} elsif ($sort eq 'Z') {
$self->disconnect;