]> Sergey Matveev's repositories - public-inbox.git/commitdiff
http: use Plack::HTTPParser for HTTP parsing
authorEric Wong <e@80x24.org>
Sat, 12 Mar 2016 03:55:20 +0000 (03:55 +0000)
committerEric Wong <e@80x24.org>
Sat, 12 Mar 2016 03:55:20 +0000 (03:55 +0000)
This allows us to reduce installation dependencies while
retaining performance as it favors HTTP::Parser::XS when
it is installed and available.

PLACK_HTTP_PARSER_PP may be set to 1 to force a pure Perl
parser for testing.

lib/PublicInbox/HTTP.pm
t/httpd-corner.t
t/httpd-unix.t
t/httpd.t

index 288831146da11f4a1d329ca991f58f79565a824a..a5c56e2573946a1ba179c8d3eb73076585053f43 100644 (file)
@@ -13,7 +13,7 @@ use warnings;
 use base qw(Danga::Socket);
 use fields qw(httpd env rbuf input_left remote_addr remote_port);
 use Fcntl qw(:seek);
-use HTTP::Parser::XS qw(parse_http_request); # supports pure Perl fallback
+use Plack::HTTPParser qw(parse_http_request); # XS or pure Perl
 use HTTP::Status qw(status_message);
 use HTTP::Date qw(time2str);
 use IO::File;
index 59f37aa90e51797c298aef23f279e1688792f3c8..b64f334ab94627acadc140b87c1ebc940978f1fb 100644 (file)
@@ -7,7 +7,7 @@ use warnings;
 use Test::More;
 
 foreach my $mod (qw(Plack::Util Plack::Request Plack::Builder Danga::Socket
-                       HTTP::Parser::XS HTTP::Date HTTP::Status)) {
+                       HTTP::Date HTTP::Status)) {
        eval "require $mod";
        plan skip_all => "$mod missing for httpd-corner.t" if $@;
 }
index 13df676b5fcf361a60493acfbf6aa9b440981ea2..00adf13ca9db980aa733f57869f4255747217451 100644 (file)
@@ -6,7 +6,7 @@ use warnings;
 use Test::More;
 
 foreach my $mod (qw(Plack::Util Plack::Request Plack::Builder Danga::Socket
-                       HTTP::Parser::XS HTTP::Date HTTP::Status)) {
+                       HTTP::Date HTTP::Status)) {
        eval "require $mod";
        plan skip_all => "$mod missing for httpd-unix.t" if $@;
 }
index 25b4f4181db7f0cafb7f52b0cb99b689388513a2..28f507db0d2da2bc48a964d619370c54ead1a63d 100644 (file)
--- a/t/httpd.t
+++ b/t/httpd.t
@@ -5,7 +5,7 @@ use warnings;
 use Test::More;
 
 foreach my $mod (qw(Plack::Util Plack::Request Plack::Builder Danga::Socket
-                       HTTP::Parser::XS HTTP::Date HTTP::Status)) {
+                       HTTP::Date HTTP::Status)) {
        eval "require $mod";
        plan skip_all => "$mod missing for httpd.t" if $@;
 }