- Timestamp:
- 08/16/08 19:46:28 (5 years ago)
- Location:
- lang/perl/HTTP-Engine/trunk/lib/HTTP/Engine
- Files:
-
- 2 added
- 3 modified
-
Interface/POE.pm (modified) (6 diffs)
-
Interface/POE/Filter.pm (added)
-
Interface/POE/RequestBuilder.pm (modified) (1 diff)
-
Interface/POE/ResponseWriter.pm (added)
-
ResponseWriter.pm (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
lang/perl/HTTP-Engine/trunk/lib/HTTP/Engine/Interface/POE.pm
r17711 r17712 6 6 Component::Server::TCP 7 7 /; 8 use POE::Filter::HTTPD;8 use HTTP::Engine::Interface::POE::Filter; 9 9 use HTTP::Request::AsCGI; 10 use IO::Scalar; 11 use URI::WithBase; 10 12 11 13 has host => ( … … 33 35 Port => $self->port, 34 36 Address => $self->host, 35 ClientFilter => ' POE::Filter::HTTPD',37 ClientFilter => 'HTTP::Engine::Interface::POE::Filter', 36 38 ( $self->alias ? ( Alias => $self->alias ) : () ), 37 39 ClientInput => _client_input($self), 38 40 ); 39 41 } 42 43 our $CLIENT; 40 44 41 45 sub _client_input { … … 50 54 # the responses as they are and finish up. 51 55 if ( $request->isa('HTTP::Response') ) { 52 $heap->{client}->put($request );56 $heap->{client}->put($request->as_string); 53 57 $kernel->yield('shutdown'); 54 58 return; … … 56 60 57 61 # follow is normal workflow. 58 my $ascgi = HTTP::Request::AsCGI->new($request)->setup;59 62 do { 60 my $env = \%ENV;63 local $CLIENT = $heap->{client}; 61 64 62 65 my $host = $request->header('Host'); … … 70 73 request_args => { 71 74 headers => $request->headers, 75 uri => URI::WithBase->new($uri), 72 76 connection_info => { 73 77 address => $heap->{remote_ip}, … … 78 82 protocol => $request->protocol(), 79 83 }, 84 _connection => { 85 input_handle => do { 86 my $stdinbuf = $request->content; 87 IO::Scalar->new( \$stdinbuf ); 88 }, 89 output_handle => undef, 90 env => \%ENV, 91 }, 80 92 }, 81 93 ); 82 94 }; 83 $ascgi->restore;84 95 85 $heap->{client}->put($ascgi->response);86 96 $kernel->yield('shutdown'); 87 97 } -
lang/perl/HTTP-Engine/trunk/lib/HTTP/Engine/Interface/POE/RequestBuilder.pm
r17711 r17712 1 1 package HTTP::Engine::Interface::POE::RequestBuilder; 2 2 use Moose; 3 extends 'HTTP::Engine::RequestBuilder';4 3 5 sub _build_connection_info { die "explicit parameter" } 4 with qw( 5 HTTP::Engine::Role::RequestBuilder::Standard 6 HTTP::Engine::Role::RequestBuilder::HTTPBody 7 ); 8 9 # all of these will be passed to handle_request 10 sub _build_connection { die "explicit parameter" } 11 sub _build_uri { die "explicit parameter" } 12 sub _build_connection_info { die "explicit parameter" }; 13 sub _build_headers { die "explicit parameter" }; 6 14 7 15 1; -
lang/perl/HTTP-Engine/trunk/lib/HTTP/Engine/ResponseWriter.pm
r17699 r17712 34 34 } 35 35 36 local *STDOUT = $req->_connection->{output_handle} ;36 local *STDOUT = $req->_connection->{output_handle} if $req->_connection->{output_handle}; 37 37 $self->_prepare_write; 38 38 $self->_write($self->_response_line($res) . $CRLF) if $self->should_write_response_line;
![(please configure the [header_logo] section in trac.ini)](/share/chrome/site/your_project_logo.png)