--- trunk/lib/Frey/Server.pm 2008/06/29 20:13:46 28 +++ trunk/lib/Frey/Server.pm 2008/06/29 20:48:35 30 @@ -100,25 +100,29 @@ warn "param = ",dump($req->param); my $path = $req->request->url->path; + my $html; + if ( $path =~ m/::/ ) { my ( undef, $module, $method ) = split(m!/!, $path, 3); if ( ! defined( $templates->{$module} ) ) { $req->conn->send_status_line( 404, "$module" ); - $req->print("Package $module not found"); + $html = "Package $module not found"; } elsif ( ! $method ) { - $req->print( Frey::HTML->page( 'package-methods', $req, $module ) ); + $html = Frey::HTML->page( 'package-methods', $req, $module ); } elsif ( grep(/^\Q$method\E$/, @{ $templates->{$module} }) ) { - $req->print( Frey::HTML->page( $method, $req ) ); + $html = Frey::HTML->page( $method, $req ); } else { $req->conn->send_status_line( 404, "$module $method" ); - $req->print("Package $module doesn't have $method"); + $html = "Package $module doesn't have $method"; } } else { - my $html = Frey::HTML->page( 'status' ); - $req->print( $html ); - warn ">> ",length( $html ), " bytes\n"; + warn "fallback to status page\n"; + $html = Frey::HTML->page( 'status' ); } + + $req->print( $html ); + warn ">> ",length( $html ), " bytes\n"; $req->next; } }