summaryrefslogtreecommitdiffstats
path: root/perl/sslbio.pl
diff options
context:
space:
mode:
Diffstat (limited to 'perl/sslbio.pl')
-rw-r--r--perl/sslbio.pl40
1 files changed, 40 insertions, 0 deletions
diff --git a/perl/sslbio.pl b/perl/sslbio.pl
new file mode 100644
index 0000000000..fd80ad8584
--- /dev/null
+++ b/perl/sslbio.pl
@@ -0,0 +1,40 @@
+#!/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;
+ }
+
+