sub configure_test_server_for_ssl
{
- my $tempdir = $_[0];
+ my $tempdir = $_[0];
+ my $serverhost = $_[1];
# Create test users and databases
psql 'postgres', "CREATE USER ssltestuser";
print CONF "fsync=off\n";
print CONF "log_connections=on\n";
print CONF "log_hostname=on\n";
+ print CONF "listen_addresses='$serverhost'\n";
print CONF "log_statement=all\n";
# enable SSL and set up server key
print HBA
"# TYPE DATABASE USER ADDRESS METHOD\n";
print HBA
-"hostssl trustdb ssltestuser 127.0.0.1/32 trust\n";
+"hostssl trustdb ssltestuser $serverhost/32 trust\n";
print HBA
"hostssl trustdb ssltestuser ::1/128 trust\n";
print HBA
-"hostssl certdb ssltestuser 127.0.0.1/32 cert\n";
+"hostssl certdb ssltestuser $serverhost/32 cert\n";
print HBA
"hostssl certdb ssltestuser ::1/128 cert\n";
close HBA;
print SSLCONF "ssl_crl_file='root+client.crl'\n";
close SSLCONF;
- # Stop and restart server to reload the new config. We cannot use
- # restart_test_server() because that overrides listen_addresses to only all
- # Unix domain socket connections.
-
- system_or_bail 'pg_ctl', 'stop', '-D', "$tempdir/pgdata";
- system_or_bail 'pg_ctl', 'start', '-D', "$tempdir/pgdata", '-w';
+ # Stop and restart server to reload the new config.
+ restart_test_server();
}
my $tempdir = TestLib::tempdir;
-#my $tempdir = "tmp_check";
-
-
# Define a couple of helper functions to test connecting to the server.
my $common_connstr;
'psql', '-A', '-t', '-c', "SELECT 'connected with $connstr'",
'-d', "$connstr" ];
- open CLIENTLOG, ">>$tempdir/client-log"
- or die "Could not open client-log file";
- print CLIENTLOG "\n# Running test: $connstr $logstring\n";
- close CLIENTLOG;
-
- my $result = run $cmd, '>>', "$tempdir/client-log", '2>&1';
+ my $result = run_log($cmd);
return $result;
}
diag "setting up data directory in \"$tempdir\"...";
start_test_server($tempdir);
-configure_test_server_for_ssl($tempdir);
+configure_test_server_for_ssl($tempdir, $SERVERHOSTADDR);
switch_server_cert($tempdir, 'server-cn-only');
### Part 1. Run client-side tests.