3 do './testlib.pl' || do './t/testlib.pl' || die "no testlib";
8 my ($server,$saddr) = create_listen_socket();
11 # first try bad non-SSL client
12 my $srv = fork_sub( 'server' );
13 fd_grep_ok( 'Waiting', $srv );
14 my $cl = fork_sub( 'client' );
15 fd_grep_ok( 'Connect from',$srv );
16 fd_grep_ok( 'Connected', $cl );
17 fd_grep_ok( 'SSL Handshake FAILED', $cl );
21 $srv = fork_sub( 'server','ssl' );
22 fd_grep_ok( 'Waiting', $srv );
23 $cl = fork_sub( 'client' );
24 fd_grep_ok( 'Connect from',$srv );
25 fd_grep_ok( 'Connected', $cl );
26 fd_grep_ok( 'SSL Handshake OK', $srv );
27 fd_grep_ok( 'SSL Handshake OK', $cl );
28 fd_grep_ok( 'Hi!', $cl );
33 my $behavior = shift || 'nossl';
35 my $client = $server->accept || die "accept failed: $!";
36 print "Connect from ".$client->peerhost.':'.$client->peerport."\n";
37 if ( $behavior eq 'ssl' ) {
38 if ( IO::Socket::SSL->start_SSL( $client, SSL_server => 1, Timeout => 30 )) {
39 print "SSL Handshake OK\n";
40 print $client "Hi!\n";
43 while ( sysread( $client, my $buf,8000 )) {}
48 my $c = IO::Socket::INET->new( $saddr ) || die "connect failed: $!";
50 if ( IO::Socket::SSL->start_SSL( $c, Timeout => 5 )) {
51 print "SSL Handshake OK\n";
54 print "SSL Handshake FAILED - $!\n";