On Fri May 23 03:32:13 2008, Mark@Overmeer.net wrote:
Show quoted text> So, you mean: (around line 1300)
>
> until(@$oBuffer # there's stuff in output buffer:
> && $oBuffer->[-1][TYPE] eq 'OUTPUT' # that thing is an output
> line:
> && $oBuffer->[-1][DATA] =~ /\r?\n$/ # the last thing there has
> cr-lf:
> && !length $iBuffer # and the input buffer has
> been MT'ed: )
> { my $transno = $self->Transaction;
>
> if($timeout)
> - { my @ready = $self->{_select}->can_read($timeout);
> - unless(@ready)
> + { my $rvec = 0;
> + vec($rvec, fileno($self->Socket), 1) = 1;
> + unless(CORE::select($rvec, undef, $rvec, $timeout))
> { $self->LastError("Tag $transno: Timeout after $timeout
> seconds"
> . " waiting for data from server");
>
> Internally, the can_read() does
>
> sub can_read
> {
> my $vec = shift;
> my $timeout = shift;
> my $r = $vec->[VEC_BITS];
>
> defined($r) && (select($r,undef,undef,$timeout) > 0)
> ? handles($vec, $r)
> : ();
> }
>
> Which probably all you do, is adding the error bits?
> Do you get an error from the lower layers of SSL, for instance
> something
> like "connection not established (yet)" ? Just an idea.
yes:
my $rvec = 0;
vec($rvec, fileno($self->Socket), 1) = 1;
CORE::select($rvec, undef, undef, $timeout)
worked too the only difference is the initiation of $rvec.
Initiating as in (per documentation the required way to initiate a bit
vector):
$rvec = '';
blocks and times out. Please not that this is used ($rvec =0), later in
code around line 1336. It seems that this issue is not related to
Mail::IMAPClient but appreciate the help anyway...