[perldocjp-cvs 577] CVS update: docs/modules/Net-SSLeay-1.20/SSLeay

Back to archive index

ktats****@users***** ktats****@users*****
2009年 12月 21日 (月) 13:09:18 JST


Index: docs/modules/Net-SSLeay-1.20/SSLeay/Handle.pod
diff -u /dev/null docs/modules/Net-SSLeay-1.20/SSLeay/Handle.pod:1.1
--- /dev/null	Mon Dec 21 13:09:18 2009
+++ docs/modules/Net-SSLeay-1.20/SSLeay/Handle.pod	Mon Dec 21 13:09:18 2009
@@ -0,0 +1,132 @@
+=head1 名前
+
+Net::SSLeay::Handle - SSL (HTTPS)ソケットを標準のファイルハンドルとして
+扱わせるPerlモジュール
+
+=head1 概要
+
+  use Net::SSLeay::Handle qw/shutdown/;
+  my ($host, $port) = ("localhost", 443);
+
+  tie(*SSL, "Net::SSLeay::Handle", $host, $port);
+
+  print SSL "GET / HTTP/1.0\r\n";
+  shutdown(\*SSL, 1);
+  print while (<SSL>);
+  close SSL;                                                       
+  
+
+=head1 説明
+
+Net::SSLeay::HandleはHTTPS webページを"昔ながらの"ファイルハンドルを
+使って以下のように、リクエストしたり、受け取ることを可能にします:
+
+    print SSL "GET / HTTP/1.0\r\n";
+
+そして
+
+    print while (<SSL>);
+
+shutdownルーチンをエクスポートすると、あなたのプログラムに追加する
+必要がある特別なコードは、以下のようなtie関数だけになります:
+
+    my $socket;
+    if ($scheme eq "https") {
+        tie(*S2, "Net::SSLeay::Handle", host, $port);
+        $socket = \*S2;
+    else {
+        $socket = Net::SSLeay::Handle->make_socket(host, $port);
+    }
+    print $socket $request_headers;
+    ... 
+
+=head2 既存のソケットを利用する
+
+このモジュールを作った動機の一つは、ソケットを作るコードが重複する
+ことを避けることでした(そのほとんどはエラーの取り扱いになります)。
+上記の$hostと$portが渡されるところでtie()を呼び出すことは、
+便宜上、テストのために提供されています。正しいホストとポートに
+接続されたソケットS1を既に持っているのであれば、以下のように
+することができます:
+
+    my $socket \*S1;
+    if ($scheme eq "https") {
+        tie(*S2, "Net::SSLeay::Handle", $socket);
+        $socket = \*S2;
+    }
+    my $last_sel = select($socket); $| = 1; select($last_sel);
+    print $socket $request_headers;
+    ... 
+
+注意: 私が知る限り、tie()関数ではグロブの取り扱いには注意しなければ
+なりません。最初のパラメータはグロブ(*SOMETHING)でなければなりません。
+そして最後のパラメータはグロブへのリファレンス(\*SOMETHING_ELSE)あるいは
+(上記の例のように)グロブへのリファレンスが代入されたスカラーでなければ
+なりません。
+
+また2つのグロブは違うものでなければなりません。私が同じグロブを使おうと
+したときには、コアダンプになりました。
+
+=head2 エクスポート(EXPORT)
+
+デフォルトでは何もありません。
+
+shutodown()関数をエクスポートすることができます。
+
+SSLソケットをシャットダウンするためには、shutdown()をエスクポートするか、
+完全に修飾されたNet::SSLeay::Handle::shutdown()関数を使うことを提案します。
+SSLと非SSLソケットを区別し、正しいことを行うのに十分スマートです。
+
+=head1 使用例
+
+  use Net::SSLeay::Handle qw/shutdown/;
+  my ($host, $port) = ("localhost", 443);
+
+  tie(*SSL, "Net::SSLeay::Handle", $host, $port);
+
+  print SSL "GET / HTTP/1.0\r\n";
+  shutdown(\*SSL, 1);
+  print while (<SSL>);
+  close SSL; 
+
+=head1 やるべきこと(TODO)
+
+よりよいエラーの取り扱い、コールバックルーチン?
+
+=head1 注意
+
+ファイルハンドルを使おうとすることは少しトリッキーです(少なくとも私にとっては)。
+
+tie()への最初のパラメータはグロブ(*SOMETHING)で、最後のパラメータは
+グロブへのリファレンス(\*SOMETHING_ELSE)か、グロブへのリファレンスが
+代入されたスカラー($s = \*SOMETHING_ELSE)でなければなりません。
+また2つのグロブは違うものでなければなりません。私が同じグロブを使おうと
+したときには、コアダンプになりました。
+
+ファイルヘッド1によりキーが付けられたハッシュのハッシュを作ることにより、
+このモジュールにより作成されたグロブに属性を関連付けることができました
+(上記の*SSLのように)。
+
+古いperlのサポートは100%ではないかもしれません。障害時には5.6.0以上を
+お試しください。
+
+=head1 変更点
+
+Net-SSLeay-Handle-0.50/Changesファイルをご覧ください。
+
+=head1 既知のバグ
+
+Perlバージョンv5.6以前で、このモジュールにあなた用のソケットを作る
+よう命令すると、少しメモリリークを起こします。Perlをアップグレードするか、
+あなた自身でソケットを作成してください。そのリークは、これらの古い
+バージョンのPerlに同時に1つ以上のハンドルにアクセスさせるために
+作られます。
+
+=head1 作者
+
+Jim Bowlin jbowl****@linkl*****
+
+=head1 参考資料
+
+Net::SSLeay, perl(1), http://openssl.org/
+



perldocjp-cvs メーリングリストの案内
Back to archive index