| #!/usr/local/bin/perl |
| |
| use ExtUtils::testlib; |
| |
| use SSLeay; |
| |
| $ssl_ctx=SSL::CTX->new("SSLv3"); |
| |
| #$ssl_ctx->set_options("-info_callback" => |
| # sub { |
| # print STDOUT $_[0]->state()."\n"; |
| # } |
| # ); |
| |
| # create a ssl bio |
| $bssl=BIO->new("ssl"); |
| $bssl->set_ssl($ssl_ctx->new_ssl()) || die $bssl->error(); |
| $bssl->get_ssl->set_options("-connect_state") || die $ssl->error(); |
| |
| $bssl->set_callback(sub { printf "XXXXXXXXXXXXXXXXXXXXXX %d %s\n",$_[1],$_[0]->type; }); |
| |
| # create connect bio |
| $host="localhost:4433"; |
| $host=$ARGV[0] if $#ARGV >= 0; |
| $bio=BIO->new("connect"); |
| $bio->hostname($host) || die $bio->error(); |
| |
| # push it in |
| $bssl->push($bio); |
| |
| (($ret=$bssl->write("GET / HTTP/1.0\r\n\r\n")) > 0) || die $bssl->error(); |
| |
| while (1) |
| { |
| $ret=$bssl->read($buf,10240); |
| last if ($ret <= 0); |
| print $buf; |
| } |
| |
| |