comparison proxy_protocol_port.t @ 961:4993ece8620e

Tests: avoid unexpected match in proxy_protocol_port.t at all. Use client port in PROXY protocol header that doesn't fall into ephemeral range.
author Sergey Kandaurov <pluknet@nginx.com>
date Mon, 27 Jun 2016 11:15:34 +0300
parents 508ee7ea9706
children 882267679006
comparison
equal deleted inserted replaced
960:d4a0232425ee 961:4993ece8620e
66 $t->write_file('t', 'SEE-THIS'); 66 $t->write_file('t', 'SEE-THIS');
67 $t->try_run('no proxy_protocol_port')->plan(8); 67 $t->try_run('no proxy_protocol_port')->plan(8);
68 68
69 ############################################################################### 69 ###############################################################################
70 70
71 my $tcp4 = 'PROXY TCP4 192.0.2.1 192.0.2.2 12345 5678' . CRLF; 71 my $tcp4 = 'PROXY TCP4 192.0.2.1 192.0.2.2 123 5678' . CRLF;
72 my $tcp6 = 'PROXY TCP6 2001:Db8::1 2001:Db8::2 12345 5678' . CRLF; 72 my $tcp6 = 'PROXY TCP6 2001:Db8::1 2001:Db8::2 123 5678' . CRLF;
73 my $unk = 'PROXY UNKNOWN 1 2 3 4 5 6' . CRLF; 73 my $unk = 'PROXY UNKNOWN 1 2 3 4 5 6' . CRLF;
74 74
75 # realip 75 # realip
76 76
77 like(pp_get('/pp', $tcp4), qr/X-PP-Port: 12345/, 'pp port tcp4'); 77 like(pp_get('/pp', $tcp4), qr/X-PP-Port: 123\x0d/, 'pp port tcp4');
78 like(pp_get('/pp', $tcp6), qr/X-PP-Port: 12345/, 'pp port tcp6'); 78 like(pp_get('/pp', $tcp6), qr/X-PP-Port: 123\x0d/, 'pp port tcp6');
79 unlike(pp_get('/pp', $unk), qr/X-PP-Port/, 'pp port unknown'); 79 unlike(pp_get('/pp', $unk), qr/X-PP-Port/, 'pp port unknown');
80 80
81 # remote_port 81 # remote_port
82 82
83 like(pp_get('/pp/real', $tcp4), qr/X-Remote-Port: 12345/, 'remote port tcp4'); 83 like(pp_get('/pp/real', $tcp4), qr/X-Remote-Port: 123\x0d/, 'remote port tcp4');
84 unlike(pp_get('/pp', $tcp4), qr/X-Remote-Port: 12345/, 'no remote port tcp4'); 84 unlike(pp_get('/pp', $tcp4), qr/X-Remote-Port: 123\x0d/, 'no remote port tcp4');
85 like(pp_get('/pp/real', $tcp6), qr/X-Remote-Port: 12345/, 'remote port tcp6'); 85 like(pp_get('/pp/real', $tcp6), qr/X-Remote-Port: 123\x0d/, 'remote port tcp6');
86 unlike(pp_get('/pp', $tcp6), qr/X-Remote-Port: 12345/, 'no remote port tcp6'); 86 unlike(pp_get('/pp', $tcp6), qr/X-Remote-Port: 123\x0d/, 'no remote port tcp6');
87 87
88 # log 88 # log
89 89
90 pp_get('/log', $tcp4); 90 pp_get('/log', $tcp4);
91 91
92 $t->stop(); 92 $t->stop();
93 93
94 my $log = $t->read_file('/port.log'); 94 my $log = $t->read_file('/port.log');
95 chomp $log; 95 chomp $log;
96 96
97 is($log, 12345, 'pp port log'); 97 is($log, 123, 'pp port log');
98 98
99 ############################################################################### 99 ###############################################################################
100 100
101 sub pp_get { 101 sub pp_get {
102 my ($url, $proxy) = @_; 102 my ($url, $proxy) = @_;