Changeset 17846 for lang/perl/Moxy

Show
Ignore:
Timestamp:
08/18/08 19:08:54 (5 months ago)
Author:
tokuhirom
Message:

HTTP::Engine::Compat の利用を停止。HTTP::Engine を直接使うことにする。

Location:
lang/perl/Moxy/trunk
Files:
3 modified

Legend:

Unmodified
Added
Removed
  • lang/perl/Moxy/trunk/Makefile.PL

    r17844 r17846  
    1515requires 'Class::Component' => 0.17; 
    1616requires 'HTTP::Engine' => '0.0.13'; 
    17 requires 'HTTP::Engine::Compat' => '0.0.1'; 
    1817requires 'HTTP::MobileAttribute'; 
    1918requires 'CGI'; 
     
    2726requires 'Encode::JP::Mobile' => 0.22; 
    2827requires 'HTML::ReplacePictogramMobileJp' => 0.05; 
    29 requires 'Params::Validate'; 
     28requires 'Params::Validate' => 0.91; 
    3029requires 'HTML::Tree' => 3.23; 
    3130requires 'App::Cmd' => 0.013; 
  • lang/perl/Moxy/trunk/lib/Moxy.pm

    r17636 r17846  
    161161 
    162162sub handle_request { 
    163     my ($self, $c) = @_; 
    164  
    165     my $session_id = join ',', $c->req->headers->authorization_basic; 
     163    my ($self, $req) = @_; 
     164 
     165    my $session_id = join ',', $req->headers->authorization_basic; 
    166166    $self->log(debug => "Authorization header: $session_id"); 
    167167    if ($session_id) { 
    168         $self->_make_response( 
    169             c => $c, 
     168        return $self->_make_response( 
     169            req => $req, 
    170170            user_id  => $session_id, 
    171171        ); 
    172172    } else { 
    173         $c->res->status(401); 
    174         $c->res->headers->www_authenticate(qq{Basic realm="Moxy needs basic auth.Only for identification.Password is dummy."}); 
    175         $c->res->body('authentication required'); 
     173        return HTTP::Engine::Response->new( 
     174            status => 401, 
     175            headers => { 
     176                WWW_Authenticate => qq{Basic realm="Moxy needs basic auth.Only for identification.Password is dummy."}, 
     177            }, 
     178            body => 'authentication required', 
     179        ); 
    176180    } 
    177181} 
     
    181185    my %args = validate( 
    182186        @_ => +{ 
    183             c       => { isa  => 'HTTP::Engine::Compat::Context', }, 
     187            req     => { isa  => 'HTTP::Engine::Request', }, 
    184188            user_id => { type => SCALAR }, 
    185189        } 
    186190    ); 
    187     my $c = $args{c}; 
    188  
    189     my $base = $c->req->uri->clone; 
     191    my $req = $args{req}; 
     192 
     193    my $base = $req->uri->clone; 
    190194    $base->path(''); 
    191195    $base->query_form({}); 
    192196 
    193     (my $url = $c->req->uri->path_query) =~ s!^/!!; 
     197    (my $url = $req->uri->path_query) =~ s!^/!!; 
    194198    $url = uf_uristr(uri_unescape $url); 
    195199 
     
    198202        my $res = $self->_do_request( 
    199203            url     => $url, 
    200             request => $c->req->as_http_request, 
     204            request => $req->as_http_request, 
    201205            user_id => $args{user_id}, 
    202206        ); 
     
    211215                $location->port($uri->port); 
    212216            } 
    213             $res->header( 'Location' => $base . '/' . uri_escape( $location ) ); 
    214             $self->log(debug => "redirect to " . $res->header('Location')); 
     217            my $redirect = $base . '/' . uri_escape($location); 
     218            $self->log(debug => "redirect to $redirect"); 
     219            return HTTP::Engine::Response->new( 
     220                status  => 302, 
     221                headers => { 
     222                    Location => $redirect, 
     223                }, 
     224            ); 
    215225        } else { 
    216226            my $content_type = $res->header('Content-Type'); 
     
    219229                $res->content( encode($res->charset, rewrite($base, decode($res->charset, $res->content), $url)) ); 
    220230            } 
    221             use bytes; 
    222             $res->header('Content-Length' => bytes::length($res->content)); 
    223         } 
    224         $c->res->set_http_response($res); 
     231 
     232            my $response = HTTP::Engine::Response->new(); 
     233            $response->set_http_response($res); 
     234            return $response; 
     235        } 
    225236    } else { 
    226237        # please input url. 
    227         $c->res->status(200); 
    228         $c->res->content_type('text/html; charset=utf8'); 
    229         $c->res->body( render_start_page($base) ); 
     238        return HTTP::Engine::Response->new( 
     239            status       => 200, 
     240            content_type => 'text/html; charset=utf8', 
     241            body         => render_start_page($base), 
     242        ); 
    230243    } 
    231244} 
  • lang/perl/Moxy/trunk/lib/Moxy/Cmd.pm

    r17633 r17846  
    66use File::Spec::Functions; 
    77use FindBin; 
    8 use HTTP::Engine::Compat; 
     8use HTTP::Engine; 
    99use Moxy; 
    1010use YAML; 
     
    5555            args =>   $config->{global}->{server}->{args}, 
    5656            request_handler => sub { 
    57                 my $c = shift; 
    58                 $moxy->handle_request( $c ); 
     57                my $req = shift; 
     58                $moxy->handle_request( $req ); 
    5959            }, 
    6060        }