projects
/
spider.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
switch off monitoring on finish
[spider.git]
/
perl
/
AGWMsg.pm
diff --git
a/perl/AGWMsg.pm
b/perl/AGWMsg.pm
index d80f423547184c456a46bce03a512c13b33b7d53..8aa47dbfe1671f791a0d93deb041cfd09462f87d 100644
(file)
--- a/
perl/AGWMsg.pm
+++ b/
perl/AGWMsg.pm
@@
-45,7
+45,7
@@
sub init
finish();
dbg('err', "AGW initialising and connecting to $addr/$port ...");
finish();
dbg('err', "AGW initialising and connecting to $addr/$port ...");
- $sock = IO::Socket::INET->new(PeerAddr => $addr, PeerPort => $port, Proto=>'tcp');
+ $sock = IO::Socket::INET->new(PeerAddr => $addr, PeerPort => $port, Proto=>'tcp'
, Timeout => 30
);
unless ($sock) {
dbg('err', "Cannot connect to AGW Engine at $addr/$port $!");
return;
unless ($sock) {
dbg('err', "Cannot connect to AGW Engine at $addr/$port $!");
return;
@@
-63,6
+63,7
@@
sub init
# R frame for the release number
# G frame to ask for ports
# X frame to say who we are
# R frame for the release number
# G frame to ask for ports
# X frame to say who we are
+ # optional m frame to enable monitoring
_sendf('R');
_sendf('G');
_sendf('X', $main::mycall);
_sendf('R');
_sendf('G');
_sendf('X', $main::mycall);
@@
-80,6
+81,7
@@
sub finish
$_->disconnect;
}
# say we are going
$_->disconnect;
}
# say we are going
+ _sendf('m') if $monitor;
_sendf('x', $main::mycall);
Msg->sleep(2);
Msg::set_event_handler($sock, read=>undef, write=>undef, error=>undef);
_sendf('x', $main::mycall);
Msg->sleep(2);
Msg::set_event_handler($sock, read=>undef, write=>undef, error=>undef);
@@
-262,6
+264,9
@@
sub _decode
}
} else {
$conn = AGWMsg->new($rproc);
}
} else {
$conn = AGWMsg->new($rproc);
+ $conn->{agwpid} = $pid;
+ $conn->{agwport} = $port;
+ $conn->{lineend} = "\cR";
$conn->to_connected($call, 'A', $conn->{csort} = 'ax25');
}
} elsif ($sort eq 'd') {
$conn->to_connected($call, 'A', $conn->{csort} = 'ax25');
}
} elsif ($sort eq 'd') {
@@
-309,9
+314,17
@@
sub in_disconnect
sub disconnect
{
my $conn = shift;
sub disconnect
{
my $conn = shift;
- _sendf('d', $main::mycall, $conn->{call});
+ _sendf('d', $main::mycall, $conn->{call}
, $conn->{agwport}
);
$conn->SUPER->disconnect;
}
$conn->SUPER->disconnect;
}
+sub enqueue
+{
+ my ($conn, $msg) = @_;
+ if ($msg =~ /^[D]/) {
+ $msg =~ s/^[-\w]+\|//;
+ _sendf('D', $main::mycall, $conn->{call}, $conn->{agwport}, $conn->{agwpid}, $msg . $conn->{lineend});
+ }
+}
1;
1;