Commit | Line | Data |
4f5db602 |
1 | package HTTP::Body::OctetStream; |
32b29b79 |
2 | |
3 | use strict; |
4 | use base 'HTTP::Body'; |
5 | use bytes; |
6 | |
7 | use File::Temp 0.14; |
8 | |
58050177 |
9 | sub spin { |
10 | my $self = shift; |
7e2df1d9 |
11 | |
58050177 |
12 | unless ( $self->body ) { |
13 | $self->body( File::Temp->new ); |
14 | } |
15 | |
16 | if ( my $length = length( $self->{buffer} ) ) { |
17 | $self->body->write( delete $self->{buffer}, $length ); |
18 | } |
19 | |
20 | if ( $self->length == $self->content_length ) { |
21 | seek( $self->body, 0, 0 ); |
7e2df1d9 |
22 | $self->state('done'); |
58050177 |
23 | } |
24 | } |
25 | |
32b29b79 |
26 | 1; |