X-Git-Url: https://git.exim.org/exim.git/blobdiff_plain/eb57651e8badf0b65af0371732e42f2ee5c7772c..61eafb6e40889a60ea293bed4da9471112f173a7:/src/util/proxy_protocol_client.pl?ds=sidebyside diff --git a/src/util/proxy_protocol_client.pl b/src/util/proxy_protocol_client.pl index 7cfc13ddc..8253fc4ac 100644 --- a/src/util/proxy_protocol_client.pl +++ b/src/util/proxy_protocol_client.pl @@ -3,6 +3,7 @@ # Copyright (C) 2014 Todd Lyons # License GPLv2: GNU GPL version 2 # +# SPDX-License-Identifier: GPL-2.0-or-later # # This script emulates a proxy which uses Proxy Protocol to communicate # to a backend server. It should be run from an IP which is configured @@ -21,6 +22,7 @@ # use strict; use warnings; +BEGIN { pop @INC if $INC[-1] eq '.' }; use IO::Select; use IO::Socket; use Getopt::Long; @@ -82,10 +84,10 @@ sub generate_preamble { if (!$opts{version} || $opts{version} == 2) { @preamble = ( "\x0D\x0A\x0D\x0A\x00\x0D\x0A\x51\x55\x49\x54\x0A", # 12 byte v2 header - "\x02", # declares v2 - "\x01", # connection is proxied + "\x21", # top 4 bits declares v2 + # bottom 4 bits is command $opts{6} ? "\x21" : "\x11", # inet6/4 and TCP (stream) - $opts{6} ? "\x24" : "\x0b", # 36 bytes / 12 bytes + $opts{6} ? "\x00\x24" : "\x00\x0b", # 36 bytes / 12 bytes $source_ip, $dest_ip, $source_port,