1 package HTTP::Body::Parser::OctetStream;
5 use base 'HTTP::Body::Parser';
14 if ( $self->seen_eos && length $self->buffer || length $self->buffer >= $self->bufsize ) {
16 unless ( $self->context->content ) {
17 $self->context->content( File::Temp->new );
20 my ( $r, $w, $s ) = ( length $self->buffer, 0, 0 );
22 for ( $w = 0; $w < $r; $w += $s || 0 ) {
24 $s = $self->context->content->syswrite( $self->buffer, $r - $w, $w );
26 Carp::croak qq/Failed to syswrite buffer to temporary file. Reason: $!./
27 unless defined $s || $! == Errno::EINTR;
33 if ( $self->seen_eos && $self->context->content ) {
35 sysseek( $self->context->content, 0, 0 )
36 or Carp::croak qq/Failed to sysseek temporary handle./;