X-Git-Url: http://dxcluster.org/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2FDXProtout.pm;h=8cc5137f59684c096eb79f4e6c8132becf723023;hb=8e45a3dac2e136dc0c9d6f1e78f8c048a8d7ba21;hp=7afb0e92af1241c134908c04348bbfb857a581d7;hpb=f3adc82a0299652d929b73c718127fa38571eec5;p=spider.git diff --git a/perl/DXProtout.pm b/perl/DXProtout.pm index 7afb0e92..8cc5137f 100644 --- a/perl/DXProtout.pm +++ b/perl/DXProtout.pm @@ -15,7 +15,7 @@ package DXProt; use DXUtil; use DXM; -use Carp; +use DXDebug; use strict; @@ -27,8 +27,16 @@ use strict; sub pc10 { my ($from, $to, $via, $text) = @_; - my $user2 = $via ? $to : ' '; - my $user1 = $via ? $via : $to; + my ($user1, $user2); + if ($via && $via ne $to) { + $user1 = $via; + $user2 = $to; + } else { + $user2 = ' '; + $user1 = $to; + } +# my $user2 = $via ? $to : ' '; +# my $user1 = $via ? $via : $to; $text = unpad($text); $text = ' ' if !$text; return "PC10^$from^$user1^$text^*^$user2^$main::mycall^~"; @@ -94,7 +102,7 @@ sub pc17 sub pc18 { my $info = DXCluster::cluster; - return "PC18^$info^$DXProt::myprot_version^~"; + return "PC18^$info^$DXProt::myprot_version^"; } # @@ -186,7 +194,7 @@ sub pc29 { my ($fromnode, $tonode, $stream, $text) = @_; $text =~ s/\^/:/og; # remove ^ - $text =~ s/\~/S/og; +# $text =~ s/\~/S/og; return "PC29^$fromnode^$tonode^$stream^$text^~"; } @@ -235,13 +243,7 @@ sub pc35 # send all the DX clusters I reckon are connected sub pc38 { - my @list = DXNode->get_all(); - my $list; - my @nodes; - - foreach $list (@list) { - push @nodes, $list->call; - } + my @nodes = map { ($_->dxchan && $_->dxchan->isolate) ? () : $_->call } DXNode->get_all(); return "PC38^" . join(',', @nodes) . "^~"; } @@ -278,6 +280,28 @@ sub pc42 return "PC42^$fromnode^$tonode^$stream^"; } +# remote db request +sub pc44 +{ + my ($fromnode, $tonode, $stream, $db, $req, $call) = @_; + $db = uc $db; + return "PC44^$tonode^$fromnode^$stream^$db^$req^$call^"; +} + +# remote db data +sub pc45 +{ + my ($fromnode, $tonode, $stream, $data) = @_; + return "PC45^$tonode^$fromnode^$stream^$data^"; +} + +# remote db data complete +sub pc46 +{ + my ($fromnode, $tonode, $stream) = @_; + return "PC46^$tonode^$fromnode^$stream^"; +} + # bull delete sub pc49 { @@ -289,8 +313,8 @@ sub pc49 # periodic update of users, plus keep link alive device (always H99) sub pc50 { - my $me = DXCluster->get_exact($main::mycall); - my $n = $me->users ? $me->users : '0'; + my $n = shift; + $n = 0 unless $n >= 0; return "PC50^$main::mycall^$n^H99^"; } @@ -300,5 +324,22 @@ sub pc51 my ($to, $from, $val) = @_; return "PC51^$to^$from^$val^"; } + +# clx remote cmd send +sub pc84 +{ + my($fromnode, $tonode, $call, $msg) = @_; + return "PC84^$tonode^$fromnode^$call^$msg^~"; +} + +# clx remote cmd reply +sub pc85 +{ + my($fromnode, $tonode, $call, $msg) = @_; + return "PC85^$tonode^$fromnode^$call^$msg^~"; +} 1; __END__ + + +