fixed duplicate spot, always make clean ending
[spider.git] / perl / DXCommandmode.pm
index 5ea58ea192931f2d5dbf9f42562002819460a6fd..e6432b850d2dc979d0708663ded53d1dae6dca56 100644 (file)
@@ -13,7 +13,7 @@ package DXCommandmode;
 
 @ISA = qw(DXChannel);
 
-use 5.10.1;
+use 5.8.1;
 
 use POSIX qw(:math_h);
 use DXUtil;
@@ -39,6 +39,7 @@ use DB_File;
 use VE7CC;
 use DXXml;
 use AsyncMsg;
+use DXCIDR;
 
 use strict;
 use vars qw(%Cache %cmd_cache $errstr %aliases $scriptbase %nothereslug
@@ -99,6 +100,7 @@ sub start
 
        $self->{name} = $name ? $name : $call;
        $self->send($self->msg('l2',$self->{name}));
+       $self->send("Capabilities: ve7cc");
        $self->state('prompt');         # a bit of room for further expansion, passwords etc
        $self->{priv} = $user->priv || 0;
        $self->{lang} = $user->lang || $main::lang || 'en';
@@ -194,6 +196,11 @@ sub start
        
        $self->tell_login('loginu');
        $self->tell_buddies('loginb');
+
+       # is this a bad ip address?
+       if (is_ipaddr($self->{hostname})) {
+               $self->{badip} = DXCIDR->find($self->{hostname});
+       }
        
        # do we need to send a forward/opernam?
        my $lastoper = $user->lastoper || 0;
@@ -795,7 +802,6 @@ sub clear_cmd_cache
 sub valid_package_name {
        my $string = shift;
        $string =~ s|([^A-Za-z0-9_/])|sprintf("_%2x",unpack("C",$1))|eg;
-       
        $string =~ s|/|_|g;
        return "cmd_$string";
 }
@@ -830,7 +836,7 @@ sub find_cmd_name {
                };
                
                #wrap the code into a subroutine inside our unique package
-               my $eval = qq(package DXCommandmode::$package; use 5.10.1; use POSIX qw{:math_h}; use DXLog; use DXDebug; use DXUser; use DXUtil; our \@ISA = qw{DXCommandmode}; );
+               my $eval = qq(package DXCommandmode::$package; use 5.8.1; use POSIX qw{:math_h}; use DXLog; use DXDebug; use DXUser; use DXUtil; our \@ISA = qw{DXCommandmode}; );
 
 
                if ($sub =~ m|\s*sub\s+handle\n|) {