| Gungho documentation | Contained in the Gungho distribution. |
Gungho::Engine - Base Class For Gungho Engine
package Gungho::Engine::SomeEngine;
use strict;
use base qw(Gungho::Engine);
sub run
{
....
}
Handles the response from DNS lookups.
Call finish_request() on the request, and delegates to Gungho's hnalde_response()
Perform whatever cleanup required on the request
Starts the engine. The exact behavior differs between each engines
Stops the engine. The exact behavior differs between each engines
| Gungho documentation | Contained in the Gungho distribution. |
# $Id: /mirror/gungho/lib/Gungho/Engine.pm 31637 2007-12-01T14:04:35.046822Z lestrrat $ # # Copyright (c) 2007 Daisuke Maki <daisuke@endeworks.jp> # All rights reserved. package Gungho::Engine; use strict; use warnings; use base qw(Gungho::Base); __PACKAGE__->mk_virtual_methods($_) for qw(run stop); sub finish_request { my ($self, $c, $request) = @_; if (my $host = $request->notes('original_host')) { # Put it back $request->uri->host($host); } } sub handle_response { my ($self, $c, $request, $response) = @_; $self->finish_request($c, $request); $c->handle_response($request, $response); } sub handle_dns_response { my ($self, $c, $request, $dns_response) = @_; if (! $dns_response) { return; } foreach my $answer ($dns_response->answer) { next unless $answer->type eq 'A'; return if $c->handle_dns_response($request, $answer, $dns_response); } $c->handle_response($request, $c->_http_error(500, "Failed to resolve host " . $request->uri->host, $request)), } 1; __END__