serve-pgsql-error.pl
application/x-perl
Filename: serve-pgsql-error.pl
Type: application/x-perl
Part: 4
#!/usr/bin/env perl
use strict;
use warnings;
use IO::Socket::INET;
my $version = $ARGV[0];
my $socket = new IO::Socket::INET (
LocalHost => '127.0.0.1',
LocalPort => '5432',
Proto => 'tcp',
Listen => 5,
ReuseAddr => 1
);
die "could not create socket $!\n" unless $socket;
while(1) {
my $client_socket = $socket->accept();
print "accepted connection\n";
my $data = "";
$client_socket->recv($data, 100);
print "received '$data'\n";
if ($version eq 'v2')
{
my $errordata = "Efake v2 error\n\0";
$client_socket->send($errordata, 1024);
print "sent V2 error, closing\n";
$client_socket->close()
}
else
{
my $errordata = "E\x00\x00\x00\x09Mfake V3 message\0\0";
$client_socket->send($errordata, 22);
print "sent V3 error, closing\n";
$client_socket->close()
}
}