decode AGW messages when there 36 bytes available

This commit is contained in:
minima 2001-03-30 18:34:45 +00:00
parent 02a0660296
commit f27e9460a8
2 changed files with 6 additions and 3 deletions

View File

@ -183,6 +183,8 @@ sub _rcv { # Complement to _send
if (defined ($bytes_read)) {
if ($bytes_read > 0) {
$inmsg .= $msg;
# $msg =~ s/([\x00-\x1f\x7f-\xff])/sprintf("%%%02X", ord($1))/eg;
# dbg('connll', $msg);
}
} else {
if (Msg::_err_will_block($!)) {
@ -196,7 +198,7 @@ FINISH:
if (defined $bytes_read && $bytes_read == 0) {
finish();
} else {
_decode() if length $inmsg > 36;
_decode() if length $inmsg >= 36;
}
}
@ -358,7 +360,8 @@ sub _decode
dbg('agw', "AGW Port: $_");
}
for (my $i = 0; $i < $noports; $i++) {
_sendf('y', undef, undef, $i );
_sendf('y', undef, undef, $i);
_sendf('g', undef, undef, $i);
}
} else {
my $d = unpack "Z*", $data;

View File

@ -482,7 +482,7 @@ sub event_loop {
# Quit the loop if no handles left to process
last unless ($rd_handles->count() || $wt_handles->count());
($rset, $wset) = IO::Select->select($rd_handles, $wt_handles, $er_handles, $timeout);
($rset, $wset, $eset) = IO::Select->select($rd_handles, $wt_handles, $er_handles, $timeout);
foreach $e (@$eset) {
&{$er_callbacks{$e}}($e) if exists $er_callbacks{$e};