X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FCatalyst%2FRequest.pm;h=b712e479ad4cf00c658d90618f14384da5650d5a;hb=87f504360777193d96945014faa1d058224fcb0e;hp=722c8f5338938ec2d58d000de262916902583693;hpb=040a44a0953bd6a8094d52c41138201c942ffa5b;p=catagits%2FCatalyst-Runtime.git diff --git a/lib/Catalyst/Request.pm b/lib/Catalyst/Request.pm index 722c8f5..b712e47 100644 --- a/lib/Catalyst/Request.pm +++ b/lib/Catalyst/Request.pm @@ -14,6 +14,17 @@ use namespace::clean -except => 'meta'; with 'MooseX::Emulate::Class::Accessor::Fast'; +has env => (is => 'ro', writer => '_set_env'); + +has _read_position => ( is => 'rw', default => 0 ); +has _read_length => ( is => 'ro', + default => sub { + my $self = shift; + $self->header('Content-Length') || 0; + }, + lazy => 1, +); + has action => (is => 'rw'); has address => (is => 'rw'); has arguments => (is => 'rw', default => sub { [] }); @@ -39,10 +50,15 @@ has headers => ( has _context => ( is => 'rw', weak_ref => 1, - handles => ['read'], + handles => ['read'], # XXX FIXME! clearer => '_clear_context', ); +sub read_chunk { + my $self = shift; + return $self->env->{'psgi.input'}->read(@_); +} + has body_parameters => ( is => 'rw', required => 1, @@ -110,7 +126,7 @@ has _body => ( sub body { my $self = shift; $self->_context->prepare_body(); - $self->_body(@_) if scalar @_; + croak 'body is a reader' if scalar @_; return blessed $self->_body ? $self->_body->body : $self->_body; } @@ -120,7 +136,7 @@ has hostname => ( lazy => 1, default => sub { my ($self) = @_; - gethostbyaddr( inet_aton( $self->address ), AF_INET ) || 'localhost' + gethostbyaddr( inet_aton( $self->address ), AF_INET ) || $self->address }, ); @@ -138,6 +154,8 @@ sub query_params { shift->query_parameters(@_) } sub path_info { shift->path(@_) } sub snippets { shift->captures(@_) } +=for stopwords param params + =head1 NAME Catalyst::Request - provides information about the current client request @@ -210,7 +228,7 @@ Returns a reference to an array containing the arguments. For example, if your action was - package MyApp::C::Foo; + package MyApp::Controller::Foo; sub moose : Local { ... @@ -228,7 +246,7 @@ Shortcut for L. =head2 $req->base Contains the URI base. This will always have a trailing slash. Note that the -URI scheme (eg., http vs. https) must be determined through heuristics; +URI scheme (e.g., http vs. https) must be determined through heuristics; depending on your server configuration, it may be incorrect. See $req->secure for more info. @@ -316,7 +334,7 @@ Returns an L object containing the headers for the current reques =head2 $req->hostname -Returns the hostname of the client. +Returns the hostname of the client. Use C<< $req->uri->host >> to get the hostname of the server. =head2 $req->input @@ -427,6 +445,10 @@ Shortcut for $req->parameters. Returns the path, i.e. the part of the URI after $req->base, for the current request. + http://localhost/path/foo + + $c->request->path will contain 'path/foo' + =head2 $req->path_info Alias for path, added for compatibility with L. @@ -474,6 +496,10 @@ Reads a chunk of data from the request body. This method is intended to be used in a while loop, reading $maxlength bytes on every call. $maxlength defaults to the size of the request if not specified. +=head2 $req->read_chunk(\$buff, $max) + +Reads a chunk.. + You have to set MyApp->config(parse_on_demand => 1) to use this directly. =head2 $req->referer @@ -483,8 +509,8 @@ Shortcut for $req->headers->referer. Returns the referring page. =head2 $req->secure Returns true or false, indicating whether the connection is secure -(https). Note that the URI scheme (eg., http vs. https) must be determined -through heuristics, and therefore the reliablity of $req->secure will depend +(https). Note that the URI scheme (e.g., http vs. https) must be determined +through heuristics, and therefore the reliability of $req->secure will depend on your server configuration. If you are serving secure pages on the standard SSL port (443) and/or setting the HTTPS environment variable, $req->secure should be valid. @@ -570,7 +596,7 @@ L objects. =head2 $req->uri -Returns a URI object for the current request. Stringifies to the URI text. +Returns a L object for the current request. Stringifies to the URI text. =head2 $req->mangle_params( { key => 'value' }, $appendmode); @@ -673,14 +699,6 @@ sub uri_with { return $uri; } -=head2 $req->user - -Returns the currently logged in user. B, do not call, -this will be removed in version 5.81. To retrieve the currently authenticated -user, see C<< $c->user >> and C<< $c->user_exists >> in -L. For the C provided by the -webserver, see C<< $req->remote_user >> below. - =head2 $req->remote_user Returns the value of the C environment variable.