| #!/usr/local/bin/perl |
| |
| use ExtUtils::testlib; |
| |
| use SSLeay; |
| |
| $ssl_ctx=SSL::CTX->new("SSLv3"); |
| |
| $ssl_ctx->set_options("-info_callback" => |
| sub { |
| print STDERR $_[0]->state()."\n"; |
| } |
| ); |
| |
| $conn="localhost:4433"; |
| $conn=$ARGV[0] if $#ARGV >= 0; |
| $cbio=BIO->new("connect"); |
| $cbio->hostname($conn) || die $ssl->error(); |
| |
| $ssl=$ssl_ctx->new_ssl; |
| $sbio=BIO->new("ssl"); |
| $sbio->set_ssl($ssl); |
| $ssl->set_options("-connect_state"); |
| |
| $bio=BIO->new("buffer"); |
| |
| $sbio->push($cbio); |
| $bio->push($sbio); |
| |
| ($bio->do_handshake() > 0) || die $bio->error(); |
| |
| (($ret=$bio->syswrite("GET / HTTP/1.0\r\n\r\n")) > 0) || die $ssl->error(); |
| $bio->flush() || die $bio->error(); |
| |
| $data=""; |
| while ($_=$bio->getline()) |
| { |
| if (/^Server:/) |
| { |
| print; |
| last; |
| } |
| } |
| |
| if ($bio->peek_error()) |
| { |
| print "There was an error:".$ssl->error(); |
| } |
| print "exit\n"; |