projects
/
spider.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
f86aa3b
)
incoming now working
author
minima
<minima>
Wed, 28 Mar 2001 16:45:12 +0000
(16:45 +0000)
committer
minima
<minima>
Wed, 28 Mar 2001 16:45:12 +0000
(16:45 +0000)
perl/AGWMsg.pm
patch
|
blob
|
history
diff --git
a/perl/AGWMsg.pm
b/perl/AGWMsg.pm
index dad1ed26ae0ccc14d32045506b6d4ed12fc6e30f..8f78319b0c0430685aae4d32b3eff4bbc6566392 100644
(file)
--- a/
perl/AGWMsg.pm
+++ b/
perl/AGWMsg.pm
@@
-243,7
+243,10
@@
sub _decode
$conn->to_connected($conn->{call}, 'O', $conn->{csort});
}
} else {
$conn->to_connected($conn->{call}, 'O', $conn->{csort});
}
} else {
- &{$conn->{rproc}}($conn, "I$conn->{call}|$data");
+ my @lines = split /\cM/, $data;
+ for (@lines) {
+ &{$conn->{rproc}}($conn, "I$conn->{call}|$_");
+ }
}
} else {
dbg('err', "AGW error Unsolicited Data!");
}
} else {
dbg('err', "AGW error Unsolicited Data!");
@@
-251,13
+254,18
@@
sub _decode
} elsif ($sort eq 'I' || $sort eq 'S' || $sort eq 'U' || $sort eq 'M' || $sort eq 'T') {
my $d = unpack "Z*", $data;
$d =~ s/\cM$//;
} elsif ($sort eq 'I' || $sort eq 'S' || $sort eq 'U' || $sort eq 'M' || $sort eq 'T') {
my $d = unpack "Z*", $data;
$d =~ s/\cM$//;
- dbg('agw', "AGW Monitor port: $port \"$d\"");
+ my @lines = split /\cM/, $d;
+
+ for (@lines) {
+ s/([\x00-\x1f\x7f-\xff])/sprintf("%%%02X", ord($1))/eg;
+ dbg('agw', "AGW Monitor port: $port \"$_\"");
+ }
} elsif ($sort eq 'C') {
my $d = unpack "Z*", $data;
$d =~ s/\cM$//;
dbg('agw', "AGW Connect port: $port pid: $pid '$from'->'$to' \"$d\"");
my $call = $from eq $main::mycall ? $to : $from;
} elsif ($sort eq 'C') {
my $d = unpack "Z*", $data;
$d =~ s/\cM$//;
dbg('agw', "AGW Connect port: $port pid: $pid '$from'->'$to' \"$d\"");
my $call = $from eq $main::mycall ? $to : $from;
- my $conn =
Msg->conns
($call);
+ my $conn =
_find
($call);
if ($conn) {
if ($conn->{state} eq 'WC') {
if (exists $conn->{cmd} && @{$conn->{cmd}}) {
if ($conn) {
if ($conn->{state} eq 'WC') {
if (exists $conn->{cmd} && @{$conn->{cmd}}) {
@@
-278,7
+286,7
@@
sub _decode
}
} elsif ($sort eq 'd') {
dbg('agw', "AGW '$from'->'$to' port: $port Disconnected");
}
} elsif ($sort eq 'd') {
dbg('agw', "AGW '$from'->'$to' port: $port Disconnected");
- my $conn =
Msg->conns
($from eq $main::mycall ? $to : $from);
+ my $conn =
_find
($from eq $main::mycall ? $to : $from);
$conn->in_disconnect if $conn;
} elsif ($sort eq 'y') {
my ($frames) = unpack "V", $data;
$conn->in_disconnect if $conn;
} elsif ($sort eq 'y') {
my ($frames) = unpack "V", $data;
@@
-316,6
+324,17
@@
sub _decode
}
}
}
}
+sub _find
+{
+ my $call = shift;
+ for (values %Msg::conns) {
+ if ($_->isa('AGWMsg') && $call eq $_->{agwcall}) {
+ return $_;
+ }
+ }
+ return undef;
+}
+
sub connect
{
my ($conn, $line) = @_;
sub connect
{
my ($conn, $line) = @_;
@@
-329,6
+348,7
@@
sub connect
$conn->{agwcall} = uc $call;
_sendf('C', $main::mycall, $conn->{agwcall}, $conn->{agwport}, $conn->{agwpid});
$conn->{agwcall} = uc $call;
_sendf('C', $main::mycall, $conn->{agwcall}, $conn->{agwport}, $conn->{agwpid});
+ return 1;
}
sub in_disconnect
}
sub in_disconnect