]> mj.ucw.cz Git - eval.git/blob - submit/test.pl
Implemented the connection logic.
[eval.git] / submit / test.pl
1 #!/usr/bin/perl
2
3 use strict;
4 use warnings;
5
6 use IO::Socket::INET;
7 use IO::Socket::SSL; # qw(debug3);
8
9 my $sk = new IO::Socket::INET(
10 #       PeerAddr => "nikam.ms.mff.cuni.cz:443",
11         PeerAddr => "localhost:8888",
12         Proto => "tcp",
13 ) or die "Cannot connect to server: $!";
14
15 my $z = <$sk>;
16 defined $z or die "Server failed to send welcome message\n";
17 $z =~ /^\+/ or die "Server reported error: $z";
18 print $z;
19
20 if ($z =~ /TLS/) {
21         $sk = IO::Socket::SSL->start_SSL(
22                 $sk,
23                 SSL_version => 'TLSv1',
24                 SSL_use_cert => 1,
25                 SSL_key_file => "client-key.pem",
26                 SSL_cert_file => "client-cert.pem",
27                 SSL_ca_file => "ca-cert.pem",
28                 SSL_verify_mode => 3,
29         ) or die "Cannot establish TLS connection: " . IO::Socket::SSL::errstr() . "\n";
30 }
31
32 print $sk "Hello, world!\n";
33 my $y = <$sk>;
34 print $y;
35 close $sk;