Mercurial > pub > Impl
comparison lib/IMPL/Web/OutOfRangeException.pm @ 407:c6e90e02dd17 ref20150831
renamed Lib->lib
| author | cin | 
|---|---|
| date | Fri, 04 Sep 2015 19:40:23 +0300 | 
| parents | |
| children | 
   comparison
  equal
  deleted
  inserted
  replaced
| 406:f23fcb19d3c1 | 407:c6e90e02dd17 | 
|---|---|
| 1 package IMPL::Web::OutOfRangeException; | |
| 2 use strict; | |
| 3 | |
| 4 use IMPL::declare { | |
| 5 base => { | |
| 6 'IMPL::Web::Exception' => '@_' | |
| 7 }, | |
| 8 }; | |
| 9 | |
| 10 sub CTOR { | |
| 11 my ($this,$range) = @_; | |
| 12 | |
| 13 #TODO: validate args | |
| 14 | |
| 15 $this->headers({ | |
| 16 content_range => { $range->{units} . ' */' . $range->{length} } | |
| 17 }); | |
| 18 } | |
| 19 | |
| 20 use IMPL::Resources::Strings { | |
| 21 message => 'The specified range is invalid' | |
| 22 }; | |
| 23 | |
| 24 sub status { | |
| 25 "416 Requested Range Not Satisfiable" | |
| 26 } | |
| 27 | |
| 28 1; | |
| 29 | |
| 30 __END__ | |
| 31 | |
| 32 =pod | |
| 33 | |
| 34 =head1 NAME | |
| 35 | |
| 36 C<IMPL::Web::OutOfRangeException> A server SHOULD return a response with this | |
| 37 status code if a request included a Range request-header field (section 14.35), | |
| 38 and none of the range-specifier values in this field overlap the current extent | |
| 39 of the selected resource, and the request did not include an If-Range | |
| 40 request-header field. (For byte-ranges, this means that the first- byte-pos of | |
| 41 all of the byte-range-spec values were greater than the current length of the | |
| 42 selected resource.) | |
| 43 | |
| 44 =head1 DESCRIPTION | |
| 45 | |
| 46 When this status code is returned for a byte-range request, the response SHOULD | |
| 47 include a Content-Range entity-header field specifying the current length of the | |
| 48 selected resource (see section 14.16). This response MUST NOT use the | |
| 49 multipart/byteranges content- type. | |
| 50 | |
| 51 =cut | 
