/[Frey]/trunk/lib/Frey/Server.pm
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /trunk/lib/Frey/Server.pm

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 886 by dpavlin, Wed Dec 24 13:50:55 2008 UTC revision 1133 by dpavlin, Tue Jun 30 15:10:55 2009 UTC
# Line 55  sub request { Line 55  sub request {
55          }          }
56    
57          my $path = $url->path;          my $path = $url->path;
58          my $content_type = 'text/plain';  
59            if ( $path =~ m{^/(favicon.ico|__history__.html)$} ) {
60                    warn "INFO: $path ignored";
61                    return { code => 404, content_type => 'text/plain' };
62            }
63    
64            my $request = {
65                    content_type => 'text/html',
66                    code => 200,
67            };
68    
69          eval {          eval {
70    
# Line 118  sub request { Line 127  sub request {
127                          my $class = rest2class $1;                          my $class = rest2class $1;
128                          warn "# run $path -> $class $2";                          warn "# run $path -> $class $2";
129                          $run->{format} = $3 if $3;                          $run->{format} = $3 if $3;
130                          $run->{$_} = $params->{$_} foreach keys %$params;                          foreach my $p ( keys %$params ) {
131                                    $run->{$p} = $params->{$p} if defined $params->{$p} && $params->{$p} ne '';
132                            }
133                          $f = Frey::Run->new( class => $class, params => $run, run => $2 );                          $f = Frey::Run->new( class => $class, params => $run, run => $2 );
134                  } elsif (                  } elsif (
135                          $path =~ m{/([^/]+)/?$}                          $path =~ m{/([^/]+)/?$}
# Line 145  sub request { Line 156  sub request {
156                          confess "# can't call request on nothing!";                          confess "# can't call request on nothing!";
157                  }                  }
158    
159                  $content_type = $f->content_type;                  $request->{content_type} = $f->content_type;
160          };          };
161    
162          if ( $@ ) {          if ( $@ ) {
163                  warn "SERVER ERROR: $@";                  warn "SERVER ERROR: $@";
164  #               $req->conn->send_error( 404 );  # FIXME this should probably be 500, but we can't ship page with it                  $self->print( qq|<pre class="frey-error">$@<pre>| );
                 $content_type = 'text/html';  
                 $self->print( qq{<pre class="frey-error">$@<pre>\r\n\r\n} );  
165  #               Carp::REPL::repl;  #               Carp::REPL::repl;
166                    return {
167                            content_type => 'text/html',
168                            code => 404,
169                    }
170          }          }
171    
172          return $content_type;          return $request;
173  }  }
174    
175  sub refresh {  sub refresh {
# Line 177  sub refresh { Line 190  sub refresh {
190          |; # XXX newlines at end are important to flush content to browser          |; # XXX newlines at end are important to flush content to browser
191  }  }
192    
193    __PACKAGE__->meta->make_immutable;
194    no Moose;
195    
196    my $timestamp_interval = 3;
197    my $output_tell = 0;
198    
199    $SIG{ALRM} = sub {
200            if ( tell(STDERR) != $output_tell ) {
201                    warn "\nTIMESTAMP: " . localtime() . "\n\n";
202                    $output_tell = tell(STDERR);
203            }
204            alarm $timestamp_interval;
205    };
206    alarm $timestamp_interval;
207    
208  1;  1;

Legend:
Removed from v.886  
changed lines
  Added in v.1133

  ViewVC Help
Powered by ViewVC 1.1.26