perl-modperl-cvs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From do...@apache.org
Subject cvs commit: modperl-2.0/t/protocol/TestProtocol echo_filter.pm
Date Sun, 15 Jul 2001 22:39:37 GMT
dougm       01/07/15 15:39:37

  Added:       t/protocol echo_filter.t
               t/protocol/TestProtocol echo_filter.pm
  Log:
  add filter-enabled echo protocol handler
  
  Revision  Changes    Path
  1.1                  modperl-2.0/t/protocol/echo_filter.t
  
  Index: echo_filter.t
  ===================================================================
  use strict;
  use warnings FATAL => 'all';
  
  use Test;
  use Apache::TestRequest ();
  
  my @test_strings = qw(hello world);
  
  plan tests => 1 + @test_strings;
  
  my $socket = Apache::TestRequest::vhost_socket('TestProtocol::echo_filter');
  
  ok $socket;
  
  for (@test_strings) {
      print "SEND ='$_'\n";
      print $socket "$_\n";
      chomp(my $reply = <$socket>);
      print "REPLY='$reply'\n";
      ok $reply eq $_;
  }
  
  
  
  1.1                  modperl-2.0/t/protocol/TestProtocol/echo_filter.pm
  
  Index: echo_filter.pm
  ===================================================================
  package TestProtocol::echo_filter;
  
  use strict;
  use Apache::Connection ();
  use APR::Bucket ();
  use APR::Brigade ();
  use APR::Const -compile => qw(SUCCESS);
  use Apache::Const -compile => qw(MODE_BLOCKING);
  use APR::Lib ();
  
  sub handler {
      my Apache::Connection $c = shift;
  
      my $bb = APR::Brigade->new($c->pool);
  
      for (;;) {
          my $rv = $c->input_filters->get_brigade($bb,
                                                  Apache::MODE_BLOCKING);
  
          if ($rv != APR::SUCCESS or $bb->empty) {
              my $error = APR::strerror($rv);
              warn "get_brigade: $error\n";
              $bb->destroy;
              last;
          }
  
          my $b = APR::Bucket::flush_create();
          $bb->insert_tail($b);
          $c->output_filters->pass_brigade($bb);
      }
  
      return Apache::OK;
  }
  
  1;
  
  
  

Mime
View raw message