package LWP::Protocol::data; # Implements access to data:-URLs as specified in RFC 2397 use strict; use vars qw(@ISA); require HTTP::Response; require HTTP::Status; require LWP::Protocol; @ISA = qw(LWP::Protocol); use HTTP::Date qw(time2str); require LWP; # needs version number sub request { my($self, $request, $proxy, $arg, $size) = @_; # check proxy if (defined $proxy) { return HTTP::Response->new( &HTTP::Status::RC_BAD_REQUEST, 'You can not proxy with data'); } # check method my $method = $request->method; unless ($method eq 'GET' || $method eq 'HEAD') { return HTTP::Response->new( &HTTP::Status::RC_BAD_REQUEST, 'Library does not allow method ' . "$method for 'data:' URLs"); } my $url = $request->uri; my $response = HTTP::Response->new( &HTTP::Status::RC_OK, "Document follows"); my $media_type = $url->media_type; my $data = $url->data; $response->header('Content-Type' => $media_type, 'Content-Length' => length($data), 'Date' => time2str(time), 'Server' => "libwww-perl-internal/$LWP::VERSION" ); $data = "" if $method eq "HEAD"; return $self->collect_once($arg, $response, $data); } 1;
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
GHTTP.pm | File | 1.72 KB | 0644 |
|
cpan.pm | File | 1.35 KB | 0644 |
|
data.pm | File | 1.22 KB | 0644 |
|
file.pm | File | 3.74 KB | 0644 |
|
ftp.pm | File | 16.42 KB | 0644 |
|
gopher.pm | File | 5.62 KB | 0644 |
|
http.pm | File | 12.53 KB | 0644 |
|
loopback.pm | File | 601 B | 0644 |
|
mailto.pm | File | 4.32 KB | 0644 |
|
nntp.pm | File | 3.78 KB | 0644 |
|
nogo.pm | File | 630 B | 0644 |
|