slight mod on the PCXX replies
[spider.git] / perl / DXXml / Text.pm
index 35c83191e504fe8a5909e77ad6bb433012c3d60f..adec20e84704e66a44d2d8d95bb7639d99d270a6 100644 (file)
@@ -12,9 +12,7 @@ package DXXml::Text;
 
 use DXDebug;
 use DXProt;
-use IsoTime;
-use Investigate;
-use Time::HiRes qw(gettimeofday tv_interval);
+use DXLog;
 
 use vars qw($VERSION $BRANCH @ISA %pings);
 $VERSION = sprintf( "%d.%03d", q$Revision$ =~ /(\d+)\.(\d+)/ );
@@ -29,13 +27,16 @@ sub handle_input
        my $self = shift;
        my $dxchan = shift;
 
-       # this is always routed
-       if ($self->{to} eq $main::mycall ) {
-               my $r = DXChannel::get($main::myalias);
-               $dxchan = $r if $r;
+       if ($self->{to} eq $main::mycall) {
+               my $tochan = DXChannel::get($self->{u} || $main::myalias);
+               if ($tochan) {
+                       $tochan->send($self->tocmd);
+               } else {
+                       dbg("no user or $main::myalias not online") if isdbg('chanerr');
+               }
+       } else {        
+               $self->route($dxchan);
        }
-       $self->route($dxchan);
-
 }
 
 sub topcxx
@@ -45,14 +46,14 @@ sub topcxx
        my @out;
 
        my $ref = DXUser->get_current($self->{to});
-       while (@_) {
-               my $line = shift;
+       for (split /(?:%0D)?\%0A/, $self->{content}) {
+               my $line = $_;
                $line =~ s/\s*$//;
                Log('rcmd', 'out', $self->{to}, $line);
                if ($self->{u} && $dxchan->is_clx && $ref->is_clx) {
-                       push @out, pc85($main::mycall, $self->{to}, $self->{u}, "$main::mycall:$line");
+                       push @out, DXProt::pc85($main::mycall, $self->{to}, $self->{u}, "$main::mycall:$line");
                } else {
-                       push @out, pc35($main::mycall, $self->{to}, "$main::mycall:$line");
+                       push @out, DXProt::pc35($main::mycall, $self->{to}, "$main::mycall:$line");
                }
        }