1# Test to verify that relayd strips Content-Length and body 2# from GET requests. 3 4use strict; 5use warnings; 6 7my $payload_len = 64; 8our %args = ( 9 client => { 10 func => sub { 11 my $self = shift; 12 my @request_stream = split("\n", <<"EOF", -1); 13GET http://foo.bar/$payload_len HTTP/1.1 14Content-Length: $payload_len 15 16foo=bar 17 18EOF 19 pop @request_stream; 20 print map { "$_\r\n" } @request_stream; 21 print STDERR map { ">>> $_\n" } @request_stream; 22 $self->{method} = 'GET'; 23 http_response($self, $payload_len); 24 }, 25 loggrep => { 26 qr/Content-Length: $payload_len/ => 2, 27 qr/foo=bar/ => 1, 28 }, 29 http_vers => ["1.1"], 30 nocheck => 1, 31 }, 32 relayd => { 33 protocol => [ "http", 34 "match request path log \"*\"", 35 ], 36 loggrep => { 37 qr/, done, \[http:\/\/foo.bar\/$payload_len\] GET/ => 1, 38 }, 39 }, 40 server => { 41 func => \&http_server, 42 loggrep => { 43 qr/Content-Length: $payload_len/ => 1, 44 qr/foo=bar/ => 0, 45 }, 46 nocheck => 1, 47 }, 48); 49 501; 51